Re: WalSndWakeup() and synchronous_commit=off
Fujii Masao <masao.fujii@gmail.com>
From: Fujii Masao <masao.fujii@gmail.com>
To: Andres Freund <andres@2ndquadrant.com>
Cc: pgsql-hackers@postgresql.org
Date: 2012-05-11T17:09:52Z
Lists: pgsql-hackers
On Fri, May 11, 2012 at 4:51 AM, Andres Freund <andres@2ndquadrant.com> wrote: > diff --git a/src/backend/access/transam/xlog.c > b/src/backend/access/transam/xlog.c > index ecb71b6..7a3224b 100644 > --- a/src/backend/access/transam/xlog.c > +++ b/src/backend/access/transam/xlog.c > @@ -1906,6 +1906,10 @@ XLogWrite(XLogwrtRqst WriteRqst, bool flexible, bool > xlog_switch) > xlogctl->LogwrtRqst.Flush = LogwrtResult.Flush; > SpinLockRelease(&xlogctl->info_lck); > } > + > + /* the walsender wasn't woken up in xact.c */ > + if(max_wal_senders > 1 && synchronous_commit == SYNCHRONOUS_COMMIT_OFF) > + WalSndWakeup(); > } Calling WalSndWakeup() while WALWriteLock is being held might cause another performance degradation. No? Regards, -- Fujii Masao