Re: RFC: replace pg_stat_activity.waiting with something more descriptive

Поиск
Список
Период
Сортировка
От Ildus Kurbangaliev
Тема Re: RFC: replace pg_stat_activity.waiting with something more descriptive
Дата
Msg-id 55B0AE79.8090805@postgrespro.ru
обсуждение исходный текст
Ответ на Re: RFC: replace pg_stat_activity.waiting with something more descriptive  (Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>)
Ответы Re: RFC: replace pg_stat_activity.waiting with something more descriptive  (Ildus Kurbangaliev <i.kurbangaliev@postgrespro.ru>)
Список pgsql-hackers
On 07/23/2015 05:57 AM, Kyotaro HORIGUCHI wrote:
> At Wed, 22 Jul 2015 17:50:35 +0300, Ildus Kurbangaliev<i.kurbangaliev@postgrespro.ru>  wrote
in<55AFADBB.9090203@postgrespro.ru>
>> >On 07/22/2015 09:10 AM, Kyotaro HORIGUCHI wrote:
>>> > >Hello,
>>> > >
>>> > >At Tue, 21 Jul 2015 14:28:25 +0300, Ildus Kurbangaliev
>>> > ><i.kurbangaliev@postgrespro.ru>  wrote in
>>> > ><55AE2CD9.4050005@postgrespro.ru>
>>>> > >>On 07/21/2015 01:18 PM, Andres Freund wrote:
>>>>> > >>>I'd very much like to avoid increasing the size of struct LWLock. We
>>>>> > >>>have a lot of those and I'd still like to inline them with the buffer
>>>>> > >>>descriptors. Why do we need a separate group and can't reuse the
>>>>> > >>>tranche?  That might require creating a few more tranches, but ...?
>>>>> > >>>
>>>>> > >>>Andres
>>>> > >>Do you mean moving LWLocks defined by offsets and with dynamic sizes
>>>> > >>to separate tranches?
>>> > >I think it is too much for the purpose. Only two new tranches and
>>> > >maybe one or some new members (maybe representing the group) of
>>> > >trances will do, I suppose.
>> >
>> >Can you explain why only two new tranches?
>> >There is 13 types of lwlocks (besides individual), and we need
>> >separate them somehow.
> Sorry, I minunderstood about tranche.
>
> Currently tranches other than main are used by WALInsertLocks and
> ReplicationOrigins. Other "dynamic locks" are defined as parts of
> main LWLokcs since they have the same shape with individual
> lwlocks. Leaving the individual locks, every lock groups may have
> their own tranche if we allow lwlocks to have own tranche even if
> it is in MainLWLockArray. New 13-16 trances will be added but no
> need to register their name in LWLOCK_GROUPS[]. After all, this
> array would be renamed such as "IndividualLWLockNames" and the
> name-lookup can be done by the follwoing simple steps.
>
> - If the the lock is in main tranche, lookup the individual name
>    array for its name.
>
> - Elsewise, use the name of its tranche.
>
> Does this make sense?
>

Yes, this is exactly how I see it too. We keep MainLWLockArray, and 
create 16 tranches.
Only problem is here that dynamic lwlocks allocated with LWLockAssign, 
and for some of cases
we need to pass `tranche_id` to place where it is called (for example 
async.c ->  slru.c)

-- 
Ildus Kurbangaliev
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Simon Riggs
Дата:
Сообщение: Re: WAL logging problem in 9.4.3?
Следующее
От: Teodor Sigaev
Дата:
Сообщение: Re: compress method for spgist - 2