On Fri, Aug 14, 2015 at 7:23 PM, Alexander Korotkov <aekorot...@gmail.com>
wrote:
>
> On Thu, Aug 6, 2015 at 1:01 PM, Ildus Kurbangaliev <
i.kurbangal...@postgrespro.ru> wrote:
>>
>>
>> I've looked deeper and I found PgBackendStatus to be not a suitable
>> place for keeping information about low level waits. Really,
PgBackendStatus
>> is used to track high level information about backend. This is why
auxiliary
>> processes don't have PgBackendStatus, because they don't have such
information
>> to expose. But when we come to the low level wait events then auxiliary
>> processes are as useful for monitoring as backends are. WAL writer,
>> checkpointer, bgwriter etc are using LWLocks as well. This is certainly
unclear
>> why they can't be monitored.
>>
>> This is why I think we shoudn't place wait event into PgBackendStatus. It
>> could be placed into PGPROC or even separate data structure with
different
>> concurrency model which would be most suitable for monitoring.
>
>
> +1 for tracking wait events not only for backends
>
> Ildus, could you do following?
> 1) Extract LWLocks refactoring into separate patch.
> 2) Make a patch with storing current wait event information in PGPROC.
>

Now as Robert has committed standardization of lwlock names in
commit - aa65de04, let us try to summarize and work on remaining parts
of the patch. So I think now the next set of work is as follows:

1. Modify the tranche mechanism so that information about LWLocks
can be tracked easily.  For this already there is some discussion, ideas
and initial patch is floated in this thread and there doesn't seem to be
much
conflicts, so we can write the patch for it.  I am planning to write or
modify
the existing patch unless you, IIdus or anyone has objections or want to
write it, please let me know to avoid duplication of work.

2. Track wait_event in pg_stat_activity.  Now here the main point where
we doesn't seem to be in complete agreement is that shall we keep it
as one byte in PgBackendStatus or use two or more bytes to store
wait_event information and still there is another point made by you to
store it in PGProc rather than in PgBackendStatus so that we can display
information of background processes as well.

Now as a matter of consensus, I think Tom has raised a fair point [1]
against
storing this information in PGProc and I feel that it is relatively less
important to have such information about background processes and the
reason for same is explained upthread [2].  About having more than one-byte
to store information about various wait_events, I think now we will not have
more than 100 or so events to track, do you really think that anytime in
forseeable
future we will have more than 256 important events which we would like to
track?

So I think about this lets first try to build the consensus and then
attempt to
write or modify the patch.


[1] - http://www.postgresql.org/message-id/4067.1439561...@sss.pgh.pa.us
[2] -
http://www.postgresql.org/message-id/CAA4eK1JRQGTgRMRao6H65rA=fhifucnqhx7ongy58um6rn1...@mail.gmail.com


With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

Reply via email to