summaryrefslogtreecommitdiff
path: root/src/include/storage/shmem.h
diff options
context:
space:
mode:
authorSimon Riggs2011-03-06 22:49:16 +0000
committerSimon Riggs2011-03-06 22:49:16 +0000
commita8a8a3e0965201df88bdfdff08f50e5c06c552b7 (patch)
treec29687748fa9d5e9bc335e11bf3d8446563184c3 /src/include/storage/shmem.h
parent149b2673c244b92b59411dd2292d6ddcfb03d5d4 (diff)
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.
Diffstat (limited to 'src/include/storage/shmem.h')
-rw-r--r--src/include/storage/shmem.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/include/storage/shmem.h b/src/include/storage/shmem.h
index f23740c9e3c..0b7da77ccd8 100644
--- a/src/include/storage/shmem.h
+++ b/src/include/storage/shmem.h
@@ -67,8 +67,11 @@ extern void SHMQueueInit(SHM_QUEUE *queue);
extern void SHMQueueElemInit(SHM_QUEUE *queue);
extern void SHMQueueDelete(SHM_QUEUE *queue);
extern void SHMQueueInsertBefore(SHM_QUEUE *queue, SHM_QUEUE *elem);
+extern void SHMQueueInsertAfter(SHM_QUEUE *queue, SHM_QUEUE *elem);
extern Pointer SHMQueueNext(const SHM_QUEUE *queue, const SHM_QUEUE *curElem,
Size linkOffset);
+extern Pointer SHMQueuePrev(const SHM_QUEUE *queue, const SHM_QUEUE *curElem,
+ Size linkOffset);
extern bool SHMQueueEmpty(const SHM_QUEUE *queue);
extern bool SHMQueueIsDetached(const SHM_QUEUE *queue);