postgresql/src/backend/access
Thomas Munro dee663f784 Defer flushing of SLRU files.
Previously, we called fsync() after writing out individual pg_xact,
pg_multixact and pg_commit_ts pages due to cache pressure, leading to
regular I/O stalls in user backends and recovery.  Collapse requests for
the same file into a single system call as part of the next checkpoint,
as we already did for relation files, using the infrastructure developed
by commit 3eb77eba.  This can cause a significant improvement to
recovery performance, especially when it's otherwise CPU-bound.

Hoist ProcessSyncRequests() up into CheckPointGuts() to make it clearer
that it applies to all the SLRU mini-buffer-pools as well as the main
buffer pool.  Rearrange things so that data collected in CheckpointStats
includes SLRU activity.

Also remove the Shutdown{CLOG,CommitTS,SUBTRANS,MultiXact}() functions,
because they were redundant after the shutdown checkpoint that
immediately precedes them.  (I'm not sure if they were ever needed, but
they aren't now.)

Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> (parts)
Tested-by: Jakub Wartak <Jakub.Wartak@tomtom.com>
Discussion: https://postgr.es/m/CA+hUKGLJ=84YT+NvhkEEDAuUtVHMfQ9i-N7k_o50JmQ6Rpj_OQ@mail.gmail.com
2020-09-25 19:00:15 +12:00
..
brin Remove some more useless assignments. 2020-09-04 14:32:19 -04:00
common Yet more elimination of dead stores and useless initializations. 2020-09-05 13:17:32 -04:00
gin Copy editing: fix a bunch of misspellings and poor wording. 2020-09-21 12:43:42 -04:00
gist Fix checksum calculation in the new sorting GiST build. 2020-09-21 14:50:07 +03:00
hash Invent "amadjustmembers" AM method for validating opclass members. 2020-08-01 17:12:47 -04:00
heap Fix comments in heapam.c. 2020-09-18 09:50:44 +05:30
index snapshot scalability: Don't compute global horizons while building snapshots. 2020-08-12 16:03:49 -07:00
nbtree Update parallel BTree scan state when the scan keys can't be satisfied. 2020-09-17 16:11:48 +05:30
rmgrdesc Print WAL logical message contents in pg_waldump 2020-09-10 19:37:02 -03:00
spgist snapshot scalability: Don't compute global horizons while building snapshots. 2020-08-12 16:03:49 -07:00
table Improve handling of dropped relations for REINDEX DATABASE/SCHEMA/SYSTEM 2020-09-02 09:08:12 +09:00
tablesample Move src/backend/utils/hash/hashfn.c to src/common 2020-02-27 09:25:41 +05:30
transam Defer flushing of SLRU files. 2020-09-25 19:00:15 +12:00
Makefile Introduce access/{table.h, relation.h}, for generic functions from heapam.h. 2019-01-21 10:51:36 -08:00