Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jYNBG-0003ST-TG for pgsql-docs@arkaria.postgresql.org; Tue, 12 May 2020 05:10:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jYNBF-0002uW-En for pgsql-docs@arkaria.postgresql.org; Tue, 12 May 2020 05:10:13 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jYNBF-0002uN-2Z for pgsql-docs@lists.postgresql.org; Tue, 12 May 2020 05:10:13 +0000 Received: from sss.pgh.pa.us ([66.207.139.130]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jYNBA-00087Q-PB for pgsql-docs@lists.postgresql.org; Tue, 12 May 2020 05:10:12 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.14.4/8.14.4) with ESMTP id 04C5A6R6026962 for ; Tue, 12 May 2020 01:10:06 -0400 From: Tom Lane To: pgsql-docs@lists.postgresql.org Subject: Re: Remaining PDF layout issues In-reply-to: <10190.1589248770@sss.pgh.pa.us> References: <6916.1589146280@sss.pgh.pa.us> <10190.1589248770@sss.pgh.pa.us> Comments: In-reply-to Tom Lane message dated "Mon, 11 May 2020 21:59:30 -0400" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0" Content-ID: <26940.1589260177.0@sss.pgh.pa.us> Date: Tue, 12 May 2020 01:10:06 -0400 Message-ID: <26961.1589260206@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <26940.1589260177.1@sss.pgh.pa.us> I wrote: >> Table 27.4 is annoying: it could be made to work, just barely, with some >> hacking of the column widths and a &zwsp; or two. But it's not stable >> text so I have little faith in the longevity of such a solution, >> especially if people keep on inventing long wait event names. I also >> find it not very readable, even in a wide window. The first idea that >> comes to mind is to split it into multiple tables, one per "Wait Event >> Type", so that we don't need the lefthand column. Here's an attempt at doing it that way. I think this might be a better answer, although it's still subject to problems if anyone's logorrhea gets any worse in naming wait conditions: "SerializablePredicateLockListLock" is still going to force manually tweaking the column widths. I sorted the names here, too. regards, tom lane ------- =_aaaaaaaaaa0 Content-Type: text/x-diff; name="fix-wait-event-table-2.patch"; charset="us-ascii" Content-ID: <26940.1589260177.2@sss.pgh.pa.us> Content-Description: fix-wait-event-table-2.patch Content-Transfer-Encoding: quoted-printable diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index 579ccd3..64fc0e0 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -724,86 +724,15 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss = 11:34 0:00 postgres: ser wait_event_type text The type of event for which the backend is waiting, if any; - otherwise NULL. Possible values are: - - - - LWLock: The backend is waiting for a lightwe= ight lock. - Each such lock protects a particular data structure in shared m= emory. - wait_event will contain a name identifying t= he purpose - of the lightweight lock. (Some locks have specific names; othe= rs - are part of a group of locks each with a similar purpose.) - - - - - Lock: The backend is waiting for a heavyweig= ht lock. - Heavyweight locks, also known as lock manager locks or simply l= ocks, - primarily protect SQL-visible objects such as tables. However, - they are also used to ensure mutual exclusion for certain inter= nal - 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 p= oint. - - - - - 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 so= me activity - on a socket from user applications, and that the server expects - something to happen that is independent from its internal proce= sses. - wait_event will identify the specific wait p= oint. - - - - - 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 spe= cific wait - point. - - - - - IO: The server process is waiting for a IO t= o complete. - wait_event will identify the specific wait p= oint. - - - + otherwise NULL. See . wait_event text Wait event name if backend is currently waiting, otherwise NU= LL. - See for details. + See through + . @@ -890,931 +819,1186 @@ postgres 27093 0.0 0.0 30096 2752 ? = Ss 11:34 0:00 postgres: ser = - - The pg_stat_activity view will have one row - per server process, showing information related to - the current activity of that process. - + + The pg_stat_activity view will have one row + per server process, showing information related to + the current activity of that process. + + + + + The wait_event and state columns are + independent. If a backend is in the active state, + it may or may not be waiting on some event. If th= e state + is active and wait_event is non-null, it + means that a query is being executed, but is being blocked somewhere + in the system. + + + + + Wait Event Types + + + + Wait Event Type + Description + + + + + + Activity + The server process is idle. This is used by + system processes waiting for activity in their main processing loo= p. + wait_event will identify the specific wait poin= t. + 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 processe= s. + wait_event will identify the specific wait poin= t. + 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 poin= t. + 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 lock= s, + 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 memo= ry. + 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 specif= ic wait + point. See . + + + + +
+ + + Wait Events of Type <literal>Activity</literal> + + + + 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 <literal>BufferPin</literal> + + + + BufferPin Wait Event + Description + + + + + + BufferPin + Waiting to acquire a pin on a buffer. + + + +
+ + + Wait Events of Type <literal>Client</literal> + + + + 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.<= /entry> + + + SSLOpenServer + Waiting for SSL while attempting connection. + + + WalReceiverWaitStart + Waiting for startup process to send initial data for streami= ng + 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 <literal>Extension</literal> + + + + Extension Wait Event + Description + + + + + + Extension + Waiting in an extension. + + + +
+ + + Wait Events of Type <literal>IO</literal> + + + + 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 backi= ng + 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 director= y + 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 lo= gical + 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 buffe= r + 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 check= point + or database shutdown. + + + SLRURead + Waiting for a read of an SLRU page. + + + SLRUSync + Waiting for SLRU data to reach stable storage following a pa= ge + 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 reac= h + 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 s= table + 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.<= /entry> + + + 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 copyin= g 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 copyi= ng 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 walse= nder + 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 <literal>IPC</literal> + + + + IPC Wait Event + Description + + + + + + BackupWaitWalArchive + Waiting for WAL files required for the backup to be successf= ully + 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 tabl= e. + + + Hash/Batch/Loading + Waiting for other Parallel Hash participants to finish loadi= ng 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 hashi= ng the + inner relation. + + + Hash/Build/HashingOuter + Waiting for other Parallel Hash participants to finish parti= tioning + 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 bat= ch growth. + + + Hash/GrowBatches/Electing + Electing a Parallel Hash participant to allocate more batche= s. + + + Hash/GrowBatches/Finishing + Waiting for an elected Parallel Hash participant to decide o= n + 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 bucket= s. + + + Hash/GrowBuckets/Reinserting + Waiting for other Parallel Hash participants to finish inser= ting + tuples into new buckets. + + + LogicalSyncData + Waiting for logical replication remote server to send data f= or + initial table synchronization. + + + LogicalSyncStateChange + Waiting for logical replication remote server to change stat= e. + + + MessageQueueInternal + Waiting for other process to be attached in shared message q= ueue. + + + MessageQueuePutMessage + Waiting to write a protocol message to a shared message queu= e. + + + 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 transact= ion end. + + + Promote + Waiting for standby promotion. + + + RecoveryConflictSnapshot + Waiting for recovery conflict resolution on a vacuum cleanup= . + + + RecoveryConflictTablespace + Waiting for recovery conflict resolution on dropping tablesp= ace. + + + RecoveryPause + Waiting for recovery to be resumed. + + + ReplicationOriginDrop + Waiting for a replication origin to become inactive to be dr= opped. + + + ReplicationSlotDrop + Waiting for a replication slot to become inactive to be drop= ped. + + + SafeSnapshot + Waiting for a snapshot for a READ ONLY DEFERRABLE + transaction. + + + SyncRep + Waiting for confirmation from remote server during synchrono= us + replication. + + + +
+ + + Wait Events of Type <literal>Lock</literal> + + + + Lock Wait Event + Description + + = - - - The wait_event and state columns are - independent. If a backend is in the active state, - it may or may not be waiting on some event. If th= e state - is active and wait_event is non-null, it - means that a query is being executed, but is being blocked somewhere - in the system. - - + + + 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. + + + +
= - - <structname>wait_event</structname> Description - - - - - Wait Event Type - Wait Event Name - Description - - - - - - 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 invali= dation - 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 transacti= ons. - - - 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 va= cuum - still needs vacuuming. - - - - SyncScanLock - Waiting to get the start location of a scan on a table fo= r - synchronized scans. - - - RelationMappingLock - Waiting to update the relation map file used to store cat= alog - 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 serializab= le - transactions. - - - SerializableFinishedListLock - Waiting to access the list of finished serializable - transactions. - - - SerializablePredicateLockListLock - Waiting to perform an operation on a list of locks held b= y - 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.<= /entry> - - - 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 informatio= n. - - - LogicalRepWorkerLock - Waiting for action on logical replication worker to finis= h. - - - 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 bu= ffer - 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 transac= tion - in a parallel query. - - - parallel_query_dsa - Waiting for parallel query dynamic shared memory allocati= on 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 upda= te - 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 obje= ct. - - - 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 backgro= und 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 t= he GSSAPI session. - - - LibPQWalReceiverConnect - Waiting in WAL receiver to establish connection to remote= server. - - - LibPQWalReceiverReceive - Waiting in WAL receiver to receive data from remote serve= r. - - - SSLOpenServer - Waiting for SSL while attempting connection. - - - WalReceiverWaitStart - Waiting for startup process to send initial data for stre= aming 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 succe= ssfully 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 allo= cate 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 l= oading a hash table. - - - Hash/Build/Allocating - Waiting for an elected Parallel Hash participant to allo= cate the initial hash table. - - - Hash/Build/Electing - Electing a Parallel Hash participant to allocate the ini= tial hash table. - - - Hash/Build/HashingInner - Waiting for other Parallel Hash participants to finish h= ashing the inner relation. - - - Hash/Build/HashingOuter - Waiting for other Parallel Hash participants to finish p= artitioning the outer relation. - - - Hash/GrowBatches/Allocating - Waiting for an elected Parallel Hash participant to allo= cate 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 ba= tches. - - - Hash/GrowBatches/Finishing - Waiting for an elected Parallel Hash participant to deci= de on future batch growth. - - - Hash/GrowBatches/Repartitioning - Waiting for other Parallel Hash participants to finishin= g repartitioning. - - - Hash/GrowBuckets/Allocating - Waiting for an elected Parallel Hash participant to fini= sh allocating more buckets. - - - Hash/GrowBuckets/Electing - Electing a Parallel Hash participant to allocate more bu= ckets. - - - Hash/GrowBuckets/Reinserting - Waiting for other Parallel Hash participants to finish i= nserting tuples into new buckets. - - - LogicalSyncData - Waiting for logical replication remote server to send dat= a for initial table synchronization. - - - LogicalSyncStateChange - Waiting for logical replication remote server to change s= tate. - - - MessageQueueInternal - Waiting for other process to be attached in shared messag= e queue. - - - MessageQueuePutMessage - Waiting to write a protocol message to a shared message q= ueue. - - - 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 work= ers to finish heap scan. - - - ParallelFinish - Waiting for parallel workers to finish computing. - - - ProcArrayGroupUpdate - Waiting for group leader to clear transaction id at trans= action end. - - - Promote - Waiting for standby promotion. - - - RecoveryConflictSnapshot - Waiting for recovery conflict resolution on a vacuum clea= nup. - - - RecoveryConflictTablespace - Waiting for recovery conflict resolution on dropping tabl= espace. - - - 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 d= ropped. - - - SafeSnapshot - Waiting for a snapshot for a READ ONLY DEFERRABL= E transaction. - - - SyncRep - Waiting for confirmation from remote server during synchr= onous 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 da= ta 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 stab= le 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 ba= cking file. - - - LockFileAddToDataDirRead - Waiting for a read while adding a line to the data direct= ory lock file. - - - LockFileAddToDataDirSync - Waiting for data to reach stable storage while adding a l= ine to the data directory lock file. - - - LockFileAddToDataDirWrite - Waiting for a write while adding a line to the data direc= tory lock file. - - - LockFileCreateRead - Waiting to read while creating the data directory lock fi= le. - - - LockFileCreateSync - Waiting for data to reach stable storage while creating t= he data directory lock file. - - - LockFileCreateWrite - Waiting for a write while creating the data directory loc= k file. - - - LockFileReCheckDataDirRead - Waiting for a read during recheck of the data directory l= ock file. - - - LogicalRewriteCheckpointSync - Waiting for logical rewrite mappings to reach stable stor= age 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 rewr= ite. - - - LogicalRewriteSync - Waiting for logical rewrite mappings to reach stable stor= age. - - - LogicalRewriteTruncate - Waiting for truncate of mapping data during a logical rew= rite. - - - LogicalRewriteWrite - Waiting for a write of logical rewrite mappings. - - - ProcSignalBarrier - Waiting for a barrier event to be processed by all backen= ds. - - - 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 bu= ffer management. - - - ReplicationSlotRead - Waiting for a read from a replication slot control file.<= /entry> - - - ReplicationSlotRestoreSync - Waiting for a replication slot control file to reach stab= le storage while restoring it to memory. - - - ReplicationSlotSync - Waiting for a replication slot control file to reach stab= le storage. - - - ReplicationSlotWrite - Waiting for a write to a replication slot control file. - - - SLRUFlushSync - Waiting for SLRU data to reach stable storage during a ch= eckpoint 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 sna= pshot. - - - SnapbuildSync - Waiting for a serialized historical catalog snapshot to r= each stable storage. - - - SnapbuildWrite - Waiting for a write of a serialized historical catalog sn= apshot. - - - TimelineHistoryFileSync - Waiting for a timeline history file received via streamin= g replication to reach stable storage. - - - TimelineHistoryFileWrite - Waiting for a write of a timeline history file received v= ia streaming replication. - - - TimelineHistoryRead - Waiting for a read of a timeline history file. - - - TimelineHistorySync - Waiting for a newly created timeline history file to reac= h stable storage. - - - TimelineHistoryWrite - Waiting for a write of a newly created timeline history f= ile. - - - TwophaseFileRead - Waiting for a read of a two phase state file. - - - TwophaseFileSync - Waiting for a two phase state file to reach stable storag= e. - - - TwophaseFileWrite - Waiting for a write of a two phase state file. - - - WALBootstrapSync - Waiting for WAL to reach stable storage during bootstrapp= ing. - - - WALBootstrapWrite - Waiting for a write of a WAL page during bootstrapping. - - - WALCopyRead - Waiting for a read when creating a new WAL segment by cop= ying 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 co= pying 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 wa= lsender 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 <literal>LWLock</literal> + + + + 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 up= date + 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.<= /entry> + + + 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.<= /entry> + + + 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 catalo= g + 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 invalidat= ion + 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 buffe= r + 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 pl= an + 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 transactio= n + 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. + + + +
+ + + Wait Events of Type <literal>Timeout</literal> + + + + 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 sour= ces + (pg_wal, archive or stream) before trying + again to retrieve WAL data, at recovery. + + + VacuumDelay + Waiting in a cost-based vacuum delay point. + + + +
= @@ -3728,7 +3912,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 det= ails. + otherwise NULL. See = through + .
= ------- =_aaaaaaaaaa0--