mirror of
https://github.com/postgres/postgres.git
synced 2025-05-03 22:24:49 +03:00
Clarify docs on hot standby lock release
Andres Freund and Simon Riggs
This commit is contained in:
parent
8805ff6580
commit
f66e7ab6db
@ -1565,6 +1565,11 @@ ProcArrayInstallImportedXmin(TransactionId xmin, TransactionId sourcexid)
|
|||||||
* We don't worry about updating other counters, we want to keep this as
|
* We don't worry about updating other counters, we want to keep this as
|
||||||
* simple as possible and leave GetSnapshotData() as the primary code for
|
* simple as possible and leave GetSnapshotData() as the primary code for
|
||||||
* that bookkeeping.
|
* that bookkeeping.
|
||||||
|
*
|
||||||
|
* Note that if any transaction has overflowed its cached subtransactions
|
||||||
|
* then there is no real need include any subtransactions. That isn't a
|
||||||
|
* common enough case to worry about optimising the size of the WAL record,
|
||||||
|
* and we may wish to see that data for diagnostic purposes anyway.
|
||||||
*/
|
*/
|
||||||
RunningTransactions
|
RunningTransactions
|
||||||
GetRunningTransactionData(void)
|
GetRunningTransactionData(void)
|
||||||
|
@ -510,6 +510,10 @@ CheckRecoveryConflictDeadlock(void)
|
|||||||
* RelationLockList, so we can keep track of the various entries made by
|
* RelationLockList, so we can keep track of the various entries made by
|
||||||
* the Startup process's virtual xid in the shared lock table.
|
* 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
|
* List elements use type xl_rel_lock, since the WAL record type exactly
|
||||||
* matches the information that we need to keep track of.
|
* matches the information that we need to keep track of.
|
||||||
*
|
*
|
||||||
@ -643,8 +647,8 @@ StandbyReleaseAllLocks(void)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* StandbyReleaseOldLocks
|
* StandbyReleaseOldLocks
|
||||||
* Release standby locks held by XIDs that aren't running, as long
|
* Release standby locks held by top-level XIDs that aren't running,
|
||||||
* as they're not prepared transactions.
|
* as long as they're not prepared transactions.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
StandbyReleaseOldLocks(int nxids, TransactionId *xids)
|
StandbyReleaseOldLocks(int nxids, TransactionId *xids)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user