Re: [COMMITTERS] pgsql: Make walsender more responsive.
От | Robert Haas |
---|---|
Тема | Re: [COMMITTERS] pgsql: Make walsender more responsive. |
Дата | |
Msg-id | CA+Tgmob69X5VkULo4WTjTZEns8WxXdJVOKgLfcsDjyAu7NzLxA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [COMMITTERS] pgsql: Make walsender more responsive. (Andres Freund <andres@2ndquadrant.com>) |
Список | pgsql-hackers |
On Mon, Jul 2, 2012 at 1:53 PM, Andres Freund <andres@2ndquadrant.com> wrote: >> This commit makes the synchronous replication slow down very much >> when wal_sync_method is set to open_sync or open_datasync. I think >> the attached patch needs to be applied. > Hm. Yes, definitely. No idea why I placed the call there, sorry. Committed. >> +#define WalSndWakeupProcessRequests() \ >> + do \ >> + { \ >> + if (wake_wal_senders) \ >> + { \ >> + wake_wal_senders = false; \ >> + if (max_wal_senders > 0) \ >> + WalSndWakeup(); \ >> + } \ >> + } while (0) >> >> I'm not sure it's really worth doing, but isn't it good idea to test >> max_wal_sender > 0 first to eliminate any CPU cycle in non replication >> case? > I think the difference is ignorable. wake_wal_senders probably has better > cache locality but is set to true more often, but not that often... I was wondering if we shouldn't do this as: if (max_wal_senders > 0 && wake_wal_senders) WalSndWakeup(); ....and then put wake_wal_senders = false into WalSndWakeup(). -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: