Re: [HACKERS] Speed up Clog Access by increasing CLOG buffers
От | Amit Kapila |
---|---|
Тема | Re: [HACKERS] Speed up Clog Access by increasing CLOG buffers |
Дата | |
Msg-id | CAA4eK1J+67edo_Wnrfx8oJ+rWM_BAr+v6JqvQjKPdLOxR=0d5g@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Speed up Clog Access by increasing CLOG buffers (Dilip Kumar <dilipbalaut@gmail.com>) |
Ответы |
Re: [HACKERS] Speed up Clog Access by increasing CLOG buffers
|
Список | pgsql-hackers |
On Thu, Dec 29, 2016 at 10:41 AM, Dilip Kumar <dilipbalaut@gmail.com> wrote: > > I have done one more pass of the review today. I have few comments. > > + if (nextidx != INVALID_PGPROCNO) > + { > + /* Sleep until the leader updates our XID status. */ > + for (;;) > + { > + /* acts as a read barrier */ > + PGSemaphoreLock(&proc->sem); > + if (!proc->clogGroupMember) > + break; > + extraWaits++; > + } > + > + Assert(pg_atomic_read_u32(&proc->clogGroupNext) == INVALID_PGPROCNO); > + > + /* Fix semaphore count for any absorbed wakeups */ > + while (extraWaits-- > 0) > + PGSemaphoreUnlock(&proc->sem); > + return true; > + } > > 1. extraWaits is used only locally in this block so I guess we can > declare inside this block only. > Agreed and changed accordingly. > 2. It seems that we have missed one unlock in case of absorbed > wakeups. You have initialised extraWaits with -1 and if there is one > extra wake up then extraWaits will become 0 (it means we have made one > extra call to PGSemaphoreLock and it's our responsibility to fix it as > the leader will Unlock only once). But it appear in such case we will > not make any call to PGSemaphoreUnlock. > Good catch! I have fixed it by initialising extraWaits to 0. This same issue exists from Group clear xid for which I will send a patch separately. Apart from above, the patch needs to be adjusted for commit be7b2848 which has changed the definition of PGSemaphore. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Вложения
В списке pgsql-hackers по дате отправления: