Re: Checkpoints occur too frequently

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Checkpoints occur too frequently
Дата
Msg-id 24551.1103067084@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Checkpoints occur too frequently  (Simon Riggs <simon@2ndquadrant.com>)
Ответы Re: Checkpoints occur too frequently  (Simon Riggs <simon@2ndquadrant.com>)
Список pgsql-bugs
Simon Riggs <simon@2ndquadrant.com> writes:
> DEBUG1 messages showed that there is an apparent limit of 255 xlog files
> per checkpoint -

The volume-based checkpoint trigger code is

                if (IsUnderPostmaster &&
                    (openLogId != RedoRecPtr.xlogid ||
                     openLogSeg >= (RedoRecPtr.xrecoff / XLogSegSize) +
                     (uint32) CheckPointSegments))
                {
#ifdef WAL_DEBUG
                    if (XLOG_DEBUG)
                        elog(LOG, "time for a checkpoint, signaling bgwriter");
#endif
                    RequestCheckpoint(false);
                }

which now that I look at it obviously forces a checkpoint whenever
xlogid (the upper half of XLogRecPtr) changes, ie every 4GB of WAL
output.  I suppose on a high-performance platform it's possible that
one would want checkpoints further apart than that, though the idea
of plowing through multiple gigabytes of WAL in order to recover from
a crash is a bit daunting.

It's not immediately obvious how to recast the comparison without
either creating overflow bugs or depending on 64-bit-int arithmetic
being available.  Thoughts?

            regards, tom lane

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

Предыдущее
От: Simon Riggs
Дата:
Сообщение: Checkpoints occur too frequently
Следующее
От: Simon Riggs
Дата:
Сообщение: Re: Checkpoints occur too frequently