On Mon, Jul 2, 2012 at 1:53 PM, Andres Freund <and...@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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers