PostgreSQL V9.6 LWLock实现分析(二)

时间:2022-08-09 05:55:59

X-XX

Wait Event Type

Wait Event Name

Description

LWLockNamed[1]

ShmemIndexLock

Waiting to find or allocate space in shared memory.

OidGenLock

Waiting to allocate or assign an OID.

XidGenLock

Waiting to allocate or assign a transaction id.

ProcArrayLock

Waiting to get a snapshot or clearing a transaction id at transaction end.

SInvalReadLock

Waiting to retrieve or remove messages from shared invalidation queue.

SInvalWriteLock

Waiting to add a message in shared invalidation queue.

WALBufMappingLock

Waiting to replace a page in WAL buffers.

WALWriteLock

Waiting for WAL buffers to be written to disk.

ControlFileLock

Waiting to read or update the control file or creation of a new WAL file.

CheckpointLock

Waiting to perform checkpoint.

CLogControlLock

Waiting to read or update transaction status.

SubtransControlLock

Waiting to read or update sub-transaction information.

MultiXactGenLock

Waiting to read or update shared multixact state.

MultiXactOffsetControlLock

Waiting to read or update multixact offset mappings.

MultiXactMemberControlLock

Waiting to read or update multixact member mappings.

RelCacheInitLock

Waiting to read or write relation cache initialization file.

CheckpointerCommLock

Waiting to manage fsync requests.

TwoPhaseStateLock

Waiting to read or update the state of prepared transactions.

TablespaceCreateLock

Waiting to create or drop the tablespace.

BtreeVacuumLock

Waiting to read or update vacuum-related information for a Btree index.

AddinShmemInitLock

Waiting to manage space allocation in shared memory.

AutovacuumLock

Autovacuum worker or launcher waiting to update or read the current state of autovacuum workers.

AutovacuumScheduleLock

Waiting to ensure that the table it has selected for a vacuum still needs vacuuming.

SyncScanLock

Waiting to get the start location of a scan on a table for synchronized scans.

RelationMappingLock

Waiting to update the relation map file used to store catalog to filenode mapping.

AsyncCtlLock

Waiting to read or update shared notification state.

AsyncQueueLock

Waiting to read or update notification messages.

SerializableXactHashLock

Waiting to retrieve or store information about serializable transactions.

SerializableFinishedListLock

Waiting to access the list of finished serializable transactions.

SerializablePredicateLockListLock

Waiting to perform an operation on a list of locks held by serializable transactions.

OldSerXidLock

Waiting to read or record conflicting serializable transactions.

SyncRepLock

Waiting to read or update information about synchronous replicas.

BackgroundWorkerLock

Waiting to read or update background worker state.

DynamicSharedMemoryControlLock

Waiting to read or update dynamic shared memory state.

AutoFileLock

Waiting to update the postgresql.auto.conf file.

ReplicationSlotAllocationLock

Waiting to allocate or free a replication slot.

ReplicationSlotControlLock

Waiting to read or update replication slot state.

CommitTsControlLock

Waiting to read or update transaction commit timestamps.

CommitTsLock

Waiting to read or update the last value set for the transaction timestamp.

ReplicationOriginLock

Waiting to setup, drop or use replication origin.

MultiXactTruncationLock

Waiting to read or truncate multixact information.

LWLockTranche[2]

clog

Waiting for I/O on a clog (transaction status) buffer.

commit_timestamp

Waiting for I/O on commit timestamp buffer.

subtrans

Waiting for I/O a subtransaction buffer.

multixact_offset

Waiting for I/O on a multixact offset buffer.

multixact_member

Waiting for I/O on a multixact_member buffer.

async

Waiting for I/O on an async (notify) buffer.

oldserxid

Waiting to I/O on an oldserxid buffer.

wal_insert

Waiting to insert WAL into a memory buffer.

buffer_content

Waiting to read or write a data page in memory.

buffer_io

Waiting for I/O on a data page.

replication_origin

Waiting to read or update the replication progress.

replication_slot_io

Waiting for I/O on a replication slot.

proc

Waiting to read or update the fast-path lock information.

buffer_mapping

Waiting to associate a data block with a buffer in the buffer pool.

lock_manager

Waiting to add or examine locks for backends, or waiting to join or exit a locking group (used by parallel query).

predicate_lock_manager

Waiting to add or examine predicate lock information.



[1] The backend is waiting for a specific named lightweight lock. Each such lock protects a particular data structure in shared memory. wait_event will contain the name of the lightweight lock.

[2] The backend is waiting for one of a group of related lightweight locks. All locks in the group perform a similar function; wait_event will identify the general purpose of locks in that group.