postgresql/src/include
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
..
access Defer flushing of SLRU files. 2020-09-25 19:00:15 +12:00
bootstrap Update copyrights for 2020 2020-01-01 12:21:45 -05:00
catalog Allow most keywords to be used as column labels without requiring AS. 2020-09-18 16:46:36 -04:00
commands Add support for partitioned tables and indexes in REINDEX 2020-09-08 10:09:22 +09:00
common Rethink API for pg_get_line.c, one more time. 2020-09-22 15:55:13 -04:00
datatype Update copyrights for 2020 2020-01-01 12:21:45 -05:00
executor Fix comment in instrument.h 2020-07-31 14:17:29 +09:00
fe_utils Move connect.h from fe_utils to src/include/common. 2020-08-10 09:22:54 -07:00
foreign Update copyrights for 2020 2020-01-01 12:21:45 -05:00
jit Fix a few typos in JIT comments and README 2020-08-21 09:33:56 +12:00
lib Correct comment in simplehash.h. 2020-08-03 12:23:05 +12:00
libpq Fix postmaster's behavior during smart shutdown. 2020-08-14 13:26:57 -04:00
mb Allow Unicode escapes in any server encoding, not only UTF-8. 2020-03-06 14:17:43 -05:00
nodes Allow CURRENT_ROLE where CURRENT_USER is accepted 2020-09-17 11:40:08 +02:00
optimizer Be more careful about the shape of hashable subplan clauses. 2020-08-14 22:14:03 -04:00
parser Allow most keywords to be used as column labels without requiring AS. 2020-09-18 16:46:36 -04:00
partitioning Improve error cursor positions for problems with partition bounds. 2020-09-23 18:04:53 -04:00
port Add d_type to our Windows dirent emulation. 2020-09-07 23:38:19 +12:00
portability Update copyrights for 2020 2020-01-01 12:21:45 -05:00
postmaster Trigger autovacuum based on number of INSERTs 2020-03-28 19:20:12 +13:00
regex Assume that we have <wchar.h>. 2020-02-21 14:30:47 -05:00
replication Fix bogus cache-invalidation logic in logical replication worker. 2020-09-16 12:07:31 -04:00
rewrite Update copyrights for 2020 2020-01-01 12:21:45 -05:00
snowball Update snowball 2020-06-08 08:07:15 +02:00
statistics Initial pgindent and pgperltidy run for v13. 2020-05-14 13:06:50 -04:00
storage Defer flushing of SLRU files. 2020-09-25 19:00:15 +12:00
tcop Fix bogus completion tag usage in walsender 2020-09-16 21:16:25 -03:00
tsearch Improve behavior of tsearch_readline(), and remove t_readline(). 2020-09-23 20:26:58 -04:00
utils Expose oldSnapshotControl definition via new header. 2020-09-24 13:33:09 -04:00
.gitignore Refactor dlopen() support 2018-09-06 11:33:04 +02:00
Makefile Get rid of jsonpath_gram.h and jsonpath_scanner.h 2019-03-20 11:13:34 +03:00
c.h Replace remaining StrNCpy() by strlcpy() 2020-08-10 23:20:37 +02:00
fmgr.h Fix -Wcast-function-type warnings 2020-07-14 19:55:25 +02:00
funcapi.h Avoid holding a directory FD open across assorted SRF calls. 2020-03-16 21:05:52 -04:00
getaddrinfo.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
getopt_long.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
miscadmin.h Add hash_mem_multiplier GUC. 2020-07-29 14:14:58 -07:00
pg_config.h.in Rename configure.in to configure.ac 2020-07-24 10:42:08 +02:00
pg_config_ext.h.in Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_manual.h Add nbtree Valgrind buffer lock checks. 2020-07-21 15:50:58 -07:00
pg_getopt.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pg_trace.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pgstat.h Add support for streaming to built-in logical replication. 2020-09-03 07:54:07 +05:30
pgtar.h Assorted cleanup of tar-related code. 2020-06-15 15:28:49 -04:00
pgtime.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
port.h Remove arbitrary restrictions on password length. 2020-09-03 20:09:18 -04:00
postgres.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
postgres_ext.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
postgres_fe.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
rusagestub.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
windowapi.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00