postgresql/src/backend
Andres Freund 6ef2eba3f5 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: -
2016-12-22 11:31:50 -08:00
..
access Skip checkpoints, archiving on idle systems. 2016-12-22 11:31:50 -08:00
bootstrap Support condition variables. 2016-11-22 14:27:11 -05:00
catalog Add pg_sequence system catalog 2016-12-20 08:28:18 -05:00
commands Code review for ATExecAttachPartition. 2016-12-22 12:40:45 -05:00
executor Refactor partition tuple routing code to reduce duplication. 2016-12-21 11:36:10 -05:00
foreign Remove GetUserMappingId() and GetUserMappingById(). 2016-07-22 11:32:23 -04:00
lib Permit dump/reload of not-too-large >1GB tuples 2016-12-02 00:34:01 -03:00
libpq Fix minor error message style violation. 2016-12-20 18:54:13 -05:00
main Remove barrier.h 2016-11-22 20:28:24 -05:00
nodes Fix reporting of column typmods for multi-row VALUES constructs. 2016-12-08 11:40:02 -05:00
optimizer Refactor merge path generation code. 2016-12-21 09:45:50 -05:00
parser Fix detection of unfinished Unicode surrogate pair at end of string. 2016-12-21 17:39:32 -05:00
po Translation updates 2016-08-08 11:08:00 -04:00
port Make the different Unix-y semaphore implementations ABI-compatible. 2016-12-12 13:32:10 -05:00
postmaster Skip checkpoints, archiving on idle systems. 2016-12-22 11:31:50 -08:00
regex Make locale-dependent regex character classes work for large char codes. 2016-09-05 17:06:29 -04:00
replication Skip checkpoints, archiving on idle systems. 2016-12-22 11:31:50 -08:00
rewrite Implement table partitioning. 2016-12-07 13:17:55 -05:00
snowball Update copyright for 2016 2016-01-02 13:33:40 -05:00
storage Skip checkpoints, archiving on idle systems. 2016-12-22 11:31:50 -08:00
tcop Add support for temporary replication slots 2016-12-12 08:38:17 -05:00
tsearch Improve documentation around TS_execute(). 2016-12-16 11:50:32 -05:00
utils Simplify tape block format. 2016-12-22 18:45:00 +02:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
common.mk Remove maintainer-check target, fold into normal build 2013-10-10 20:11:56 -04:00
Makefile Straighten out some whitespace 2016-11-29 15:08:14 -05:00
nls.mk Remove trailing slashes from directories in find command 2015-09-18 22:06:54 -04:00