From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
---|---|
To: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
Cc: | Alexander Korotkov <aekorotkov(at)gmail(dot)com>, "andres(at)anarazel(dot)de" <andres(at)anarazel(dot)de>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Vladimir Borodin <root(at)simply(dot)name>, Ildus Kurbangaliev <i(dot)kurbangaliev(at)postgrespro(dot)ru>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: RFC: replace pg_stat_activity.waiting with something more descriptive |
Date: | 2016-02-24 13:44:22 |
Message-ID: | CA+TgmoaCzzb3D-7v9BCLyvNSK8xCYKV33QirZr1i_aXhdt+12A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Feb 22, 2016 at 10:05 AM, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
>> I wouldn't bother tinkering with it at this point. The value isn't
>> going to be recorded on disk anywhere, so it will be easy to change
>> the way it's computed in the future if we ever need to do that.
>>
>
> Okay. Find the rebased patch attached with this mail. I have moved
> this patch to upcoming CF.
I would call the functions pgstat_report_wait_start() and
pgstat_report_wait_end() instead of pgstat_report_start_waiting() and
pgstat_report_end_waiting().
I think pgstat_get_wait_event_type should not return HWLock, a term
that appears nowhere in our source tree at present. How about just
"Lock"?
I think the wait event types should be documented - and the wait
events too, perhaps.
Maybe it's worth having separate wait event type names for lwlocks and
lwlock tranches. We could report LWLockNamed and LWLockTranche and
document the difference: "LWLockNamed indicates that the backend is
waiting for a specific, named LWLock. The event name is the name of
that lock. LWLockTranche indicates that the backend is waiting for
any one of a group of locks with similar function. The event name
identifies the general purpose of locks in that group."
There's no requirement that every session have every tranche
registered. I think we should consider displaying "extension" for any
tranche that's not built-in, or at least for tranches that are not
registered (rather than "unknown wait event").
+ if (lock->tranche == 0 && lockId < NUM_INDIVIDUAL_LWLOCKS)
Isn't the second part automatically true at this point?
The changes to LockBufferForCleanup() don't look right to me. Waiting
for a buffer pin might be a reasonable thing to define as a wait
event, but it shouldn't reported as if we were waiting on the LWLock
itself.
What happens if an error is thrown while we're in a wait?
Does this patch hurt performance?
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2016-02-24 13:55:42 | Re: Writing new unit tests with PostgresNode |
Previous Message | Tomas Vondra | 2016-02-24 12:40:51 | Re: GIN data corruption bug(s) in 9.6devel |