Re: [COMMITTERS] pgsql: Make walsender more responsive.
От | Andres Freund |
---|---|
Тема | Re: [COMMITTERS] pgsql: Make walsender more responsive. |
Дата | |
Msg-id | 201207021953.25468.andres@2ndquadrant.com обсуждение исходный текст |
Ответ на | Re: [COMMITTERS] pgsql: Make walsender more responsive. (Fujii Masao <masao.fujii@gmail.com>) |
Ответы |
Re: [COMMITTERS] pgsql: Make walsender more responsive.
|
Список | pgsql-hackers |
On Monday, July 02, 2012 07:19:19 PM Fujii Masao wrote: > On Mon, Jul 2, 2012 at 10:49 PM, Robert Haas <rhaas@postgresql.org> wrote: > > Make walsender more responsive. > > > > Per testing by Andres Freund, this improves replication performance > > and reduces replication latency and latency jitter. I was a bit > > concerned about moving more work into XLogInsert, but testing seems > > to show that it's not a problem in practice. > > > > Along the way, improve comments for WaitLatchOrSocket. > > 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. Thats how synchronous_write=off behaved generally till the recent (simple) fix btw ;) > +#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... Thanks, Andres -- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: