Обсуждение: BUG #3674: Unnecessary checkpoints by WAL Writer

Поиск
Список
Период
Сортировка

BUG #3674: Unnecessary checkpoints by WAL Writer

От
"ITAGAKI Takahiro"
Дата:
The following bug has been logged online:

Bug reference:      3674
Logged by:          ITAGAKI Takahiro
Email address:      itagaki.takahiro@gmail.com
PostgreSQL version: 8.3beta1
Operating system:   independent
Description:        Unnecessary checkpoints by WAL Writer
Details:

WAL Writer requests unnecessary checkpoints with CHECKPOINT_CAUSE_XLOG.
RedoRecPtr, declared in xlog.c, is initialized at StartupXLOG() but never
updated in WAL Writer because it never calls XLogInsert(). It judges excess
of segments wrongly.

Though bgwriter also does not call XLogInsert(), but it would be OK because
bgwriter updates RedoRecPtr in CreateCheckPoint().

Re: BUG #3674: Unnecessary checkpoints by WAL Writer

От
Tom Lane
Дата:
"ITAGAKI Takahiro" <itagaki.takahiro@gmail.com> writes:
> WAL Writer requests unnecessary checkpoints with CHECKPOINT_CAUSE_XLOG.
> RedoRecPtr, declared in xlog.c, is initialized at StartupXLOG() but never
> updated in WAL Writer because it never calls XLogInsert(). It judges excess
> of segments wrongly.

Good catch.  I think the best fix for this is to make XLogWrite call
GetRedoRecPtr and recheck the condition before actually sending a
signal.

            regards, tom lane

Re: BUG #3674: Unnecessary checkpoints by WAL Writer

От
Simon Riggs
Дата:
On Fri, 2007-10-12 at 13:06 -0400, Tom Lane wrote:
> "ITAGAKI Takahiro" <itagaki.takahiro@gmail.com> writes:
> > WAL Writer requests unnecessary checkpoints with CHECKPOINT_CAUSE_XLOG.
> > RedoRecPtr, declared in xlog.c, is initialized at StartupXLOG() but never
> > updated in WAL Writer because it never calls XLogInsert(). It judges excess
> > of segments wrongly.
>
> Good catch.  I think the best fix for this is to make XLogWrite call
> GetRedoRecPtr and recheck the condition before actually sending a
> signal.

Yes, very good catch, my bad. Thanks Itagaki.

--
  Simon Riggs
  2ndQuadrant  http://www.2ndQuadrant.com