pgsql: Also trigger restartpoints based on max_wal_size on standby.

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема pgsql: Also trigger restartpoints based on max_wal_size on standby.
Дата
Msg-id E1Z9JuX-0007tn-Ep@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Also trigger restartpoints based on max_wal_size on standby.

When archive recovery and restartpoints were initially introduced,
checkpoint_segments was ignored on the grounds that the files restored from
archive don't consume any space in the recovery server. That was changed in
later releases, but even then it was arguably a feature rather than a bug,
as performing restartpoints as often as checkpoints during normal operation
might be excessive, but you might nevertheless not want to waste a lot of
space for pre-allocated WAL by setting checkpoint_segments to a high value.
But now that we have separate min_wal_size and max_wal_size settings, you
can bound WAL usage with max_wal_size, and still avoid consuming excessive
space usage by setting min_wal_size to a lower value, so that argument is
moot.

There are still some issues with actually limiting the space usage to
max_wal_size: restartpoints in recovery can only start after seeing the
checkpoint record, while a checkpoint starts flushing buffers as soon as
the redo-pointer is set. Restartpoint is paced to happen at the same
leisurily speed, determined by checkpoint_completion_target, as checkpoints,
but because they are started later, max_wal_size can be exceeded by upto
one checkpoint cycle's worth of WAL, depending on
checkpoint_completion_target. But that seems better than not trying at all,
and max_wal_size is a soft limit anyway.

The documentation already claimed that max_wal_size is obeyed in recovery,
so this just fixes the behaviour to match the docs. However, add some
weasel-words there to mention that max_wal_size may well be exceeded by
some amount in recovery.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/d661532e27b34e9c89d0700c6ce246731e70072c

Modified Files
--------------
doc/src/sgml/wal.sgml                 |    6 +++++-
src/backend/access/transam/xlog.c     |    2 +-
src/backend/postmaster/checkpointer.c |   34 ++++++++++++++++++++++-----------
3 files changed, 29 insertions(+), 13 deletions(-)


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

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: pgsql: Fix markup in docs.
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Improve design and implementation of pg_file_settings view.