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
|
Список | 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 по дате отправления: