]> granicus.if.org Git - postgresql/commit
Efficient transaction-controlled synchronous replication.
authorSimon Riggs <simon@2ndQuadrant.com>
Sun, 6 Mar 2011 22:49:16 +0000 (22:49 +0000)
committerSimon Riggs <simon@2ndQuadrant.com>
Sun, 6 Mar 2011 22:49:16 +0000 (22:49 +0000)
commita8a8a3e0965201df88bdfdff08f50e5c06c552b7
treec29687748fa9d5e9bc335e11bf3d8446563184c3
parent149b2673c244b92b59411dd2292d6ddcfb03d5d4
Efficient transaction-controlled synchronous replication.
If a standby is broadcasting reply messages and we have named
one or more standbys in synchronous_standby_names then allow
users who set synchronous_replication to wait for commit, which
then provides strict data integrity guarantees. Design avoids
sending and receiving transaction state information so minimises
bookkeeping overheads. We synchronize with the highest priority
standby that is connected and ready to synchronize. Other standbys
can be defined to takeover in case of standby failure.

This version has very strict behaviour; more relaxed options
may be added at a later date.

Simon Riggs and Fujii Masao, with reviews by Yeb Havinga, Jaime
Casanova, Heikki Linnakangas and Robert Haas, plus the assistance
of many other design reviewers.
21 files changed:
doc/src/sgml/config.sgml
doc/src/sgml/high-availability.sgml
doc/src/sgml/monitoring.sgml
src/backend/access/transam/twophase.c
src/backend/access/transam/xact.c
src/backend/catalog/system_views.sql
src/backend/postmaster/autovacuum.c
src/backend/postmaster/postmaster.c
src/backend/replication/Makefile
src/backend/replication/walreceiver.c
src/backend/replication/walsender.c
src/backend/storage/ipc/shmqueue.c
src/backend/storage/lmgr/proc.c
src/backend/utils/misc/guc.c
src/backend/utils/misc/postgresql.conf.sample
src/include/catalog/pg_proc.h
src/include/replication/walsender.h
src/include/storage/lwlock.h
src/include/storage/proc.h
src/include/storage/shmem.h
src/test/regress/expected/rules.out