Re: BUG #9161: wal_writer_delay is limited to 10s

Поиск
Список
Период
Сортировка
От Jeff Janes
Тема Re: BUG #9161: wal_writer_delay is limited to 10s
Дата
Msg-id CAMkU=1xVA5=Ub5Ktx1DYb+oHn-afo=Oae7o+oMr2HYT9aDPHyQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: BUG #9161: wal_writer_delay is limited to 10s  (Andres Freund <andres@2ndquadrant.com>)
Ответы Re: BUG #9161: wal_writer_delay is limited to 10s  (Andres Freund <andres@2ndquadrant.com>)
Список pgsql-bugs
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.

So if we did change the upper limit (or if Clemens adds 2 zeros to guc.c
and compiles his own) he should be able to get quite a bit of mileage out
of it.

Why do we awaken it for every 8KB boundary? I thought there was code to
wake it when wal_buffers was 1/3 full, but I don't see that code anymore.

Cheers,

Jeff

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: BUG #9161: wal_writer_delay is limited to 10s
Следующее
От: Andres Freund
Дата:
Сообщение: Re: BUG #9161: wal_writer_delay is limited to 10s