pgsql: Skip checkpoints, archiving on idle systems.

From: Andres Freund <andres(at)anarazel(dot)de>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Skip checkpoints, archiving on idle systems.
Date: 2016-12-22 19:33:30
Message-ID: E1cK97K-0003Lh-E7@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Skip checkpoints, archiving on idle systems.

Some background activity (like checkpoints, archive timeout, standby
snapshots) is not supposed to happen on an idle system. Unfortunately
so far it was not easy to determine when a system is idle, which
defeated some of the attempts to avoid redundant activity on an idle
system.

To make that easier, allow to make individual WAL insertions as not
being "important". By checking whether any important activity happened
since the last time an activity was performed, it now is easy to check
whether some action needs to be repeated.

Use the new facility for checkpoints, archive timeout and standby
snapshots.

The lack of a facility causes some issues in older releases, but in my
opinion the consequences (superflous checkpoints / archived segments)
aren't grave enough to warrant backpatching.

Author: Michael Paquier, editorialized by Andres Freund
Reviewed-By: Andres Freund, David Steele, Amit Kapila, Kyotaro HORIGUCHI
Bug: #13685
Discussion:
https://www.postgresql.org/message-id/20151016203031.3019.72930@wrigleys.postgresql.org
https://www.postgresql.org/message-id/CAB7nPqQcPqxEM3S735Bd2RzApNqSNJVietAC=6kfkYv_45dKwA@mail.gmail.com
Backpatch: -

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/6ef2eba3f57f17960b7cd4958e18aa79e357de2f

Modified Files
--------------
doc/src/sgml/config.sgml | 10 +--
src/backend/access/heap/heapam.c | 10 +--
src/backend/access/transam/xact.c | 2 +-
src/backend/access/transam/xlog.c | 118 +++++++++++++++++++++++-------
src/backend/access/transam/xlogfuncs.c | 2 +-
src/backend/access/transam/xloginsert.c | 24 ++++--
src/backend/postmaster/bgwriter.c | 8 +-
src/backend/postmaster/checkpointer.c | 45 ++++++++----
src/backend/replication/logical/message.c | 2 +-
src/backend/storage/ipc/standby.c | 11 ++-
src/include/access/xlog.h | 12 ++-
src/include/access/xlog_internal.h | 4 +-
src/include/access/xloginsert.h | 2 +-
13 files changed, 173 insertions(+), 77 deletions(-)

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2016-12-22 20:01:57 pgsql: Fix handling of expanded objects in CoerceToDomain and CASE exec
Previous Message Robert Haas 2016-12-22 19:20:50 pgsql: Fix broken error check in _hash_doinsert.

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2016-12-22 19:34:07 Re: Fix checkpoint skip logic on idle systems by tracking LSN progress
Previous Message Robert Haas 2016-12-22 19:20:52 Re: Ilegal type cast in _hash_doinsert()