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