3 # PostgreSQL wait events
5 # Copyright (c) 2023-2024, PostgreSQL Global Development Group
7 # This list serves as the basis for generating source and documentation files
8 # related to wait events.
10 # This file defines one wait event per line, with the following
11 # tab-separated fields:
13 # "Typedef enum definitions" "description in the docs"
15 # The files generated from this one are:
17 # src/backend/utils/activity/wait_event_types.h
18 # typedef enum definitions for wait events.
20 # src/backend/utils/activity/pgstat_wait_event.c
21 # C functions to get the wait event name based on the enum.
23 # src/backend/utils/activity/wait_event_types.sgml
24 # SGML tables of wait events for inclusion in the documentation.
26 # When adding a new wait event, make sure it is placed in the appropriate
29 # Wait events added in stable branches should be appended to the lists in
30 # the "ABI_compatibility:" region of their related ClassName section to
31 # preserve ABI compatibility of the C code generated from this file's data,
32 # respecting the order of any wait event already listed there. The
33 # "ABI_compatibility:" regions should remain empty on the master branch and
34 # on unreleased branches.
36 # WaitEventLWLock and WaitEventLock have their own C code for their wait event
37 # enums and function names. Hence, for these, only the SGML documentation is
40 # This file is fed to src/backend/utils/activity/generate-wait_event_types.pl.
45 # Wait Events - Activity
47 # Use this category when a process is waiting because it has no work to do,
48 # unless the "Client" or "Timeout" category describes the situation better.
49 # Typically, this should only be used for background processes.
52 Section: ClassName - WaitEventActivity
54 ARCHIVER_MAIN "Waiting in main loop of archiver process."
55 AUTOVACUUM_MAIN "Waiting in main loop of autovacuum launcher process."
56 BGWRITER_HIBERNATE "Waiting in background writer process, hibernating."
57 BGWRITER_MAIN "Waiting in main loop of background writer process."
58 CHECKPOINTER_MAIN "Waiting in main loop of checkpointer process."
59 LOGICAL_APPLY_MAIN "Waiting in main loop of logical replication apply process."
60 LOGICAL_LAUNCHER_MAIN "Waiting in main loop of logical replication launcher process."
61 LOGICAL_PARALLEL_APPLY_MAIN "Waiting in main loop of logical replication parallel apply process."
62 RECOVERY_WAL_STREAM "Waiting in main loop of startup process for WAL to arrive, during streaming recovery."
63 REPLICATION_SLOTSYNC_MAIN "Waiting in main loop of slot sync worker."
64 REPLICATION_SLOTSYNC_SHUTDOWN "Waiting for slot sync worker to shut down."
65 SYSLOGGER_MAIN "Waiting in main loop of syslogger process."
66 WAL_RECEIVER_MAIN "Waiting in main loop of WAL receiver process."
67 WAL_SENDER_MAIN "Waiting in main loop of WAL sender process."
68 WAL_SUMMARIZER_WAL "Waiting in WAL summarizer for more WAL to be generated."
69 WAL_WRITER_MAIN "Waiting in main loop of WAL writer process."
74 # Wait Events - Client
76 # Use this category when a process is waiting to send data to or receive data
77 # from the frontend process to which it is connected. This is never used for
78 # a background process, which has no client connection.
81 Section: ClassName - WaitEventClient
83 CLIENT_READ "Waiting to read data from the client."
84 CLIENT_WRITE "Waiting to write data to the client."
85 GSS_OPEN_SERVER "Waiting to read data from the client while establishing a GSSAPI session."
86 LIBPQWALRECEIVER_CONNECT "Waiting in WAL receiver to establish connection to remote server."
87 LIBPQWALRECEIVER_RECEIVE "Waiting in WAL receiver to receive data from remote server."
88 SSL_OPEN_SERVER "Waiting for SSL while attempting connection."
89 WAIT_FOR_STANDBY_CONFIRMATION "Waiting for WAL to be received and flushed by the physical standby."
90 WAIT_FOR_WAL_REPLAY "Waiting for a replay of the particular WAL position on the physical standby."
91 WAL_SENDER_WAIT_FOR_WAL "Waiting for WAL to be flushed in WAL sender process."
92 WAL_SENDER_WRITE_DATA "Waiting for any activity when processing replies from WAL receiver in WAL sender process."
99 # Use this category when a process cannot complete the work it is doing because
100 # it is waiting for a notification from another process.
103 Section: ClassName - WaitEventIPC
105 APPEND_READY "Waiting for subplan nodes of an <literal>Append</literal> plan node to be ready."
106 ARCHIVE_CLEANUP_COMMAND "Waiting for <xref linkend="guc-archive-cleanup-command"/> to complete."
107 ARCHIVE_COMMAND "Waiting for <xref linkend="guc-archive-command"/> to complete."
108 BACKEND_TERMINATION "Waiting for the termination of another backend."
109 BACKUP_WAIT_WAL_ARCHIVE "Waiting for WAL files required for a backup to be successfully archived."
110 BGWORKER_SHUTDOWN "Waiting for background worker to shut down."
111 BGWORKER_STARTUP "Waiting for background worker to start up."
112 BTREE_PAGE "Waiting for the page number needed to continue a parallel B-tree scan to become available."
113 BUFFER_IO "Waiting for buffer I/O to complete."
114 CHECKPOINT_DELAY_COMPLETE "Waiting for a backend that blocks a checkpoint from completing."
115 CHECKPOINT_DELAY_START "Waiting for a backend that blocks a checkpoint from starting."
116 CHECKPOINT_DONE "Waiting for a checkpoint to complete."
117 CHECKPOINT_START "Waiting for a checkpoint to start."
118 EXECUTE_GATHER "Waiting for activity from a child process while executing a <literal>Gather</literal> plan node."
119 HASH_BATCH_ALLOCATE "Waiting for an elected Parallel Hash participant to allocate a hash table."
120 HASH_BATCH_ELECT "Waiting to elect a Parallel Hash participant to allocate a hash table."
121 HASH_BATCH_LOAD "Waiting for other Parallel Hash participants to finish loading a hash table."
122 HASH_BUILD_ALLOCATE "Waiting for an elected Parallel Hash participant to allocate the initial hash table."
123 HASH_BUILD_ELECT "Waiting to elect a Parallel Hash participant to allocate the initial hash table."
124 HASH_BUILD_HASH_INNER "Waiting for other Parallel Hash participants to finish hashing the inner relation."
125 HASH_BUILD_HASH_OUTER "Waiting for other Parallel Hash participants to finish partitioning the outer relation."
126 HASH_GROW_BATCHES_DECIDE "Waiting to elect a Parallel Hash participant to decide on future batch growth."
127 HASH_GROW_BATCHES_ELECT "Waiting to elect a Parallel Hash participant to allocate more batches."
128 HASH_GROW_BATCHES_FINISH "Waiting for an elected Parallel Hash participant to decide on future batch growth."
129 HASH_GROW_BATCHES_REALLOCATE "Waiting for an elected Parallel Hash participant to allocate more batches."
130 HASH_GROW_BATCHES_REPARTITION "Waiting for other Parallel Hash participants to finish repartitioning."
131 HASH_GROW_BUCKETS_ELECT "Waiting to elect a Parallel Hash participant to allocate more buckets."
132 HASH_GROW_BUCKETS_REALLOCATE "Waiting for an elected Parallel Hash participant to finish allocating more buckets."
133 HASH_GROW_BUCKETS_REINSERT "Waiting for other Parallel Hash participants to finish inserting tuples into new buckets."
134 LOGICAL_APPLY_SEND_DATA "Waiting for a logical replication leader apply process to send data to a parallel apply process."
135 LOGICAL_PARALLEL_APPLY_STATE_CHANGE "Waiting for a logical replication parallel apply process to change state."
136 LOGICAL_SYNC_DATA "Waiting for a logical replication remote server to send data for initial table synchronization."
137 LOGICAL_SYNC_STATE_CHANGE "Waiting for a logical replication remote server to change state."
138 MESSAGE_QUEUE_INTERNAL "Waiting for another process to be attached to a shared message queue."
139 MESSAGE_QUEUE_PUT_MESSAGE "Waiting to write a protocol message to a shared message queue."
140 MESSAGE_QUEUE_RECEIVE "Waiting to receive bytes from a shared message queue."
141 MESSAGE_QUEUE_SEND "Waiting to send bytes to a shared message queue."
142 MULTIXACT_CREATION "Waiting for a multixact creation to complete."
143 PARALLEL_BITMAP_SCAN "Waiting for parallel bitmap scan to become initialized."
144 PARALLEL_CREATE_INDEX_SCAN "Waiting for parallel <command>CREATE INDEX</command> workers to finish heap scan."
145 PARALLEL_FINISH "Waiting for parallel workers to finish computing."
146 PROCARRAY_GROUP_UPDATE "Waiting for the group leader to clear the transaction ID at transaction end."
147 PROC_SIGNAL_BARRIER "Waiting for a barrier event to be processed by all backends."
148 PROMOTE "Waiting for standby promotion."
149 RECOVERY_CONFLICT_SNAPSHOT "Waiting for recovery conflict resolution for a vacuum cleanup."
150 RECOVERY_CONFLICT_TABLESPACE "Waiting for recovery conflict resolution for dropping a tablespace."
151 RECOVERY_END_COMMAND "Waiting for <xref linkend="guc-recovery-end-command"/> to complete."
152 RECOVERY_PAUSE "Waiting for recovery to be resumed."
153 REPLICATION_ORIGIN_DROP "Waiting for a replication origin to become inactive so it can be dropped."
154 REPLICATION_SLOT_DROP "Waiting for a replication slot to become inactive so it can be dropped."
155 RESTORE_COMMAND "Waiting for <xref linkend="guc-restore-command"/> to complete."
156 SAFE_SNAPSHOT "Waiting to obtain a valid snapshot for a <literal>READ ONLY DEFERRABLE</literal> transaction."
157 SYNC_REP "Waiting for confirmation from a remote server during synchronous replication."
158 WAL_RECEIVER_EXIT "Waiting for the WAL receiver to exit."
159 WAL_RECEIVER_WAIT_START "Waiting for startup process to send initial data for streaming replication."
160 WAL_SUMMARY_READY "Waiting for a new WAL summary to be generated."
161 XACT_GROUP_UPDATE "Waiting for the group leader to update transaction status at transaction end."
166 # Wait Events - Timeout
168 # Use this category when a process is waiting for a timeout to expire.
171 Section: ClassName - WaitEventTimeout
173 BASE_BACKUP_THROTTLE "Waiting during base backup when throttling activity."
174 CHECKPOINT_WRITE_DELAY "Waiting between writes while performing a checkpoint."
175 PG_SLEEP "Waiting due to a call to <function>pg_sleep</function> or a sibling function."
176 RECOVERY_APPLY_DELAY "Waiting to apply WAL during recovery because of a delay setting."
177 RECOVERY_RETRIEVE_RETRY_INTERVAL "Waiting during recovery when WAL data is not available from any source (<filename>pg_wal</filename>, archive or stream)."
178 REGISTER_SYNC_REQUEST "Waiting while sending synchronization requests to the checkpointer, because the request queue is full."
179 SPIN_DELAY "Waiting while acquiring a contended spinlock."
180 VACUUM_DELAY "Waiting in a cost-based vacuum delay point."
181 VACUUM_TRUNCATE "Waiting to acquire an exclusive lock to truncate off any empty pages at the end of a table vacuumed."
182 WAL_SUMMARIZER_ERROR "Waiting after a WAL summarizer error."
189 # Use this category when a process is waiting for a IO.
192 Section: ClassName - WaitEventIO
194 BASEBACKUP_READ "Waiting for base backup to read from a file."
195 BASEBACKUP_SYNC "Waiting for data written by a base backup to reach durable storage."
196 BASEBACKUP_WRITE "Waiting for base backup to write to a file."
197 BUFFILE_READ "Waiting for a read from a buffered file."
198 BUFFILE_WRITE "Waiting for a write to a buffered file."
199 BUFFILE_TRUNCATE "Waiting for a buffered file to be truncated."
200 CONTROL_FILE_READ "Waiting for a read from the <filename>pg_control</filename> file."
201 CONTROL_FILE_SYNC "Waiting for the <filename>pg_control</filename> file to reach durable storage."
202 CONTROL_FILE_SYNC_UPDATE "Waiting for an update to the <filename>pg_control</filename> file to reach durable storage."
203 CONTROL_FILE_WRITE "Waiting for a write to the <filename>pg_control</filename> file."
204 CONTROL_FILE_WRITE_UPDATE "Waiting for a write to update the <filename>pg_control</filename> file."
205 COPY_FILE_READ "Waiting for a read during a file copy operation."
206 COPY_FILE_WRITE "Waiting for a write during a file copy operation."
207 DATA_FILE_EXTEND "Waiting for a relation data file to be extended."
208 DATA_FILE_FLUSH "Waiting for a relation data file to reach durable storage."
209 DATA_FILE_IMMEDIATE_SYNC "Waiting for an immediate synchronization of a relation data file to durable storage."
210 DATA_FILE_PREFETCH "Waiting for an asynchronous prefetch from a relation data file."
211 DATA_FILE_READ "Waiting for a read from a relation data file."
212 DATA_FILE_SYNC "Waiting for changes to a relation data file to reach durable storage."
213 DATA_FILE_TRUNCATE "Waiting for a relation data file to be truncated."
214 DATA_FILE_WRITE "Waiting for a write to a relation data file."
215 DSM_ALLOCATE "Waiting for a dynamic shared memory segment to be allocated."
216 DSM_FILL_ZERO_WRITE "Waiting to fill a dynamic shared memory backing file with zeroes."
217 LOCK_FILE_ADDTODATADIR_READ "Waiting for a read while adding a line to the data directory lock file."
218 LOCK_FILE_ADDTODATADIR_SYNC "Waiting for data to reach durable storage while adding a line to the data directory lock file."
219 LOCK_FILE_ADDTODATADIR_WRITE "Waiting for a write while adding a line to the data directory lock file."
220 LOCK_FILE_CREATE_READ "Waiting to read while creating the data directory lock file."
221 LOCK_FILE_CREATE_SYNC "Waiting for data to reach durable storage while creating the data directory lock file."
222 LOCK_FILE_CREATE_WRITE "Waiting for a write while creating the data directory lock file."
223 LOCK_FILE_RECHECKDATADIR_READ "Waiting for a read during recheck of the data directory lock file."
224 LOGICAL_REWRITE_CHECKPOINT_SYNC "Waiting for logical rewrite mappings to reach durable storage during a checkpoint."
225 LOGICAL_REWRITE_MAPPING_SYNC "Waiting for mapping data to reach durable storage during a logical rewrite."
226 LOGICAL_REWRITE_MAPPING_WRITE "Waiting for a write of mapping data during a logical rewrite."
227 LOGICAL_REWRITE_SYNC "Waiting for logical rewrite mappings to reach durable storage."
228 LOGICAL_REWRITE_TRUNCATE "Waiting for truncate of mapping data during a logical rewrite."
229 LOGICAL_REWRITE_WRITE "Waiting for a write of logical rewrite mappings."
230 RELATION_MAP_READ "Waiting for a read of the relation map file."
231 RELATION_MAP_REPLACE "Waiting for durable replacement of a relation map file."
232 RELATION_MAP_WRITE "Waiting for a write to the relation map file."
233 REORDER_BUFFER_READ "Waiting for a read during reorder buffer management."
234 REORDER_BUFFER_WRITE "Waiting for a write during reorder buffer management."
235 REORDER_LOGICAL_MAPPING_READ "Waiting for a read of a logical mapping during reorder buffer management."
236 REPLICATION_SLOT_READ "Waiting for a read from a replication slot control file."
237 REPLICATION_SLOT_RESTORE_SYNC "Waiting for a replication slot control file to reach durable storage while restoring it to memory."
238 REPLICATION_SLOT_SYNC "Waiting for a replication slot control file to reach durable storage."
239 REPLICATION_SLOT_WRITE "Waiting for a write to a replication slot control file."
240 SLRU_FLUSH_SYNC "Waiting for SLRU data to reach durable storage during a checkpoint or database shutdown."
241 SLRU_READ "Waiting for a read of an SLRU page."
242 SLRU_SYNC "Waiting for SLRU data to reach durable storage following a page write."
243 SLRU_WRITE "Waiting for a write of an SLRU page."
244 SNAPBUILD_READ "Waiting for a read of a serialized historical catalog snapshot."
245 SNAPBUILD_SYNC "Waiting for a serialized historical catalog snapshot to reach durable storage."
246 SNAPBUILD_WRITE "Waiting for a write of a serialized historical catalog snapshot."
247 TIMELINE_HISTORY_FILE_SYNC "Waiting for a timeline history file received via streaming replication to reach durable storage."
248 TIMELINE_HISTORY_FILE_WRITE "Waiting for a write of a timeline history file received via streaming replication."
249 TIMELINE_HISTORY_READ "Waiting for a read of a timeline history file."
250 TIMELINE_HISTORY_SYNC "Waiting for a newly created timeline history file to reach durable storage."
251 TIMELINE_HISTORY_WRITE "Waiting for a write of a newly created timeline history file."
252 TWOPHASE_FILE_READ "Waiting for a read of a two phase state file."
253 TWOPHASE_FILE_SYNC "Waiting for a two phase state file to reach durable storage."
254 TWOPHASE_FILE_WRITE "Waiting for a write of a two phase state file."
255 VERSION_FILE_SYNC "Waiting for the version file to reach durable storage while creating a database."
256 VERSION_FILE_WRITE "Waiting for the version file to be written while creating a database."
257 WALSENDER_TIMELINE_HISTORY_READ "Waiting for a read from a timeline history file during a walsender timeline command."
258 WAL_BOOTSTRAP_SYNC "Waiting for WAL to reach durable storage during bootstrapping."
259 WAL_BOOTSTRAP_WRITE "Waiting for a write of a WAL page during bootstrapping."
260 WAL_COPY_READ "Waiting for a read when creating a new WAL segment by copying an existing one."
261 WAL_COPY_SYNC "Waiting for a new WAL segment created by copying an existing one to reach durable storage."
262 WAL_COPY_WRITE "Waiting for a write when creating a new WAL segment by copying an existing one."
263 WAL_INIT_SYNC "Waiting for a newly initialized WAL file to reach durable storage."
264 WAL_INIT_WRITE "Waiting for a write while initializing a new WAL file."
265 WAL_READ "Waiting for a read from a WAL file."
266 WAL_SUMMARY_READ "Waiting for a read from a WAL summary file."
267 WAL_SUMMARY_WRITE "Waiting for a write to a WAL summary file."
268 WAL_SYNC "Waiting for a WAL file to reach durable storage."
269 WAL_SYNC_METHOD_ASSIGN "Waiting for data to reach durable storage while assigning a new WAL sync method."
270 WAL_WRITE "Waiting for a write to a WAL file."
275 # Wait Events - Buffer Pin
278 Section: ClassName - WaitEventBufferPin
280 BUFFER_PIN "Waiting to acquire an exclusive pin on a buffer."
285 # Wait Events - Extension
288 Section: ClassName - WaitEventExtension
290 Extension "Waiting in an extension."
295 # Wait Events - LWLock
297 # This class of wait events has its own set of C structure, so these are
298 # only used for the documentation.
300 # NB: Predefined LWLocks (i.e., those declared in lwlocklist.h) must be
301 # listed in the top section of locks and must be listed in the same order as in
305 Section: ClassName - WaitEventLWLock
307 ShmemIndex "Waiting to find or allocate space in shared memory."
308 OidGen "Waiting to allocate a new OID."
309 XidGen "Waiting to allocate a new transaction ID."
310 ProcArray "Waiting to access the shared per-process data structures (typically, to get a snapshot or report a session's transaction ID)."
311 SInvalRead "Waiting to retrieve messages from the shared catalog invalidation queue."
312 SInvalWrite "Waiting to add a message to the shared catalog invalidation queue."
313 WALBufMapping "Waiting to replace a page in WAL buffers."
314 WALWrite "Waiting for WAL buffers to be written to disk."
315 ControlFile "Waiting to read or update the <filename>pg_control</filename> file or create a new WAL file."
316 MultiXactGen "Waiting to read or update shared multixact state."
317 RelCacheInit "Waiting to read or update a <filename>pg_internal.init</filename> relation cache initialization file."
318 CheckpointerComm "Waiting to manage fsync requests."
319 TwoPhaseState "Waiting to read or update the state of prepared transactions."
320 TablespaceCreate "Waiting to create or drop a tablespace."
321 BtreeVacuum "Waiting to read or update vacuum-related information for a B-tree index."
322 AddinShmemInit "Waiting to manage an extension's space allocation in shared memory."
323 Autovacuum "Waiting to read or update the current state of autovacuum workers."
324 AutovacuumSchedule "Waiting to ensure that a table selected for autovacuum still needs vacuuming."
325 SyncScan "Waiting to select the starting location of a synchronized table scan."
326 RelationMapping "Waiting to read or update a <filename>pg_filenode.map</filename> file (used to track the filenode assignments of certain system catalogs)."
327 NotifyQueue "Waiting to read or update <command>NOTIFY</command> messages."
328 SerializableXactHash "Waiting to read or update information about serializable transactions."
329 SerializableFinishedList "Waiting to access the list of finished serializable transactions."
330 SerializablePredicateList "Waiting to access the list of predicate locks held by serializable transactions."
331 SyncRep "Waiting to read or update information about the state of synchronous replication."
332 BackgroundWorker "Waiting to read or update background worker state."
333 DynamicSharedMemoryControl "Waiting to read or update dynamic shared memory allocation information."
334 AutoFile "Waiting to update the <filename>postgresql.auto.conf</filename> file."
335 ReplicationSlotAllocation "Waiting to allocate or free a replication slot."
336 ReplicationSlotControl "Waiting to read or update replication slot state."
337 CommitTs "Waiting to read or update the last value set for a transaction commit timestamp."
338 ReplicationOrigin "Waiting to create, drop or use a replication origin."
339 MultiXactTruncation "Waiting to read or truncate multixact information."
340 LogicalRepWorker "Waiting to read or update the state of logical replication workers."
341 XactTruncation "Waiting to execute <function>pg_xact_status</function> or update the oldest transaction ID available to it."
342 WrapLimitsVacuum "Waiting to update limits on transaction id and multixact consumption."
343 NotifyQueueTail "Waiting to update limit on <command>NOTIFY</command> message storage."
344 WaitEventCustom "Waiting to read or update custom wait events information."
345 WALSummarizer "Waiting to read or update WAL summarization state."
346 DSMRegistry "Waiting to read or update the dynamic shared memory registry."
347 InjectionPoint "Waiting to read or update information related to injection points."
348 SerialControl "Waiting to read or update shared <filename>pg_serial</filename> state."
349 WaitLSN "Waiting to read or update shared Wait-for-LSN state."
352 # END OF PREDEFINED LWLOCKS (DO NOT CHANGE THIS LINE)
354 # Predefined LWLocks (i.e., those declared in lwlocknames.h) must be listed
355 # in the section above and must be listed in the same order as in
356 # lwlocknames.h. Other LWLocks must be listed in the section below.
359 XactBuffer "Waiting for I/O on a transaction status SLRU buffer."
360 CommitTsBuffer "Waiting for I/O on a commit timestamp SLRU buffer."
361 SubtransBuffer "Waiting for I/O on a sub-transaction SLRU buffer."
362 MultiXactOffsetBuffer "Waiting for I/O on a multixact offset SLRU buffer."
363 MultiXactMemberBuffer "Waiting for I/O on a multixact member SLRU buffer."
364 NotifyBuffer "Waiting for I/O on a <command>NOTIFY</command> message SLRU buffer."
365 SerialBuffer "Waiting for I/O on a serializable transaction conflict SLRU buffer."
366 WALInsert "Waiting to insert WAL data into a memory buffer."
367 BufferContent "Waiting to access a data page in memory."
368 ReplicationOriginState "Waiting to read or update the progress of one replication origin."
369 ReplicationSlotIO "Waiting for I/O on a replication slot."
370 LockFastPath "Waiting to read or update a process' fast-path lock information."
371 BufferMapping "Waiting to associate a data block with a buffer in the buffer pool."
372 LockManager "Waiting to read or update information about <quote>heavyweight</quote> locks."
373 PredicateLockManager "Waiting to access predicate lock information used by serializable transactions."
374 ParallelHashJoin "Waiting to synchronize workers during Parallel Hash Join plan execution."
375 ParallelQueryDSA "Waiting for parallel query dynamic shared memory allocation."
376 PerSessionDSA "Waiting for parallel query dynamic shared memory allocation."
377 PerSessionRecordType "Waiting to access a parallel query's information about composite types."
378 PerSessionRecordTypmod "Waiting to access a parallel query's information about type modifiers that identify anonymous record types."
379 SharedTupleStore "Waiting to access a shared tuple store during parallel query."
380 SharedTidBitmap "Waiting to access a shared TID bitmap during a parallel bitmap index scan."
381 ParallelAppend "Waiting to choose the next subplan during Parallel Append plan execution."
382 PerXactPredicateList "Waiting to access the list of predicate locks held by the current serializable transaction during a parallel query."
383 PgStatsDSA "Waiting for stats dynamic shared memory allocator access."
384 PgStatsHash "Waiting for stats shared memory hash table access."
385 PgStatsData "Waiting for shared memory stats data access."
386 LogicalRepLauncherDSA "Waiting to access logical replication launcher's dynamic shared memory allocator."
387 LogicalRepLauncherHash "Waiting to access logical replication launcher's shared hash table."
388 DSMRegistryDSA "Waiting to access dynamic shared memory registry's dynamic shared memory allocator."
389 DSMRegistryHash "Waiting to access dynamic shared memory registry's shared hash table."
390 CommitTsSLRU "Waiting to access the commit timestamp SLRU cache."
391 MultiXactOffsetSLRU "Waiting to access the multixact offset SLRU cache."
392 MultiXactMemberSLRU "Waiting to access the multixact member SLRU cache."
393 NotifySLRU "Waiting to access the <command>NOTIFY</command> message SLRU cache."
394 SerialSLRU "Waiting to access the serializable transaction conflict SLRU cache."
395 SubtransSLRU "Waiting to access the sub-transaction SLRU cache."
396 XactSLRU "Waiting to access the transaction status SLRU cache."
397 ParallelVacuumDSA "Waiting for parallel vacuum dynamic shared memory allocation."
399 # No "ABI_compatibility" region here as WaitEventLWLock has its own C code.
404 # This class of wait events has its own set of C structure, so these are
405 # only used for the documentation.
408 Section: ClassName - WaitEventLock
410 relation "Waiting to acquire a lock on a relation."
411 extend "Waiting to extend a relation."
412 frozenid "Waiting to update <structname>pg_database</structname>.<structfield>datfrozenxid</structfield> and <structname>pg_database</structname>.<structfield>datminmxid</structfield>."
413 page "Waiting to acquire a lock on a page of a relation."
414 tuple "Waiting to acquire a lock on a tuple."
415 transactionid "Waiting for a transaction to finish."
416 virtualxid "Waiting to acquire a virtual transaction ID lock; see <xref linkend="transaction-id"/>."
417 spectoken "Waiting to acquire a speculative insertion lock."
418 object "Waiting to acquire a lock on a non-relation database object."
419 userlock "Waiting to acquire a user lock."
420 advisory "Waiting to acquire an advisory user lock."
421 applytransaction "Waiting to acquire a lock on a remote transaction being applied by a logical replication subscriber."
423 # No "ABI_compatibility" region here as WaitEventLock has its own C code.