On 7 June 2012 21:08, Andres Freund <andres@2ndquadrant.com> wrote:
>> Moved the wakeup to a logical place outside a critical section.
> Hm. I don't really like the way you implemented that. While it reduces the
> likelihood quite a bit it will still miss wakeups if an XLogInsert pushes out
> the data because of missing space or if any place does an XLogFlush(lsn).
> The knowledge is really only available in XLogWrite...
Right, but the placement inside the critical section was objected to.
This way, any caller of XLogFlush() will be swept up at least once per
wal_writer_delay, so missing a few calls doesn't mean we have spikes
in replication delay.
Doing it more frequently was also an objection from Fujii, to which we
must listen.
--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services