postgresql/src
Simon Riggs 3e4b7d8798 Avoid pin scan for replay of XLOG_BTREE_VACUUM in all cases
Replay of XLOG_BTREE_VACUUM during Hot Standby was previously thought to require
complex interlocking that matched the requirements on the master. This required
an O(N) operation that became a significant problem with large indexes, causing
replication delays of seconds or in some cases minutes while the
XLOG_BTREE_VACUUM was replayed.

This commit skips the pin scan that was previously required, by observing in
detail when and how it is safe to do so, with full documentation. The pin
scan is skipped only in replay; the VACUUM code path on master is not
touched here and WAL is identical.

The current commit applies in all cases, effectively replacing commit
687f2cd7a0.
2016-04-03 17:46:09 +01:00
..
backend Avoid pin scan for replay of XLOG_BTREE_VACUUM in all cases 2016-04-03 17:46:09 +01:00
bin Add psql \errverbose command to see last server error at full verbosity. 2016-04-03 12:29:55 -04:00
common Refer to a TOKEN_USER payload as a "token user," not as a "user token". 2016-04-01 21:53:18 -04:00
fe_utils Move psql's psqlscan.l into src/fe_utils. 2016-03-24 20:28:47 -04:00
include Add Generic WAL interface 2016-04-01 12:21:48 +03:00
interfaces Add libpq support for recreating an error message with different verbosity. 2016-04-03 12:24:54 -04:00
makefiles Fix typos in comments and doc 2016-01-28 16:47:36 +09:00
pl Copyedit comments and documentation. 2016-04-01 21:53:10 -04:00
port Avoid possibly-unsafe use of Windows' FormatMessage() function. 2016-03-29 11:55:19 -04:00
template Remove some remains from Alpha support removal 2015-10-29 16:40:14 -04:00
test Fix typo in pg_regress.c 2016-04-02 11:12:17 -04:00
timezone Suppress compiler warning. 2016-04-02 13:49:17 -04:00
tools Copyedit comments and documentation. 2016-04-01 21:53:10 -04:00
tutorial Update copyright for 2016 2016-01-02 13:33:40 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
DEVELOPERS
Makefile Create src/fe_utils/, and move stuff into there from pg_dump's dumputils. 2016-03-24 15:55:57 -04:00
Makefile.global.in Create src/fe_utils/, and move stuff into there from pg_dump's dumputils. 2016-03-24 15:55:57 -04:00
Makefile.shlib AIX: Link TRANSFORM modules with their dependencies. 2015-07-15 21:00:26 -04:00
nls-global.mk Setup error context callback for transaction lock waits 2014-03-19 15:10:36 -03:00
win32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00