On 2014-02-17 13:48:34 -0800, Jeff Janes wrote:
> On Fri, Feb 14, 2014 at 2:50 PM, Andres Freund <andres@2ndquadrant.com>wrote:
>
> > On 2014-02-14 23:03:44 +0100, Clemens Eisserer wrote:
> > > Hi Tom,
> > >
> > > Thanks for taking a look at my bug report.
> > >
> > > > But if you're generating WAL, it's going to get written anyway
> > > > whenever a transaction commits.
> > >
> > > As far as I understood, this is only the case with
> > > synchronous_commit=on, which is the reason why I turned synchrous
> > > commit off.
> >
> > The WAL writer will be woken up anyway if a transaction commits
> > (c.f. XLogSetAsyncXactLSN()).
> >
> That only happens if an 8 KB boundary has been crossed. Depending on how
> big the records are that he is inserting, you can fit a lot of them in 8
> KB. If the records are small, or the table us unlogged so only commit
> messages get logged, then you could go many multiples of 10s without
> triggering a wake up due to crossing an 8 KB boundary.
Unless I miss something we wake it up if *either* a 8kb boundary has
been crossed *or* if the async lsn hasn't been flushed yet.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services