diff options
| author | Robert Haas <rhaas@postgresql.org> | 2011-08-04 12:38:33 -0400 |
|---|---|---|
| committer | Robert Haas <rhaas@postgresql.org> | 2011-08-04 12:38:33 -0400 |
| commit | 84e37126770dd6de903dad88ce150a49b63b5ef9 (patch) | |
| tree | 6f18f1599033b0c29687c0a49f18df6e8bc0a8c8 /src/include/storage/lmgr.h | |
| parent | 3b17efdfdd846c9bfad1637686e6f18198ea3df5 (diff) | |
| download | postgresql-84e37126770dd6de903dad88ce150a49b63b5ef9.tar.gz | |
Create VXID locks "lazily" in the main lock table.
Instead of entering them on transaction startup, we materialize them
only when someone wants to wait, which will occur only during CREATE
INDEX CONCURRENTLY. In Hot Standby mode, the startup process must also
be able to probe for conflicting VXID locks, but the lock need never be
fully materialized, because the startup process does not use the normal
lock wait mechanism. Since most VXID locks never need to touch the
lock manager partition locks, this can significantly reduce blocking
contention on read-heavy workloads.
Patch by me. Review by Jeff Davis.
Diffstat (limited to 'src/include/storage/lmgr.h')
| -rw-r--r-- | src/include/storage/lmgr.h | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/src/include/storage/lmgr.h b/src/include/storage/lmgr.h index bd44d92be3..340f6a3d30 100644 --- a/src/include/storage/lmgr.h +++ b/src/include/storage/lmgr.h @@ -56,11 +56,6 @@ extern void XactLockTableDelete(TransactionId xid); extern void XactLockTableWait(TransactionId xid); extern bool ConditionalXactLockTableWait(TransactionId xid); -/* Lock a VXID (used to wait for a transaction to finish) */ -extern void VirtualXactLockTableInsert(VirtualTransactionId vxid); -extern void VirtualXactLockTableWait(VirtualTransactionId vxid); -extern bool ConditionalVirtualXactLockTableWait(VirtualTransactionId vxid); - /* Lock a general object (other than a relation) of the current database */ extern void LockDatabaseObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode); |
