diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml
index f4653b190c5..9d8fa0bec3f 100644
--- a/doc/src/sgml/catalogs.sgml
+++ b/doc/src/sgml/catalogs.sgml
@@ -10238,9 +10238,11 @@ SCRAM-SHA-256$<iteration count>:&l
tuple,
transactionid,
virtualxid,
+ speculative token,
object,
userlock, or
- advisory
+ advisory.
+ (See also .)
diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml
index 4c6b40778bb..87502a49b6b 100644
--- a/doc/src/sgml/monitoring.sgml
+++ b/doc/src/sgml/monitoring.sgml
@@ -775,79 +775,7 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser
The type of event for which the backend is waiting, if any;
- otherwise NULL. Possible values are:
-
-
-
- LWLock: The backend is waiting for a lightweight lock.
- Each such lock protects a particular data structure in shared memory.
- wait_event will contain a name identifying the purpose
- of the lightweight lock. (Some locks have specific names; others
- are part of a group of locks each with a similar purpose.)
-
-
-
-
- Lock: The backend is waiting for a heavyweight lock.
- Heavyweight locks, also known as lock manager locks or simply locks,
- primarily protect SQL-visible objects such as tables. However,
- they are also used to ensure mutual exclusion for certain internal
- operations such as relation extension. wait_event will
- identify the type of lock awaited.
-
-
-
-
- BufferPin: The server process is waiting to access to
- a data buffer during a period when no other process can be
- examining that buffer. Buffer pin waits can be protracted if
- another process holds an open cursor which last read data from the
- buffer in question.
-
-
-
-
- Activity: The server process is idle. This is used by
- system processes waiting for activity in their main processing loop.
- wait_event will identify the specific wait point.
-
-
-
-
- Extension: The server process is waiting for activity
- in an extension module. This category is useful for modules to
- track custom waiting points.
-
-
-
-
- Client: The server process is waiting for some activity
- on a socket from user applications, and that the server expects
- something to happen that is independent from its internal processes.
- wait_event will identify the specific wait point.
-
-
-
-
- IPC: The server process is waiting for some activity
- from another process in the server. wait_event will
- identify the specific wait point.
-
-
-
-
- Timeout: The server process is waiting for a timeout
- to expire. wait_event will identify the specific wait
- point.
-
-
-
-
- IO: The server process is waiting for a IO to complete.
- wait_event will identify the specific wait point.
-
-
-
+ otherwise NULL. See .
@@ -857,7 +785,8 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser
Wait event name if backend is currently waiting, otherwise NULL.
- See for details.
+ See through
+ .
@@ -978,927 +907,1182 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser
- wait_event Description
+ Wait Event Types
+
+
+
+ Wait Event Type
+ Description
+
+
-
-
-
- Wait Event Type
- Wait Event Name
- Description
-
-
+
+
+ Activity
+ The server process is idle. This is used by
+ system processes waiting for activity in their main processing loop.
+ wait_event will identify the specific wait point.
+ See .
+
+
+
+ BufferPin
+ The server process is waiting to access to
+ a data buffer during a period when no other process can be
+ examining that buffer. Buffer pin waits can be protracted if
+ another process holds an open cursor which last read data from the
+ buffer in question. See .
+
+
+
+ Client
+ The server process is waiting for some activity
+ on a socket from user applications, and that the server expects
+ something to happen that is independent from its internal processes.
+ wait_event will identify the specific wait point.
+ See .
+
+
+
+ Extension
+ The server process is waiting for activity
+ in an extension module. This category is useful for modules to
+ track custom waiting points.
+ See .
+
+
+
+ IO
+ The server process is waiting for a IO to complete.
+ wait_event will identify the specific wait point.
+ See .
+
+
+
+ IPC
+ The server process is waiting for some activity
+ from another process in the server. wait_event will
+ identify the specific wait point.
+ See .
+
+
+
+ Lock
+ The backend is waiting for a heavyweight lock.
+ Heavyweight locks, also known as lock manager locks or simply locks,
+ primarily protect SQL-visible objects such as tables. However,
+ they are also used to ensure mutual exclusion for certain internal
+ operations such as relation extension. wait_event
+ will identify the type of lock awaited.
+ See .
+
+
+
+ LWLock
+ The backend is waiting for a lightweight lock.
+ Each such lock protects a particular data structure in shared memory.
+ wait_event will contain a name identifying the purpose
+ of the lightweight lock. (Some locks have specific names; others
+ are part of a group of locks each with a similar purpose.)
+ See .
+
+
+
+ Timeout
+ The server process is waiting for a timeout
+ to expire. wait_event will identify the specific wait
+ point. See .
+
+
+
+
+
-
-
- LWLock
- 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
- B-tree 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.
-
-
- OldSnapshotTimeMapLock
- Waiting to read or update old snapshot control information.
-
-
- LogicalRepWorkerLock
- Waiting for action on logical replication worker to finish.
-
-
- CLogTruncationLock
- Waiting to execute pg_xact_status or update
- the oldest transaction id available to it.
-
-
- 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 for 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.
-
-
- serializable_xact
- Waiting to perform an operation on a serializable transaction
- in a parallel query.
-
-
- parallel_query_dsa
- Waiting for parallel query dynamic shared memory allocation lock.
-
-
- tbm
- Waiting for TBM shared iterator lock.
-
-
- parallel_append
- Waiting to choose the next subplan during Parallel Append plan
- execution.
-
-
- parallel_hash_join
- Waiting to allocate or exchange a chunk of memory or update
- counters during Parallel Hash plan execution.
-
-
- Lock
- relation
- Waiting to acquire a lock on a relation.
-
-
- extend
- Waiting to extend a relation.
-
-
- page
- Waiting to acquire a lock on page of a relation.
-
-
- tuple
- Waiting to acquire a lock on a tuple.
-
-
- transactionid
- Waiting for a transaction to finish.
-
-
- virtualxid
- Waiting to acquire a virtual xid lock.
-
-
- speculative token
- Waiting to acquire a speculative insertion lock.
-
-
- object
- Waiting to acquire a lock on a non-relation database object.
-
-
- userlock
- Waiting to acquire a user lock.
-
-
- advisory
- Waiting to acquire an advisory user lock.
-
-
- BufferPin
- BufferPin
- Waiting to acquire a pin on a buffer.
-
-
- Activity
- ArchiverMain
- Waiting in main loop of the archiver process.
-
-
- AutoVacuumMain
- Waiting in main loop of autovacuum launcher process.
-
-
- BgWriterHibernate
- Waiting in background writer process, hibernating.
-
-
- BgWriterMain
- Waiting in main loop of background writer process background worker.
-
-
- CheckpointerMain
- Waiting in main loop of checkpointer process.
-
-
- LogicalApplyMain
- Waiting in main loop of logical apply process.
-
-
- LogicalLauncherMain
- Waiting in main loop of logical launcher process.
-
-
- PgStatMain
- Waiting in main loop of the statistics collector process.
-
-
- RecoveryWalStream
- Waiting for WAL from a stream at recovery.
-
-
- SysLoggerMain
- Waiting in main loop of syslogger process.
-
-
- WalReceiverMain
- Waiting in main loop of WAL receiver process.
-
-
- WalSenderMain
- Waiting in main loop of WAL sender process.
-
-
- WalWriterMain
- Waiting in main loop of WAL writer process.
-
-
- Client
- ClientRead
- Waiting to read data from the client.
-
-
- ClientWrite
- Waiting to write data to the client.
-
-
- GSSOpenServer
- Waiting to read data from the client while establishing the GSSAPI session.
-
-
- LibPQWalReceiverConnect
- Waiting in WAL receiver to establish connection to remote server.
-
-
- LibPQWalReceiverReceive
- Waiting in WAL receiver to receive data from remote server.
-
-
- SSLOpenServer
- Waiting for SSL while attempting connection.
-
-
- WalReceiverWaitStart
- Waiting for startup process to send initial data for streaming replication.
-
-
- WalSenderWaitForWAL
- Waiting for WAL to be flushed in WAL sender process.
-
-
- WalSenderWriteData
- Waiting for any activity when processing replies from WAL receiver in WAL sender process.
-
-
- Extension
- Extension
- Waiting in an extension.
-
-
- IPC
- BackupWaitWalArchive
- Waiting for WAL files required for the backup to be successfully archived.
-
-
- BgWorkerShutdown
- Waiting for background worker to shut down.
-
-
- BgWorkerStartup
- Waiting for background worker to start up.
-
-
- BtreePage
- Waiting for the page number needed to continue a parallel B-tree scan to become available.
-
-
- CheckpointDone
- Waiting for a checkpoint to complete.
-
-
- CheckpointStart
- Waiting for a checkpoint to start.
-
-
- ClogGroupUpdate
- Waiting for group leader to update transaction status at transaction end.
-
-
- ExecuteGather
- Waiting for activity from child process when executing Gather node.
-
-
- Hash/Batch/Allocating
- Waiting for an elected Parallel Hash participant to allocate a hash table.
-
-
- Hash/Batch/Electing
- Electing a Parallel Hash participant to allocate a hash table.
-
-
- Hash/Batch/Loading
- Waiting for other Parallel Hash participants to finish loading a hash table.
-
-
- Hash/Build/Allocating
- Waiting for an elected Parallel Hash participant to allocate the initial hash table.
-
-
- Hash/Build/Electing
- Electing a Parallel Hash participant to allocate the initial hash table.
-
-
- Hash/Build/HashingInner
- Waiting for other Parallel Hash participants to finish hashing the inner relation.
-
-
- Hash/Build/HashingOuter
- Waiting for other Parallel Hash participants to finish partitioning the outer relation.
-
-
- Hash/GrowBatches/Allocating
- Waiting for an elected Parallel Hash participant to allocate more batches.
-
-
- Hash/GrowBatches/Deciding
- Electing a Parallel Hash participant to decide on future batch growth.
-
-
- Hash/GrowBatches/Electing
- Electing a Parallel Hash participant to allocate more batches.
-
-
- Hash/GrowBatches/Finishing
- Waiting for an elected Parallel Hash participant to decide on future batch growth.
-
-
- Hash/GrowBatches/Repartitioning
- Waiting for other Parallel Hash participants to finishing repartitioning.
-
-
- Hash/GrowBuckets/Allocating
- Waiting for an elected Parallel Hash participant to finish allocating more buckets.
-
-
- Hash/GrowBuckets/Electing
- Electing a Parallel Hash participant to allocate more buckets.
-
-
- Hash/GrowBuckets/Reinserting
- Waiting for other Parallel Hash participants to finish inserting tuples into new buckets.
-
-
- LogicalSyncData
- Waiting for logical replication remote server to send data for initial table synchronization.
-
-
- LogicalSyncStateChange
- Waiting for logical replication remote server to change state.
-
-
- MessageQueueInternal
- Waiting for other process to be attached in shared message queue.
-
-
- MessageQueuePutMessage
- Waiting to write a protocol message to a shared message queue.
-
-
- MessageQueueReceive
- Waiting to receive bytes from a shared message queue.
-
-
- MessageQueueSend
- Waiting to send bytes to a shared message queue.
-
-
- ParallelBitmapScan
- Waiting for parallel bitmap scan to become initialized.
-
-
- ParallelCreateIndexScan
- Waiting for parallel CREATE INDEX workers to finish heap scan.
-
-
- ParallelFinish
- Waiting for parallel workers to finish computing.
-
-
- ProcArrayGroupUpdate
- Waiting for group leader to clear transaction id at transaction end.
-
-
- Promote
- Waiting for standby promotion.
-
-
- RecoveryConflictSnapshot
- Waiting for recovery conflict resolution on a vacuum cleanup.
-
-
- RecoveryConflictTablespace
- Waiting for recovery conflict resolution on dropping tablespace.
-
-
- RecoveryPause
- Waiting for recovery to be resumed.
-
-
- ReplicationOriginDrop
- Waiting for a replication origin to become inactive to be dropped.
-
-
- ReplicationSlotDrop
- Waiting for a replication slot to become inactive to be dropped.
-
-
- SafeSnapshot
- Waiting for a snapshot for a READ ONLY DEFERRABLE transaction.
-
-
- SyncRep
- Waiting for confirmation from remote server during synchronous replication.
-
-
- Timeout
- BaseBackupThrottle
- Waiting during base backup when throttling activity.
-
-
- PgSleep
- Waiting in process that called pg_sleep.
-
-
- RecoveryApplyDelay
- Waiting to apply WAL at recovery because it is delayed.
-
-
- RecoveryRetrieveRetryInterval
-
- Waiting when WAL data is not available from any kind of sources
- (pg_wal, archive or stream) before trying
- again to retrieve WAL data, at recovery.
-
-
-
- VacuumDelay
- Waiting in a cost-based vacuum delay point.
-
-
- IO
- BufFileRead
- Waiting for a read from a buffered file.
-
-
- BufFileWrite
- Waiting for a write to a buffered file.
-
-
- ControlFileRead
- Waiting for a read from the control file.
-
-
- ControlFileSync
- Waiting for the control file to reach stable storage.
-
-
- ControlFileSyncUpdate
- Waiting for an update to the control file to reach stable storage.
-
-
- ControlFileWrite
- Waiting for a write to the control file.
-
-
- ControlFileWriteUpdate
- Waiting for a write to update the control file.
-
-
- CopyFileRead
- Waiting for a read during a file copy operation.
-
-
- CopyFileWrite
- Waiting for a write during a file copy operation.
-
-
- DataFileExtend
- Waiting for a relation data file to be extended.
-
-
- DataFileFlush
- Waiting for a relation data file to reach stable storage.
-
-
- DataFileImmediateSync
- Waiting for an immediate synchronization of a relation data file to stable storage.
-
-
- DataFilePrefetch
- Waiting for an asynchronous prefetch from a relation data file.
-
-
- DataFileRead
- Waiting for a read from a relation data file.
-
-
- DataFileSync
- Waiting for changes to a relation data file to reach stable storage.
-
-
- DataFileTruncate
- Waiting for a relation data file to be truncated.
-
-
- DataFileWrite
- Waiting for a write to a relation data file.
-
-
- DSMFillZeroWrite
- Waiting to write zero bytes to a dynamic shared memory backing file.
-
-
- LockFileAddToDataDirRead
- Waiting for a read while adding a line to the data directory lock file.
-
-
- LockFileAddToDataDirSync
- Waiting for data to reach stable storage while adding a line to the data directory lock file.
-
-
- LockFileAddToDataDirWrite
- Waiting for a write while adding a line to the data directory lock file.
-
-
- LockFileCreateRead
- Waiting to read while creating the data directory lock file.
-
-
- LockFileCreateSync
- Waiting for data to reach stable storage while creating the data directory lock file.
-
-
- LockFileCreateWrite
- Waiting for a write while creating the data directory lock file.
-
-
- LockFileReCheckDataDirRead
- Waiting for a read during recheck of the data directory lock file.
-
-
- LogicalRewriteCheckpointSync
- Waiting for logical rewrite mappings to reach stable storage during a checkpoint.
-
-
- LogicalRewriteMappingSync
- Waiting for mapping data to reach stable storage during a logical rewrite.
-
-
- LogicalRewriteMappingWrite
- Waiting for a write of mapping data during a logical rewrite.
-
-
- LogicalRewriteSync
- Waiting for logical rewrite mappings to reach stable storage.
-
-
- LogicalRewriteTruncate
- Waiting for truncate of mapping data during a logical rewrite.
-
-
- LogicalRewriteWrite
- Waiting for a write of logical rewrite mappings.
-
-
- ProcSignalBarrier
- Waiting for a barrier event to be processed by all backends.
-
-
- RelationMapRead
- Waiting for a read of the relation map file.
-
-
- RelationMapSync
- Waiting for the relation map file to reach stable storage.
-
-
- RelationMapWrite
- Waiting for a write to the relation map file.
-
-
- ReorderBufferRead
- Waiting for a read during reorder buffer management.
-
-
- ReorderBufferWrite
- Waiting for a write during reorder buffer management.
-
-
- ReorderLogicalMappingRead
- Waiting for a read of a logical mapping during reorder buffer management.
-
-
- ReplicationSlotRead
- Waiting for a read from a replication slot control file.
-
-
- ReplicationSlotRestoreSync
- Waiting for a replication slot control file to reach stable storage while restoring it to memory.
-
-
- ReplicationSlotSync
- Waiting for a replication slot control file to reach stable storage.
-
-
- ReplicationSlotWrite
- Waiting for a write to a replication slot control file.
-
-
- SLRUFlushSync
- Waiting for SLRU data to reach stable storage during a checkpoint or database shutdown.
-
-
- SLRURead
- Waiting for a read of an SLRU page.
-
-
- SLRUSync
- Waiting for SLRU data to reach stable storage following a page write.
-
-
- SLRUWrite
- Waiting for a write of an SLRU page.
-
-
- SnapbuildRead
- Waiting for a read of a serialized historical catalog snapshot.
-
-
- SnapbuildSync
- Waiting for a serialized historical catalog snapshot to reach stable storage.
-
-
- SnapbuildWrite
- Waiting for a write of a serialized historical catalog snapshot.
-
-
- TimelineHistoryFileSync
- Waiting for a timeline history file received via streaming replication to reach stable storage.
-
-
- TimelineHistoryFileWrite
- Waiting for a write of a timeline history file received via streaming replication.
-
-
- TimelineHistoryRead
- Waiting for a read of a timeline history file.
-
-
- TimelineHistorySync
- Waiting for a newly created timeline history file to reach stable storage.
-
-
- TimelineHistoryWrite
- Waiting for a write of a newly created timeline history file.
-
-
- TwophaseFileRead
- Waiting for a read of a two phase state file.
-
-
- TwophaseFileSync
- Waiting for a two phase state file to reach stable storage.
-
-
- TwophaseFileWrite
- Waiting for a write of a two phase state file.
-
-
- WALBootstrapSync
- Waiting for WAL to reach stable storage during bootstrapping.
-
-
- WALBootstrapWrite
- Waiting for a write of a WAL page during bootstrapping.
-
-
- WALCopyRead
- Waiting for a read when creating a new WAL segment by copying an existing one.
-
-
- WALCopySync
- Waiting a new WAL segment created by copying an existing one to reach stable storage.
-
-
- WALCopyWrite
- Waiting for a write when creating a new WAL segment by copying an existing one.
-
-
- WALInitSync
- Waiting for a newly initialized WAL file to reach stable storage.
-
-
- WALInitWrite
- Waiting for a write while initializing a new WAL file.
-
-
- WALRead
- Waiting for a read from a WAL file.
-
-
- WALSenderTimelineHistoryRead
- Waiting for a read from a timeline history file during walsender timeline command.
-
-
- WALSync
- Waiting for a WAL file to reach stable storage.
-
-
- WALSyncMethodAssign
- Waiting for data to reach stable storage while assigning WAL sync method.
-
-
- WALWrite
- Waiting for a write to a WAL file.
-
-
-
-
+
+ Wait Events of Type Activity
+
+
+
+ Activity Wait Event
+ Description
+
+
+
+
+
+ ArchiverMain
+ Waiting in main loop of the archiver process.
+
+
+ AutoVacuumMain
+ Waiting in main loop of autovacuum launcher process.
+
+
+ BgWriterHibernate
+ Waiting in background writer process, hibernating.
+
+
+ BgWriterMain
+ Waiting in main loop of background writer process background
+ worker.
+
+
+ CheckpointerMain
+ Waiting in main loop of checkpointer process.
+
+
+ LogicalApplyMain
+ Waiting in main loop of logical apply process.
+
+
+ LogicalLauncherMain
+ Waiting in main loop of logical launcher process.
+
+
+ PgStatMain
+ Waiting in main loop of the statistics collector process.
+
+
+ RecoveryWalStream
+ Waiting for WAL from a stream at recovery.
+
+
+ SysLoggerMain
+ Waiting in main loop of syslogger process.
+
+
+ WalReceiverMain
+ Waiting in main loop of WAL receiver process.
+
+
+ WalSenderMain
+ Waiting in main loop of WAL sender process.
+
+
+ WalWriterMain
+ Waiting in main loop of WAL writer process.
+
+
+
+
+
+
+ Wait Events of Type BufferPin
+
+
+
+ BufferPin Wait Event
+ Description
+
+
+
+
+
+ BufferPin
+ Waiting to acquire a pin on a buffer.
+
+
+
+
+
+
+ Wait Events of Type Client
+
+
+
+ Client Wait Event
+ Description
+
+
+
+
+
+ ClientRead
+ Waiting to read data from the client.
+
+
+ ClientWrite
+ Waiting to write data to the client.
+
+
+ GSSOpenServer
+ Waiting to read data from the client while establishing the GSSAPI
+ session.
+
+
+ LibPQWalReceiverConnect
+ Waiting in WAL receiver to establish connection to remote
+ server.
+
+
+ LibPQWalReceiverReceive
+ Waiting in WAL receiver to receive data from remote server.
+
+
+ SSLOpenServer
+ Waiting for SSL while attempting connection.
+
+
+ WalReceiverWaitStart
+ Waiting for startup process to send initial data for streaming
+ replication.
+
+
+ WalSenderWaitForWAL
+ Waiting for WAL to be flushed in WAL sender process.
+
+
+ WalSenderWriteData
+ Waiting for any activity when processing replies from WAL
+ receiver in WAL sender process.
+
+
+
+
+
+
+ Wait Events of Type Extension
+
+
+
+ Extension Wait Event
+ Description
+
+
+
+
+
+ Extension
+ Waiting in an extension.
+
+
+
+
+
+
+ Wait Events of Type IO
+
+
+
+ IO Wait Event
+ Description
+
+
+
+
+
+ BufFileRead
+ Waiting for a read from a buffered file.
+
+
+ BufFileWrite
+ Waiting for a write to a buffered file.
+
+
+ ControlFileRead
+ Waiting for a read from the control file.
+
+
+ ControlFileSync
+ Waiting for the control file to reach stable storage.
+
+
+ ControlFileSyncUpdate
+ Waiting for an update to the control file to reach stable
+ storage.
+
+
+ ControlFileWrite
+ Waiting for a write to the control file.
+
+
+ ControlFileWriteUpdate
+ Waiting for a write to update the control file.
+
+
+ CopyFileRead
+ Waiting for a read during a file copy operation.
+
+
+ CopyFileWrite
+ Waiting for a write during a file copy operation.
+
+
+ DSMFillZeroWrite
+ Waiting to write zero bytes to a dynamic shared memory backing
+ file.
+
+
+ DataFileExtend
+ Waiting for a relation data file to be extended.
+
+
+ DataFileFlush
+ Waiting for a relation data file to reach stable storage.
+
+
+ DataFileImmediateSync
+ Waiting for an immediate synchronization of a relation data file to
+ stable storage.
+
+
+ DataFilePrefetch
+ Waiting for an asynchronous prefetch from a relation data
+ file.
+
+
+ DataFileRead
+ Waiting for a read from a relation data file.
+
+
+ DataFileSync
+ Waiting for changes to a relation data file to reach stable storage.
+
+
+ DataFileTruncate
+ Waiting for a relation data file to be truncated.
+
+
+ DataFileWrite
+ Waiting for a write to a relation data file.
+
+
+ LockFileAddToDataDirRead
+ Waiting for a read while adding a line to the data directory lock
+ file.
+
+
+ LockFileAddToDataDirSync
+ Waiting for data to reach stable storage while adding a line to the
+ data directory lock file.
+
+
+ LockFileAddToDataDirWrite
+ Waiting for a write while adding a line to the data directory
+ lock file.
+
+
+ LockFileCreateRead
+ Waiting to read while creating the data directory lock
+ file.
+
+
+ LockFileCreateSync
+ Waiting for data to reach stable storage while creating the data
+ directory lock file.
+
+
+ LockFileCreateWrite
+ Waiting for a write while creating the data directory lock
+ file.
+
+
+ LockFileReCheckDataDirRead
+ Waiting for a read during recheck of the data directory lock
+ file.
+
+
+ LogicalRewriteCheckpointSync
+ Waiting for logical rewrite mappings to reach stable storage
+ during a checkpoint.
+
+
+ LogicalRewriteMappingSync
+ Waiting for mapping data to reach stable storage during a logical
+ rewrite.
+
+
+ LogicalRewriteMappingWrite
+ Waiting for a write of mapping data during a logical
+ rewrite.
+
+
+ LogicalRewriteSync
+ Waiting for logical rewrite mappings to reach stable
+ storage.
+
+
+ LogicalRewriteTruncate
+ Waiting for truncate of mapping data during a logical
+ rewrite.
+
+
+ LogicalRewriteWrite
+ Waiting for a write of logical rewrite mappings.
+
+
+ ProcSignalBarrier
+ Waiting for a barrier event to be processed by all
+ backends.
+
+
+ RelationMapRead
+ Waiting for a read of the relation map file.
+
+
+ RelationMapSync
+ Waiting for the relation map file to reach stable storage.
+
+
+ RelationMapWrite
+ Waiting for a write to the relation map file.
+
+
+ ReorderBufferRead
+ Waiting for a read during reorder buffer management.
+
+
+ ReorderBufferWrite
+ Waiting for a write during reorder buffer management.
+
+
+ ReorderLogicalMappingRead
+ Waiting for a read of a logical mapping during reorder buffer
+ management.
+
+
+ ReplicationSlotRead
+ Waiting for a read from a replication slot control file.
+
+
+ ReplicationSlotRestoreSync
+ Waiting for a replication slot control file to reach stable storage
+ while restoring it to memory.
+
+
+ ReplicationSlotSync
+ Waiting for a replication slot control file to reach stable
+ storage.
+
+
+ ReplicationSlotWrite
+ Waiting for a write to a replication slot control file.
+
+
+ SLRUFlushSync
+ Waiting for SLRU data to reach stable storage during a checkpoint
+ or database shutdown.
+
+
+ SLRURead
+ Waiting for a read of an SLRU page.
+
+
+ SLRUSync
+ Waiting for SLRU data to reach stable storage following a page
+ write.
+
+
+ SLRUWrite
+ Waiting for a write of an SLRU page.
+
+
+ SnapbuildRead
+ Waiting for a read of a serialized historical catalog
+ snapshot.
+
+
+ SnapbuildSync
+ Waiting for a serialized historical catalog snapshot to reach
+ stable storage.
+
+
+ SnapbuildWrite
+ Waiting for a write of a serialized historical catalog
+ snapshot.
+
+
+ TimelineHistoryFileSync
+ Waiting for a timeline history file received via streaming
+ replication to reach stable storage.
+
+
+ TimelineHistoryFileWrite
+ Waiting for a write of a timeline history file received via
+ streaming replication.
+
+
+ TimelineHistoryRead
+ Waiting for a read of a timeline history file.
+
+
+ TimelineHistorySync
+ Waiting for a newly created timeline history file to reach stable
+ storage.
+
+
+ TimelineHistoryWrite
+ Waiting for a write of a newly created timeline history
+ file.
+
+
+ TwophaseFileRead
+ Waiting for a read of a two phase state file.
+
+
+ TwophaseFileSync
+ Waiting for a two phase state file to reach stable storage.
+
+
+ TwophaseFileWrite
+ Waiting for a write of a two phase state file.
+
+
+ WALBootstrapSync
+ Waiting for WAL to reach stable storage during
+ bootstrapping.
+
+
+ WALBootstrapWrite
+ Waiting for a write of a WAL page during bootstrapping.
+
+
+ WALCopyRead
+ Waiting for a read when creating a new WAL segment by copying an
+ existing one.
+
+
+ WALCopySync
+ Waiting for a new WAL segment created by copying an existing one to
+ reach stable storage.
+
+
+ WALCopyWrite
+ Waiting for a write when creating a new WAL segment by copying an
+ existing one.
+
+
+ WALInitSync
+ Waiting for a newly initialized WAL file to reach stable
+ storage.
+
+
+ WALInitWrite
+ Waiting for a write while initializing a new WAL file.
+
+
+ WALRead
+ Waiting for a read from a WAL file.
+
+
+ WALSenderTimelineHistoryRead
+ Waiting for a read from a timeline history file during walsender
+ timeline command.
+
+
+ WALSync
+ Waiting for a WAL file to reach stable storage.
+
+
+ WALSyncMethodAssign
+ Waiting for data to reach stable storage while assigning WAL sync
+ method.
+
+
+ WALWrite
+ Waiting for a write to a WAL file.
+
+
+
+
+
+
+ Wait Events of Type IPC
+
+
+
+ IPC Wait Event
+ Description
+
+
+
+
+
+ BackupWaitWalArchive
+ Waiting for WAL files required for the backup to be successfully
+ archived.
+
+
+ BgWorkerShutdown
+ Waiting for background worker to shut down.
+
+
+ BgWorkerStartup
+ Waiting for background worker to start up.
+
+
+ BtreePage
+ Waiting for the page number needed to continue a parallel B-tree
+ scan to become available.
+
+
+ CheckpointDone
+ Waiting for a checkpoint to complete.
+
+
+ CheckpointStart
+ Waiting for a checkpoint to start.
+
+
+ ClogGroupUpdate
+ Waiting for group leader to update transaction status at
+ transaction end.
+
+
+ ExecuteGather
+ Waiting for activity from child process while
+ executing Gather node.
+
+
+ Hash/Batch/Allocating
+ Waiting for an elected Parallel Hash participant to allocate a hash
+ table.
+
+
+ Hash/Batch/Electing
+ Electing a Parallel Hash participant to allocate a hash table.
+
+
+ Hash/Batch/Loading
+ Waiting for other Parallel Hash participants to finish loading a
+ hash table.
+
+
+ Hash/Build/Allocating
+ Waiting for an elected Parallel Hash participant to allocate the
+ initial hash table.
+
+
+ Hash/Build/Electing
+ Electing a Parallel Hash participant to allocate the initial hash table.
+
+
+ Hash/Build/HashingInner
+ Waiting for other Parallel Hash participants to finish hashing the
+ inner relation.
+
+
+ Hash/Build/HashingOuter
+ Waiting for other Parallel Hash participants to finish partitioning
+ the outer relation.
+
+
+ Hash/GrowBatches/Allocating
+ Waiting for an elected Parallel Hash participant to allocate more
+ batches.
+
+
+ Hash/GrowBatches/Deciding
+ Electing a Parallel Hash participant to decide on future batch growth.
+
+
+ Hash/GrowBatches/Electing
+ Electing a Parallel Hash participant to allocate more batches.
+
+
+ Hash/GrowBatches/Finishing
+ Waiting for an elected Parallel Hash participant to decide on
+ future batch growth.
+
+
+ Hash/GrowBatches/Repartitioning
+ Waiting for other Parallel Hash participants to finishing
+ repartitioning.
+
+
+ Hash/GrowBuckets/Allocating
+ Waiting for an elected Parallel Hash participant to finish
+ allocating more buckets.
+
+
+ Hash/GrowBuckets/Electing
+ Electing a Parallel Hash participant to allocate more buckets.
+
+
+ Hash/GrowBuckets/Reinserting
+ Waiting for other Parallel Hash participants to finish inserting
+ tuples into new buckets.
+
+
+ LogicalSyncData
+ Waiting for logical replication remote server to send data for
+ initial table synchronization.
+
+
+ LogicalSyncStateChange
+ Waiting for logical replication remote server to change state.
+
+
+ MessageQueueInternal
+ Waiting for other process to be attached in shared message queue.
+
+
+ MessageQueuePutMessage
+ Waiting to write a protocol message to a shared message queue.
+
+
+ MessageQueueReceive
+ Waiting to receive bytes from a shared message queue.
+
+
+ MessageQueueSend
+ Waiting to send bytes to a shared message queue.
+
+
+ ParallelBitmapScan
+ Waiting for parallel bitmap scan to become initialized.
+
+
+ ParallelCreateIndexScan
+ Waiting for parallel CREATE INDEX workers to
+ finish heap scan.
+
+
+ ParallelFinish
+ Waiting for parallel workers to finish computing.
+
+
+ ProcArrayGroupUpdate
+ Waiting for group leader to clear transaction id at transaction end.
+
+
+ Promote
+ Waiting for standby promotion.
+
+
+ RecoveryConflictSnapshot
+ Waiting for recovery conflict resolution on a vacuum cleanup.
+
+
+ RecoveryConflictTablespace
+ Waiting for recovery conflict resolution on dropping tablespace.
+
+
+ RecoveryPause
+ Waiting for recovery to be resumed.
+
+
+ ReplicationOriginDrop
+ Waiting for a replication origin to become inactive to be dropped.
+
+
+ ReplicationSlotDrop
+ Waiting for a replication slot to become inactive to be dropped.
+
+
+ SafeSnapshot
+ Waiting for a snapshot for a READ ONLY DEFERRABLE
+ transaction.
+
+
+ SyncRep
+ Waiting for confirmation from remote server during synchronous
+ replication.
+
+
+
+
+
+
+ Wait Events of Type Lock
+
+
+
+ Lock Wait Event
+ Description
+
+
+
+
+
+ advisory
+ Waiting to acquire an advisory user lock.
+
+
+ extend
+ Waiting to extend a relation.
+
+
+ object
+ Waiting to acquire a lock on a non-relation database object.
+
+
+ page
+ Waiting to acquire a lock on page of a relation.
+
+
+ relation
+ Waiting to acquire a lock on a relation.
+
+
+ speculative token
+ Waiting to acquire a speculative insertion lock.
+
+
+ transactionid
+ Waiting for a transaction to finish.
+
+
+ tuple
+ Waiting to acquire a lock on a tuple.
+
+
+ userlock
+ Waiting to acquire a user lock.
+
+
+ virtualxid
+ Waiting to acquire a virtual xid lock.
+
+
+
+
+
+
+ Wait Events of Type LWLock
+
+
+
+ LWLock Wait Event
+ Description
+
+
+
+
+
+ AddinShmemInitLock
+ Waiting to manage space allocation in shared memory.
+
+
+ AsyncCtlLock
+ Waiting to read or update shared notification state.
+
+
+ AsyncQueueLock
+ Waiting to read or update notification messages.
+
+
+ AutoFileLock
+ Waiting to update the postgresql.auto.conf file.
+
+
+ AutovacuumLock
+ Autovacuum worker or launcher waiting to update or
+ read the current state of autovacuum workers.
+
+
+ AutovacuumScheduleLock
+ Waiting to ensure that the table selected for a vacuum
+ still needs vacuuming.
+
+
+ BackgroundWorkerLock
+ Waiting to read or update background worker state.
+
+
+ BtreeVacuumLock
+ Waiting to read or update vacuum-related information for a
+ B-tree index.
+
+
+ CLogControlLock
+ Waiting to read or update transaction status.
+
+
+ CLogTruncationLock
+ Waiting to execute pg_xact_status or update
+ the oldest transaction id available to it.
+
+
+ CheckpointLock
+ Waiting to perform checkpoint.
+
+
+ CheckpointerCommLock
+ Waiting to manage fsync requests.
+
+
+ CommitTsControlLock
+ Waiting to read or update transaction commit timestamps.
+
+
+ CommitTsLock
+ Waiting to read or update the last value set for the
+ transaction timestamp.
+
+
+ ControlFileLock
+ Waiting to read or update the control file or creation of a
+ new WAL file.
+
+
+ DynamicSharedMemoryControlLock
+ Waiting to read or update dynamic shared memory state.
+
+
+ LogicalRepWorkerLock
+ Waiting for action on logical replication worker to finish.
+
+
+ MultiXactGenLock
+ Waiting to read or update shared multixact state.
+
+
+ MultiXactMemberControlLock
+ Waiting to read or update multixact member mappings.
+
+
+ MultiXactOffsetControlLock
+ Waiting to read or update multixact offset mappings.
+
+
+ MultiXactTruncationLock
+ Waiting to read or truncate multixact information.
+
+
+ OidGenLock
+ Waiting to allocate or assign an OID.
+
+
+ OldSerXidLock
+ Waiting to read or record conflicting serializable
+ transactions.
+
+
+ OldSnapshotTimeMapLock
+ Waiting to read or update old snapshot control information.
+
+
+ ProcArrayLock
+ Waiting to get a snapshot or clearing a transaction id at
+ transaction end.
+
+
+ RelCacheInitLock
+ Waiting to read or write relation cache initialization file.
+
+
+ RelationMappingLock
+ Waiting to update the relation map file used to store catalog
+ to filenode mapping.
+
+
+ ReplicationOriginLock
+ Waiting to setup, drop or use replication origin.
+
+
+ ReplicationSlotAllocationLock
+ Waiting to allocate or free a replication slot.
+
+
+ ReplicationSlotControlLock
+ Waiting to read or update replication slot state.
+
+
+ SInvalReadLock
+ Waiting to retrieve or remove messages from shared invalidation
+ queue.
+
+
+ SInvalWriteLock
+ Waiting to add a message in shared invalidation queue.
+
+
+ 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.
+
+
+ SerializableXactHashLock
+ Waiting to retrieve or store information about serializable
+ transactions.
+
+
+ ShmemIndexLock
+ Waiting to find or allocate space in shared memory.
+
+
+ SubtransControlLock
+ Waiting to read or update sub-transaction information.
+
+
+ SyncRepLock
+ Waiting to read or update information about synchronous
+ replicas.
+
+
+ SyncScanLock
+ Waiting to get the start location of a scan on a table for
+ synchronized scans.
+
+
+ TablespaceCreateLock
+ Waiting to create or drop the tablespace.
+
+
+ TwoPhaseStateLock
+ Waiting to read or update the state of prepared transactions.
+
+
+ WALBufMappingLock
+ Waiting to replace a page in WAL buffers.
+
+
+ WALWriteLock
+ Waiting for WAL buffers to be written to disk.
+
+
+ XidGenLock
+ Waiting to allocate or assign a transaction id.
+
+
+ async
+ Waiting for I/O on an async (notify) buffer.
+
+
+ buffer_content
+ Waiting to read or write a data page in memory.
+
+
+ buffer_io
+ Waiting for I/O on a data page.
+
+
+ buffer_mapping
+ Waiting to associate a data block with a buffer in the buffer
+ pool.
+
+
+ clog
+ Waiting for I/O on a clog (transaction status) buffer.
+
+
+ commit_timestamp
+ Waiting for I/O on commit timestamp buffer.
+
+
+ lock_manager
+ Waiting to add or examine locks for backends, or waiting to
+ join or exit a locking group (used by parallel query).
+
+
+ multixact_member
+ Waiting for I/O on a multixact_member buffer.
+
+
+ multixact_offset
+ Waiting for I/O on a multixact offset buffer.
+
+
+ oldserxid
+ Waiting for I/O on an oldserxid buffer.
+
+
+ parallel_append
+ Waiting to choose the next subplan during Parallel Append plan
+ execution.
+
+
+ parallel_hash_join
+ Waiting to allocate or exchange a chunk of memory or update
+ counters during Parallel Hash plan execution.
+
+
+ parallel_query_dsa
+ Waiting for parallel query dynamic shared memory allocation lock.
+
+
+ predicate_lock_manager
+ Waiting to add or examine predicate lock information.
+
+
+ proc
+ Waiting to read or update the fast-path lock information.
+
+
+ replication_origin
+ Waiting to read or update the replication progress.
+
+
+ replication_slot_io
+ Waiting for I/O on a replication slot.
+
+
+ serializable_xact
+ Waiting to perform an operation on a serializable transaction
+ in a parallel query.
+
+
+ subtrans
+ Waiting for I/O on a subtransaction buffer.
+
+
+ tbm
+ Waiting for TBM shared iterator lock.
+
+
+ wal_insert
+ Waiting to insert WAL into a memory buffer.
+
+
+
+
- For tranches registered by extensions, the name is specified by extension
- and this will be displayed as wait_event. It is quite
- possible that user has registered the tranche in one of the backends (by
- having allocation in dynamic shared memory) in which case other backends
- won't have that information, so we display extension for such
- cases.
+ Extensions can add LWLock types to the list shown in
+ . In some cases, the name
+ assigned by an extension will not be available in all server processes;
+ so a wait event might be reported as
+ just extension
rather than the
+ extension-assigned name.
+
+ Wait Events of Type Timeout
+
+
+
+ Timeout Wait Event
+ Description
+
+
+
+
+
+ BaseBackupThrottle
+ Waiting during base backup when throttling activity.
+
+
+ PgSleep
+ Waiting in process that called pg_sleep.
+
+
+ RecoveryApplyDelay
+ Waiting to apply WAL at recovery because it is delayed.
+
+
+ RecoveryRetrieveRetryInterval
+ Waiting when WAL data is not available from any kind of sources
+ (pg_wal, archive or stream) before trying
+ again to retrieve WAL data, at recovery.
+
+
+ VacuumDelay
+ Waiting in a cost-based vacuum delay point.
+
+
+
+
+
- Here is an example of how wait events can be viewed
+ Here is an example of how wait events can be viewed:
SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event is NOT NULL;
@@ -4497,7 +4681,8 @@ SELECT pg_stat_get_backend_pid(s.backendid) AS pid,
Returns the wait event name if this backend is currently waiting,
- otherwise NULL. See for details.
+ otherwise NULL. See through
+ .