postgresql/src/tools
Andres Freund 9cd00c457e Checkpoint sorting and balancing.
Up to now checkpoints were written in the order they're in the
BufferDescriptors. That's nearly random in a lot of cases, which
performs badly on rotating media, but even on SSDs it causes slowdowns.

To avoid that, sort checkpoints before writing them out. We currently
sort by tablespace, relfilenode, fork and block number.

One of the major reasons that previously wasn't done, was fear of
imbalance between tablespaces. To address that balance writes between
tablespaces.

The other prime concern was that the relatively large allocation to sort
the buffers in might fail, preventing checkpoints from happening. Thus
pre-allocate the required memory in shared memory, at server startup.

This particularly makes it more efficient to have checkpoint flushing
enabled, because that'll often result in a lot of writes that can be
coalesced into one flush.

Discussion: alpine.DEB.2.10.1506011320000.28433@sto
Author: Fabien Coelho and Andres Freund
2016-03-10 17:05:09 -08:00
..
editors emacs: Set indent-tabs-mode in perl-mode 2015-04-12 23:53:23 -04:00
entab pgindent run for 9.4 2014-05-06 12:12:18 -04:00
findoidjoins Restructure index access method API to hide most of it at the C level. 2016-01-17 19:36:59 -05:00
ifaddrs Update copyright for 2016 2016-01-02 13:33:40 -05:00
make_diff Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
msvc Expose control file data via SQL accessible functions. 2016-03-05 11:10:19 -08:00
pginclude pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
pgindent Checkpoint sorting and balancing. 2016-03-10 17:05:09 -08:00
FAQ2txt Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
RELEASE_CHANGES docs: update major release notes item checklist 2015-08-08 22:36:19 -04:00
ccsym tools/ccsym: update for modern versions of gcc 2015-01-20 13:02:58 -05:00
check_bison_recursion.pl Update copyright for 2016 2016-01-02 13:33:40 -05:00
codelines Fix remaining stray references to CVS. 2010-09-22 19:51:39 -04:00
copyright.pl Make copyright.pl cope with nonstandard case choices in copyright notices. 2016-01-02 14:45:21 -05:00
find_badmacros Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
find_static Fix omission of -X (--no-psqlrc) in some psql invocations. 2015-12-28 11:46:43 -05:00
find_typedef Update comments in find_typedef. 2014-11-18 15:51:45 -05:00
git-external-diff Add comment to tools/git-external-diff. 2011-03-11 05:06:31 -05:00
git_changelog Stamp HEAD as 9.6devel. 2015-06-30 14:01:15 -04:00
make_ctags Mention original ctags option name. 2012-02-24 16:19:18 -05:00
make_etags Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
make_mkid Add another pgdefine path check, and a cvs-git change. 2011-08-26 21:52:35 -04:00
pgtest pgtest: allow passing parameters, e.g. -s/--silent 2013-08-05 19:59:52 -04:00
valgrind.supp Add valgrind suppressions for python code. 2016-03-08 19:40:58 -08:00
version_stamp.pl Update copyright for 2016 2016-01-02 13:33:40 -05:00
win32tzlist.pl Update copyright for 2016 2016-01-02 13:33:40 -05:00