diff options
author | Simon Riggs <simon@2ndQuadrant.com> | 2012-11-13 15:54:01 -0300 |
---|---|---|
committer | Simon Riggs <simon@2ndQuadrant.com> | 2012-11-13 15:54:01 -0300 |
commit | 68f7fe140bebc2b9bd2953934539cedb603fd01b (patch) | |
tree | 9d48c05dbfc665e784ef88c3a5946b1cef0977b9 /src/backend/storage/ipc/standby.c | |
parent | 8f40ad1f4e75d3def4e86b665c8048a4c9676427 (diff) | |
download | postgresql-68f7fe140bebc2b9bd2953934539cedb603fd01b.tar.gz postgresql-68f7fe140bebc2b9bd2953934539cedb603fd01b.zip |
Clarify docs on hot standby lock release
Andres Freund and Simon Riggs
Diffstat (limited to 'src/backend/storage/ipc/standby.c')
-rw-r--r-- | src/backend/storage/ipc/standby.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/backend/storage/ipc/standby.c b/src/backend/storage/ipc/standby.c index 43f74112733..905d33148a9 100644 --- a/src/backend/storage/ipc/standby.c +++ b/src/backend/storage/ipc/standby.c @@ -540,6 +540,10 @@ StandbyTimeoutHandler(void) * RelationLockList, so we can keep track of the various entries made by * the Startup process's virtual xid in the shared lock table. * + * We record the lock against the top-level xid, rather than individual + * subtransaction xids. This means AccessExclusiveLocks held by aborted + * subtransactions are not released as early as possible on standbys. + * * List elements use type xl_rel_lock, since the WAL record type exactly * matches the information that we need to keep track of. * @@ -673,8 +677,8 @@ StandbyReleaseAllLocks(void) /* * StandbyReleaseOldLocks - * Release standby locks held by XIDs that aren't running, as long - * as they're not prepared transactions. + * Release standby locks held by top-level XIDs that aren't running, + * as long as they're not prepared transactions. */ void StandbyReleaseOldLocks(int nxids, TransactionId *xids) |