Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qdOs7-003EC4-OV for pgsql-hackers@arkaria.postgresql.org; Tue, 05 Sep 2023 05:45:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qdOs4-00H0QD-RL for pgsql-hackers@arkaria.postgresql.org; Tue, 05 Sep 2023 05:45:04 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qdOs4-00H0Ps-43 for pgsql-hackers@lists.postgresql.org; Tue, 05 Sep 2023 05:45:04 +0000 Received: from out3-smtp.messagingengine.com ([66.111.4.27]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qdOrx-002oLe-Eb for pgsql-hackers@lists.postgresql.org; Tue, 05 Sep 2023 05:45:02 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id D90525C0140; Tue, 5 Sep 2023 01:44:56 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Tue, 05 Sep 2023 01:44:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paquier.xyz; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm1; t=1693892696; x=1693979096; bh=PC 6CAmIC9N1LvZFcCNYCDhQhmdt7YuKF267yRmB0xKs=; b=qwa6wf1a1APpzMyP62 yq7IwQwn6NCunB2xTeMgLUrKDf1AZulGvOnPGN0DobrEtCmGYBk5FZ1IEQxFoLHL EZF6D0X4O2V6jc71LHrnEVe4nX9FI7+4DCqewrmm1NEd5+pMizsuVW7vDaQw36hZ LqWxmFl4n3ONVKCL5/DDwrEFwq7X2F2c7ZrZfxpsh4wbebohmZ/1056bhWNtnFog 37gYdQ082QVagbvAd+eFGXga2eE7SDNXFgw67Oo+UtsC/mkk6uVHBUXxOo+4XONA sfy+1eKzSV/cjngdjkctFzK4jBy9TW7G43D8i9a2UWeTZoQB845D5EzNjYHHfChJ nGVw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1693892696; x=1693979096; bh=PC6CAmIC9N1Lv ZFcCNYCDhQhmdt7YuKF267yRmB0xKs=; b=k2UarhTUkFMWYz4m5FUI3j2b4/QFx hHkSLY+1QC7PX8y8FmI1cneh3JYAW9tCNLe2/oU1HCqGA5sC1vpbIyzRW1zEMkku CZOTVA1zKniUk6wFFuuPGxv7TX3hk3Cl3SA4gObb0Nk8qtqdSj5k5N4EI7EKFswB SEF29RCxsr/bbPTVprnensIBNtbgWhcjAAIGWv3R4jtIrCvCF49z5SQ8OxbRZKFM WBFiE+h3EwKwq+9qIfDwbeJMA7KfQ1UqVWC9o7nY3Lik88q1lbw/D6HKgAC2CYoL 9sF7MMV7w1rOulTs90EbTIsV1jz9BL3ETv0lcQS3xDGOt2bTsCbhMXS6w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudegledguddttdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enfghrlhcuvffnffculdejtddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreer tddtvdenucfhrhhomhepofhitghhrggvlhcurfgrqhhuihgvrhcuoehmihgthhgrvghlse hprghquhhivghrrdighiiiqeenucggtffrrghtthgvrhhnpeetleeifedufffhhfdtteel geeggeffhfekueevteeigfduudevudetgfegiedvjeenucevlhhushhtvghrufhiiigvpe dtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmihgthhgrvghlsehprghquhhivghrrdig hiii X-ME-Proxy: Feedback-ID: i0fe9450f:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 5 Sep 2023 01:44:53 -0400 (EDT) Date: Tue, 5 Sep 2023 14:44:50 +0900 From: Michael Paquier To: "Drouvot, Bertrand" Cc: Andres Freund , PostgreSQL Hackers , Alvaro Herrera Subject: Re: Autogenerate some wait events code and documentation Message-ID: References: <20230716192120.t53prl2uruingo6z@awork3.anarazel.de> <6dc1587f-2ca6-4dd6-b389-94a05912fda5@gmail.com> <171299a1-6110-43ca-bb79-66b82e0baa12@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="NEeOa6N+HNhz1+8e" Content-Disposition: inline In-Reply-To: <171299a1-6110-43ca-bb79-66b82e0baa12@gmail.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --NEeOa6N+HNhz1+8e Content-Type: multipart/mixed; boundary="JS9jxfxqjdBQdjQM" Content-Disposition: inline --JS9jxfxqjdBQdjQM Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Sep 04, 2023 at 02:14:58PM +0200, Drouvot, Bertrand wrote: > # Build the descriptions. There are in camel-case. > # LWLock and Lock classes do not need any modifications. >=20 > Nit: 2 whitespaces before "There are in camel" The whitespaces are intentional, the typo in the first line is not. > + my $waiteventdescription =3D ''; > + if ( $waitclassname eq 'WaitEventLWLock' >=20 > Nit: Too many whitespace after the "if (" ?? (I guess pgperltidy would > fix it). Here, perltidy is indeed complaining, but it is adding a few whitespaces. > Then, the only diff is: >=20 > < Client,WalSenderWaitWal,Waiting for WAL to be flushed in WAL sender pro= cess > --- > > Client,WalSenderWaitForWAL,Waiting for WAL to be flushed in WAL sender = process >=20 > That said, it looks good to me. Ah, good catch. I did not think about cross-checking the data in the new view before and after the patch set. This rename needs to happen in 0001. Please find v5 attached. How does that look? -- Michael --JS9jxfxqjdBQdjQM Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v5-0001-Rename-wait-events-with-more-consistent-camelcase.patch" Content-Transfer-Encoding: quoted-printable =46rom 878ecc7a13ef9086ec3dc0cc70bff1f5d8a22eea Mon Sep 17 00:00:00 2001 =46rom: Michael Paquier Date: Tue, 5 Sep 2023 14:32:37 +0900 Subject: [PATCH v5 1/2] Rename wait events with more consistent camelcase style This will help in the introduction of more simplifications with the generation of wait event data using wait_event_names.txt. The event names used the same case-insensitive characters, hence applying lower() or upper() to the monitoring queries allows the detection of the same events as before this change. --- src/backend/libpq/pqmq.c | 2 +- src/backend/replication/walsender.c | 2 +- src/backend/storage/ipc/shm_mq.c | 6 +- .../utils/activity/wait_event_names.txt | 90 +++++++++---------- 4 files changed, 50 insertions(+), 50 deletions(-) diff --git a/src/backend/libpq/pqmq.c b/src/backend/libpq/pqmq.c index 253181f47a..38b042804c 100644 --- a/src/backend/libpq/pqmq.c +++ b/src/backend/libpq/pqmq.c @@ -182,7 +182,7 @@ mq_putmessage(char msgtype, const char *s, size_t len) break; =20 (void) WaitLatch(MyLatch, WL_LATCH_SET | WL_EXIT_ON_PM_DEATH, 0, - WAIT_EVENT_MQ_PUT_MESSAGE); + WAIT_EVENT_MESSAGE_QUEUE_PUT_MESSAGE); ResetLatch(MyLatch); CHECK_FOR_INTERRUPTS(); } diff --git a/src/backend/replication/walsender.c b/src/backend/replication/= walsender.c index 46e48492ac..e250b0567e 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -1654,7 +1654,7 @@ WalSndWaitForWal(XLogRecPtr loc) if (pq_is_send_pending()) wakeEvents |=3D WL_SOCKET_WRITEABLE; =20 - WalSndWait(wakeEvents, sleeptime, WAIT_EVENT_WAL_SENDER_WAIT_WAL); + WalSndWait(wakeEvents, sleeptime, WAIT_EVENT_WAL_SENDER_WAIT_FOR_WAL); } =20 /* reactivate latch so WalSndLoop knows to continue */ diff --git a/src/backend/storage/ipc/shm_mq.c b/src/backend/storage/ipc/shm= _mq.c index d134a09a19..06d6b73527 100644 --- a/src/backend/storage/ipc/shm_mq.c +++ b/src/backend/storage/ipc/shm_mq.c @@ -1017,7 +1017,7 @@ shm_mq_send_bytes(shm_mq_handle *mqh, Size nbytes, co= nst void *data, * cheaper than setting one that has been reset. */ (void) WaitLatch(MyLatch, WL_LATCH_SET | WL_EXIT_ON_PM_DEATH, 0, - WAIT_EVENT_MQ_SEND); + WAIT_EVENT_MESSAGE_QUEUE_SEND); =20 /* Reset the latch so we don't spin. */ ResetLatch(MyLatch); @@ -1163,7 +1163,7 @@ shm_mq_receive_bytes(shm_mq_handle *mqh, Size bytes_n= eeded, bool nowait, * setting one that has been reset. */ (void) WaitLatch(MyLatch, WL_LATCH_SET | WL_EXIT_ON_PM_DEATH, 0, - WAIT_EVENT_MQ_RECEIVE); + WAIT_EVENT_MESSAGE_QUEUE_RECEIVE); =20 /* Reset the latch so we don't spin. */ ResetLatch(MyLatch); @@ -1252,7 +1252,7 @@ shm_mq_wait_internal(shm_mq *mq, PGPROC **ptr, Backgr= oundWorkerHandle *handle) =20 /* Wait to be signaled. */ (void) WaitLatch(MyLatch, WL_LATCH_SET | WL_EXIT_ON_PM_DEATH, 0, - WAIT_EVENT_MQ_INTERNAL); + WAIT_EVENT_MESSAGE_QUEUE_INTERNAL); =20 /* Reset the latch so we don't spin. */ ResetLatch(MyLatch); diff --git a/src/backend/utils/activity/wait_event_names.txt b/src/backend/= utils/activity/wait_event_names.txt index 13774254d2..5287ad5f63 100644 --- a/src/backend/utils/activity/wait_event_names.txt +++ b/src/backend/utils/activity/wait_event_names.txt @@ -45,15 +45,15 @@ Section: ClassName - WaitEventActivity =20 WAIT_EVENT_ARCHIVER_MAIN ArchiverMain "Waiting in main loop of archiver pr= ocess." -WAIT_EVENT_AUTOVACUUM_MAIN AutoVacuumMain "Waiting in main loop of autovac= uum launcher process." -WAIT_EVENT_BGWRITER_HIBERNATE BgWriterHibernate "Waiting in background wri= ter process, hibernating." -WAIT_EVENT_BGWRITER_MAIN BgWriterMain "Waiting in main loop of background = writer process." +WAIT_EVENT_AUTOVACUUM_MAIN AutovacuumMain "Waiting in main loop of autovac= uum launcher process." +WAIT_EVENT_BGWRITER_HIBERNATE BgwriterHibernate "Waiting in background wri= ter process, hibernating." +WAIT_EVENT_BGWRITER_MAIN BgwriterMain "Waiting in main loop of background = writer process." WAIT_EVENT_CHECKPOINTER_MAIN CheckpointerMain "Waiting in main loop of che= ckpointer process." WAIT_EVENT_LOGICAL_APPLY_MAIN LogicalApplyMain "Waiting in main loop of lo= gical replication apply process." WAIT_EVENT_LOGICAL_LAUNCHER_MAIN LogicalLauncherMain "Waiting in main loop= of logical replication launcher process." WAIT_EVENT_LOGICAL_PARALLEL_APPLY_MAIN LogicalParallelApplyMain "Waiting i= n main loop of logical replication parallel apply process." WAIT_EVENT_RECOVERY_WAL_STREAM RecoveryWalStream "Waiting in main loop of = startup process for WAL to arrive, during streaming recovery." -WAIT_EVENT_SYSLOGGER_MAIN SysLoggerMain "Waiting in main loop of syslogger= process." +WAIT_EVENT_SYSLOGGER_MAIN SysloggerMain "Waiting in main loop of syslogger= process." WAIT_EVENT_WAL_RECEIVER_MAIN WalReceiverMain "Waiting in main loop of WAL = receiver process." WAIT_EVENT_WAL_SENDER_MAIN WalSenderMain "Waiting in main loop of WAL send= er process." WAIT_EVENT_WAL_WRITER_MAIN WalWriterMain "Waiting in main loop of WAL writ= er process." @@ -71,11 +71,11 @@ Section: ClassName - WaitEventClient =20 WAIT_EVENT_CLIENT_READ ClientRead "Waiting to read data from the client." WAIT_EVENT_CLIENT_WRITE ClientWrite "Waiting to write data to the client." -WAIT_EVENT_GSS_OPEN_SERVER GSSOpenServer "Waiting to read data from the cl= ient while establishing a GSSAPI session." -WAIT_EVENT_LIBPQWALRECEIVER_CONNECT LibPQWalReceiverConnect "Waiting in WA= L receiver to establish connection to remote server." -WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE LibPQWalReceiverReceive "Waiting in WA= L receiver to receive data from remote server." -WAIT_EVENT_SSL_OPEN_SERVER SSLOpenServer "Waiting for SSL while attempting= connection." -WAIT_EVENT_WAL_SENDER_WAIT_WAL WalSenderWaitForWAL "Waiting for WAL to be = flushed in WAL sender process." +WAIT_EVENT_GSS_OPEN_SERVER GssOpenServer "Waiting to read data from the cl= ient while establishing a GSSAPI session." +WAIT_EVENT_LIBPQWALRECEIVER_CONNECT LibpqwalreceiverConnect "Waiting in WA= L receiver to establish connection to remote server." +WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE LibpqwalreceiverReceive "Waiting in WA= L receiver to receive data from remote server." +WAIT_EVENT_SSL_OPEN_SERVER SslOpenServer "Waiting for SSL while attempting= connection." +WAIT_EVENT_WAL_SENDER_WAIT_FOR_WAL WalSenderWaitForWal "Waiting for WAL to= be flushed in WAL sender process." WAIT_EVENT_WAL_SENDER_WRITE_DATA WalSenderWriteData "Waiting for any activ= ity when processing replies from WAL receiver in WAL sender process." =20 =20 @@ -93,10 +93,10 @@ WAIT_EVENT_ARCHIVE_CLEANUP_COMMAND ArchiveCleanupComman= d "Waiting for to complete." WAIT_EVENT_BACKEND_TERMINATION BackendTermination "Waiting for the termina= tion of another backend." WAIT_EVENT_BACKUP_WAIT_WAL_ARCHIVE BackupWaitWalArchive "Waiting for WAL f= iles required for a backup to be successfully archived." -WAIT_EVENT_BGWORKER_SHUTDOWN BgWorkerShutdown "Waiting for background work= er to shut down." -WAIT_EVENT_BGWORKER_STARTUP BgWorkerStartup "Waiting for background worker= to start up." +WAIT_EVENT_BGWORKER_SHUTDOWN BgworkerShutdown "Waiting for background work= er to shut down." +WAIT_EVENT_BGWORKER_STARTUP BgworkerStartup "Waiting for background worker= to start up." WAIT_EVENT_BTREE_PAGE BtreePage "Waiting for the page number needed to con= tinue a parallel B-tree scan to become available." -WAIT_EVENT_BUFFER_IO BufferIO "Waiting for buffer I/O to complete." +WAIT_EVENT_BUFFER_IO BufferIo "Waiting for buffer I/O to complete." WAIT_EVENT_CHECKPOINT_DONE CheckpointDone "Waiting for a checkpoint to com= plete." WAIT_EVENT_CHECKPOINT_START CheckpointStart "Waiting for a checkpoint to s= tart." WAIT_EVENT_EXECUTE_GATHER ExecuteGather "Waiting for activity from a child= process while executing a Gather plan node." @@ -119,14 +119,14 @@ WAIT_EVENT_LOGICAL_APPLY_SEND_DATA LogicalApplySendDa= ta "Waiting for a logical r WAIT_EVENT_LOGICAL_PARALLEL_APPLY_STATE_CHANGE LogicalParallelApplyStateCh= ange "Waiting for a logical replication parallel apply process to change st= ate." WAIT_EVENT_LOGICAL_SYNC_DATA LogicalSyncData "Waiting for a logical replic= ation remote server to send data for initial table synchronization." WAIT_EVENT_LOGICAL_SYNC_STATE_CHANGE LogicalSyncStateChange "Waiting for a= logical replication remote server to change state." -WAIT_EVENT_MQ_INTERNAL MessageQueueInternal "Waiting for another process t= o be attached to a shared message queue." -WAIT_EVENT_MQ_PUT_MESSAGE MessageQueuePutMessage "Waiting to write a proto= col message to a shared message queue." -WAIT_EVENT_MQ_RECEIVE MessageQueueReceive "Waiting to receive bytes from a= shared message queue." -WAIT_EVENT_MQ_SEND MessageQueueSend "Waiting to send bytes to a shared mes= sage queue." +WAIT_EVENT_MESSAGE_QUEUE_INTERNAL MessageQueueInternal "Waiting for anothe= r process to be attached to a shared message queue." +WAIT_EVENT_MESSAGE_QUEUE_PUT_MESSAGE MessageQueuePutMessage "Waiting to wr= ite a protocol message to a shared message queue." +WAIT_EVENT_MESSAGE_QUEUE_RECEIVE MessageQueueReceive "Waiting to receive b= ytes from a shared message queue." +WAIT_EVENT_MESSAGE_QUEUE_SEND MessageQueueSend "Waiting to send bytes to a= shared message queue." WAIT_EVENT_PARALLEL_BITMAP_SCAN ParallelBitmapScan "Waiting for parallel b= itmap scan to become initialized." WAIT_EVENT_PARALLEL_CREATE_INDEX_SCAN ParallelCreateIndexScan "Waiting for= parallel CREATE INDEX workers to finish heap scan." WAIT_EVENT_PARALLEL_FINISH ParallelFinish "Waiting for parallel workers to= finish computing." -WAIT_EVENT_PROCARRAY_GROUP_UPDATE ProcArrayGroupUpdate "Waiting for the gr= oup leader to clear the transaction ID at end of a parallel operation." +WAIT_EVENT_PROCARRAY_GROUP_UPDATE ProcarrayGroupUpdate "Waiting for the gr= oup leader to clear the transaction ID at end of a parallel operation." WAIT_EVENT_PROC_SIGNAL_BARRIER ProcSignalBarrier "Waiting for a barrier ev= ent to be processed by all backends." WAIT_EVENT_PROMOTE Promote "Waiting for standby promotion." WAIT_EVENT_RECOVERY_CONFLICT_SNAPSHOT RecoveryConflictSnapshot "Waiting fo= r recovery conflict resolution for a vacuum cleanup." @@ -170,12 +170,12 @@ WAIT_EVENT_VACUUM_TRUNCATE VacuumTruncate "Waiting to= acquire an exclusive lock =20 Section: ClassName - WaitEventIO =20 -WAIT_EVENT_BASEBACKUP_READ BaseBackupRead "Waiting for base backup to read= from a file." -WAIT_EVENT_BASEBACKUP_SYNC BaseBackupSync "Waiting for data written by a b= ase backup to reach durable storage." -WAIT_EVENT_BASEBACKUP_WRITE BaseBackupWrite "Waiting for base backup to wr= ite to a file." -WAIT_EVENT_BUFFILE_READ BufFileRead "Waiting for a read from a buffered fi= le." -WAIT_EVENT_BUFFILE_WRITE BufFileWrite "Waiting for a write to a buffered f= ile." -WAIT_EVENT_BUFFILE_TRUNCATE BufFileTruncate "Waiting for a buffered file t= o be truncated." +WAIT_EVENT_BASEBACKUP_READ BasebackupRead "Waiting for base backup to read= from a file." +WAIT_EVENT_BASEBACKUP_SYNC BasebackupSync "Waiting for data written by a b= ase backup to reach durable storage." +WAIT_EVENT_BASEBACKUP_WRITE BasebackupWrite "Waiting for base backup to wr= ite to a file." +WAIT_EVENT_BUFFILE_READ BuffileRead "Waiting for a read from a buffered fi= le." +WAIT_EVENT_BUFFILE_WRITE BuffileWrite "Waiting for a write to a buffered f= ile." +WAIT_EVENT_BUFFILE_TRUNCATE BuffileTruncate "Waiting for a buffered file t= o be truncated." WAIT_EVENT_CONTROL_FILE_READ ControlFileRead "Waiting for a read from the = pg_control file." WAIT_EVENT_CONTROL_FILE_SYNC ControlFileSync "Waiting for the pg= _control file to reach durable storage." WAIT_EVENT_CONTROL_FILE_SYNC_UPDATE ControlFileSyncUpdate "Waiting for an = update to the pg_control file to reach durable storage= =2E" @@ -191,15 +191,15 @@ WAIT_EVENT_DATA_FILE_READ DataFileRead "Waiting for a= read from a relation data WAIT_EVENT_DATA_FILE_SYNC DataFileSync "Waiting for changes to a relation = data file to reach durable storage." WAIT_EVENT_DATA_FILE_TRUNCATE DataFileTruncate "Waiting for a relation dat= a file to be truncated." WAIT_EVENT_DATA_FILE_WRITE DataFileWrite "Waiting for a write to a relatio= n data file." -WAIT_EVENT_DSM_ALLOCATE DSMAllocate "Waiting for a dynamic shared memory s= egment to be allocated." -WAIT_EVENT_DSM_FILL_ZERO_WRITE DSMFillZeroWrite "Waiting to fill a dynamic= shared memory backing file with zeroes." -WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ LockFileAddToDataDirRead "Waiting f= or a read while adding a line to the data directory lock file." -WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC LockFileAddToDataDirSync "Waiting f= or data to reach durable storage while adding a line to the data directory = lock file." -WAIT_EVENT_LOCK_FILE_ADDTODATADIR_WRITE LockFileAddToDataDirWrite "Waiting= for a write while adding a line to the data directory lock file." +WAIT_EVENT_DSM_ALLOCATE DsmAllocate "Waiting for a dynamic shared memory s= egment to be allocated." +WAIT_EVENT_DSM_FILL_ZERO_WRITE DsmFillZeroWrite "Waiting to fill a dynamic= shared memory backing file with zeroes." +WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ LockFileAddtodatadirRead "Waiting f= or a read while adding a line to the data directory lock file." +WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC LockFileAddtodatadirSync "Waiting f= or data to reach durable storage while adding a line to the data directory = lock file." +WAIT_EVENT_LOCK_FILE_ADDTODATADIR_WRITE LockFileAddtodatadirWrite "Waiting= for a write while adding a line to the data directory lock file." WAIT_EVENT_LOCK_FILE_CREATE_READ LockFileCreateRead "Waiting to read while= creating the data directory lock file." WAIT_EVENT_LOCK_FILE_CREATE_SYNC LockFileCreateSync "Waiting for data to r= each durable storage while creating the data directory lock file." WAIT_EVENT_LOCK_FILE_CREATE_WRITE LockFileCreateWrite "Waiting for a write= while creating the data directory lock file." -WAIT_EVENT_LOCK_FILE_RECHECKDATADIR_READ LockFileReCheckDataDirRead "Waiti= ng for a read during recheck of the data directory lock file." +WAIT_EVENT_LOCK_FILE_RECHECKDATADIR_READ LockFileRecheckdatadirRead "Waiti= ng for a read during recheck of the data directory lock file." WAIT_EVENT_LOGICAL_REWRITE_CHECKPOINT_SYNC LogicalRewriteCheckpointSync "W= aiting for logical rewrite mappings to reach durable storage during a check= point." WAIT_EVENT_LOGICAL_REWRITE_MAPPING_SYNC LogicalRewriteMappingSync "Waiting= for mapping data to reach durable storage during a logical rewrite." WAIT_EVENT_LOGICAL_REWRITE_MAPPING_WRITE LogicalRewriteMappingWrite "Waiti= ng for a write of mapping data during a logical rewrite." @@ -216,10 +216,10 @@ WAIT_EVENT_REPLICATION_SLOT_READ ReplicationSlotRead = "Waiting for a read from a WAIT_EVENT_REPLICATION_SLOT_RESTORE_SYNC ReplicationSlotRestoreSync "Waiti= ng for a replication slot control file to reach durable storage while resto= ring it to memory." WAIT_EVENT_REPLICATION_SLOT_SYNC ReplicationSlotSync "Waiting for a replic= ation slot control file to reach durable storage." WAIT_EVENT_REPLICATION_SLOT_WRITE ReplicationSlotWrite "Waiting for a writ= e to a replication slot control file." -WAIT_EVENT_SLRU_FLUSH_SYNC SLRUFlushSync "Waiting for SLRU data to reach d= urable storage during a checkpoint or database shutdown." -WAIT_EVENT_SLRU_READ SLRURead "Waiting for a read of an SLRU page." -WAIT_EVENT_SLRU_SYNC SLRUSync "Waiting for SLRU data to reach durable stor= age following a page write." -WAIT_EVENT_SLRU_WRITE SLRUWrite "Waiting for a write of an SLRU page." +WAIT_EVENT_SLRU_FLUSH_SYNC SlruFlushSync "Waiting for SLRU data to reach d= urable storage during a checkpoint or database shutdown." +WAIT_EVENT_SLRU_READ SlruRead "Waiting for a read of an SLRU page." +WAIT_EVENT_SLRU_SYNC SlruSync "Waiting for SLRU data to reach durable stor= age following a page write." +WAIT_EVENT_SLRU_WRITE SlruWrite "Waiting for a write of an SLRU page." WAIT_EVENT_SNAPBUILD_READ SnapbuildRead "Waiting for a read of a serialize= d historical catalog snapshot." WAIT_EVENT_SNAPBUILD_SYNC SnapbuildSync "Waiting for a serialized historic= al catalog snapshot to reach durable storage." WAIT_EVENT_SNAPBUILD_WRITE SnapbuildWrite "Waiting for a write of a serial= ized historical catalog snapshot." @@ -232,18 +232,18 @@ WAIT_EVENT_TWOPHASE_FILE_READ TwophaseFileRead "Waiti= ng for a read of a two phas WAIT_EVENT_TWOPHASE_FILE_SYNC TwophaseFileSync "Waiting for a two phase st= ate file to reach durable storage." WAIT_EVENT_TWOPHASE_FILE_WRITE TwophaseFileWrite "Waiting for a write of a= two phase state file." WAIT_EVENT_VERSION_FILE_WRITE VersionFileWrite "Waiting for the version fi= le to be written while creating a database." -WAIT_EVENT_WALSENDER_TIMELINE_HISTORY_READ WALSenderTimelineHistoryRead "W= aiting for a read from a timeline history file during a walsender timeline = command." -WAIT_EVENT_WAL_BOOTSTRAP_SYNC WALBootstrapSync "Waiting for WAL to reach d= urable storage during bootstrapping." -WAIT_EVENT_WAL_BOOTSTRAP_WRITE WALBootstrapWrite "Waiting for a write of a= WAL page during bootstrapping." -WAIT_EVENT_WAL_COPY_READ WALCopyRead "Waiting for a read when creating a n= ew WAL segment by copying an existing one." -WAIT_EVENT_WAL_COPY_SYNC WALCopySync "Waiting for a new WAL segment create= d by copying an existing one to reach durable storage." -WAIT_EVENT_WAL_COPY_WRITE WALCopyWrite "Waiting for a write when creating = a new WAL segment by copying an existing one." -WAIT_EVENT_WAL_INIT_SYNC WALInitSync "Waiting for a newly initialized WAL = file to reach durable storage." -WAIT_EVENT_WAL_INIT_WRITE WALInitWrite "Waiting for a write while initiali= zing a new WAL file." -WAIT_EVENT_WAL_READ WALRead "Waiting for a read from a WAL file." -WAIT_EVENT_WAL_SYNC WALSync "Waiting for a WAL file to reach durable stora= ge." -WAIT_EVENT_WAL_SYNC_METHOD_ASSIGN WALSyncMethodAssign "Waiting for data to= reach durable storage while assigning a new WAL sync method." -WAIT_EVENT_WAL_WRITE WALWrite "Waiting for a write to a WAL file." +WAIT_EVENT_WALSENDER_TIMELINE_HISTORY_READ WalsenderTimelineHistoryRead "W= aiting for a read from a timeline history file during a walsender timeline = command." +WAIT_EVENT_WAL_BOOTSTRAP_SYNC WalBootstrapSync "Waiting for WAL to reach d= urable storage during bootstrapping." +WAIT_EVENT_WAL_BOOTSTRAP_WRITE WalBootstrapWrite "Waiting for a write of a= WAL page during bootstrapping." +WAIT_EVENT_WAL_COPY_READ WalCopyRead "Waiting for a read when creating a n= ew WAL segment by copying an existing one." +WAIT_EVENT_WAL_COPY_SYNC WalCopySync "Waiting for a new WAL segment create= d by copying an existing one to reach durable storage." +WAIT_EVENT_WAL_COPY_WRITE WalCopyWrite "Waiting for a write when creating = a new WAL segment by copying an existing one." +WAIT_EVENT_WAL_INIT_SYNC WalInitSync "Waiting for a newly initialized WAL = file to reach durable storage." +WAIT_EVENT_WAL_INIT_WRITE WalInitWrite "Waiting for a write while initiali= zing a new WAL file." +WAIT_EVENT_WAL_READ WalRead "Waiting for a read from a WAL file." +WAIT_EVENT_WAL_SYNC WalSync "Waiting for a WAL file to reach durable stora= ge." +WAIT_EVENT_WAL_SYNC_METHOD_ASSIGN WalSyncMethodAssign "Waiting for data to= reach durable storage while assigning a new WAL sync method." +WAIT_EVENT_WAL_WRITE WalWrite "Waiting for a write to a WAL file." =20 =20 # --=20 2.40.1 --JS9jxfxqjdBQdjQM Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v5-0002-Remove-column-for-wait-event-names-in-wait_event_.patch" Content-Transfer-Encoding: quoted-printable =46rom 04ccd023ed376cc606848cada54837afe67bdf7d Mon Sep 17 00:00:00 2001 =46rom: Michael Paquier Date: Tue, 5 Sep 2023 14:39:58 +0900 Subject: [PATCH v5 2/2] Remove column for wait event names in wait_event_names.txt This file is now made of two columns, removing the column listing the descriptions for each wait event class: - Typedef enum definition, without the prefix "WAIT_EVENT_", for simplicity. - Description in the documentation. The wait event names are generated from the enum objects in camelcase, with the underscores removed. --- .../activity/generate-wait_event_types.pl | 40 +- .../utils/activity/wait_event_names.txt | 502 +++++++++--------- 2 files changed, 279 insertions(+), 263 deletions(-) diff --git a/src/backend/utils/activity/generate-wait_event_types.pl b/src/= backend/utils/activity/generate-wait_event_types.pl index 23eb3b1f57..046be2cb70 100644 --- a/src/backend/utils/activity/generate-wait_event_types.pl +++ b/src/backend/utils/activity/generate-wait_event_types.pl @@ -65,29 +65,45 @@ while (<$wait_event_names>) push(@lines, $section_name . "\t" . $_); } =20 -# Sort the lines based on the third column. +# Sort the lines based on the second column. # uc() is being used to force the comparison to be case-insensitive. my @lines_sorted =3D - sort { uc((split(/\t/, $a))[2]) cmp uc((split(/\t/, $b))[2]) } @lines; + sort { uc((split(/\t/, $a))[1]) cmp uc((split(/\t/, $b))[1]) } @lines; =20 # Read the sorted lines and populate the hash table foreach my $line (@lines_sorted) { die "unable to parse wait_event_names.txt for line $line\n" - unless $line =3D~ /^(\w+)\t+(\w+)\t+(\w+)\t+("\w.*\.")$/; + unless $line =3D~ /^(\w+)\t+(\w+)\t+("\w.*\.")$/; =20 - ( my $waitclassname, - my $waiteventenumname, - my $waiteventdescription, - my $waitevendocsentence) =3D split(/\t/, $line); + (my $waitclassname, my $waiteventname, my $waitevendocsentence) =3D + split(/\t/, $line); =20 + # Generate the element name for the enums based on the + # description. The C symbols are prefixed with "WAIT_EVENT_". + my $waiteventenumname =3D "WAIT_EVENT_$waiteventname"; + + # Build the descriptions. These are in camel-case. + # LWLock and Lock classes do not need any modifications. + my $waiteventdescription =3D ''; + if ( $waitclassname eq 'WaitEventLWLock' + || $waitclassname eq 'WaitEventLock') + { + $waiteventdescription =3D $waiteventname; + } + else + { + my @waiteventparts =3D split("_", $waiteventname); + foreach my $waiteventpart (@waiteventparts) + { + $waiteventdescription .=3D substr($waiteventpart, 0, 1) + . lc(substr($waiteventpart, 1, length($waiteventpart))); + } + } + + # Store the event into the list for each class. my @waiteventlist =3D [ $waiteventenumname, $waiteventdescription, $waitevendocsentence ]; - my $trimmedwaiteventname =3D $waiteventenumname; - $trimmedwaiteventname =3D~ s/^WAIT_EVENT_//; - - die "wait event names must start with 'WAIT_EVENT_'" - if ($trimmedwaiteventname eq $waiteventenumname); push(@{ $hashwe{$waitclassname} }, @waiteventlist); } =20 diff --git a/src/backend/utils/activity/wait_event_names.txt b/src/backend/= utils/activity/wait_event_names.txt index 5287ad5f63..638551a348 100644 --- a/src/backend/utils/activity/wait_event_names.txt +++ b/src/backend/utils/activity/wait_event_names.txt @@ -7,6 +7,11 @@ # This list serves as the basis for generating source and documentation fi= les # related to wait events. # +# This file defines one wait event per line, with the following +# tab-separated fields: +# +# "Typedef enum definitions" "description in the docs" +# # The files generated from this one are: # # src/backend/utils/activity/wait_event_types.h @@ -18,11 +23,6 @@ # src/backend/utils/activity/wait_event_types.sgml # SGML tables of wait events for inclusion in the documentation. # -# This file defines one wait event per line, with the following -# tab-separated fields: -# -# "C symbol in enums" "format in the system views" "description in the d= ocs" -# # When adding a new wait event, make sure it is placed in the appropriate # ClassName section. # @@ -44,19 +44,19 @@ =20 Section: ClassName - WaitEventActivity =20 -WAIT_EVENT_ARCHIVER_MAIN ArchiverMain "Waiting in main loop of archiver pr= ocess." -WAIT_EVENT_AUTOVACUUM_MAIN AutovacuumMain "Waiting in main loop of autovac= uum launcher process." -WAIT_EVENT_BGWRITER_HIBERNATE BgwriterHibernate "Waiting in background wri= ter process, hibernating." -WAIT_EVENT_BGWRITER_MAIN BgwriterMain "Waiting in main loop of background = writer process." -WAIT_EVENT_CHECKPOINTER_MAIN CheckpointerMain "Waiting in main loop of che= ckpointer process." -WAIT_EVENT_LOGICAL_APPLY_MAIN LogicalApplyMain "Waiting in main loop of lo= gical replication apply process." -WAIT_EVENT_LOGICAL_LAUNCHER_MAIN LogicalLauncherMain "Waiting in main loop= of logical replication launcher process." -WAIT_EVENT_LOGICAL_PARALLEL_APPLY_MAIN LogicalParallelApplyMain "Waiting i= n main loop of logical replication parallel apply process." -WAIT_EVENT_RECOVERY_WAL_STREAM RecoveryWalStream "Waiting in main loop of = startup process for WAL to arrive, during streaming recovery." -WAIT_EVENT_SYSLOGGER_MAIN SysloggerMain "Waiting in main loop of syslogger= process." -WAIT_EVENT_WAL_RECEIVER_MAIN WalReceiverMain "Waiting in main loop of WAL = receiver process." -WAIT_EVENT_WAL_SENDER_MAIN WalSenderMain "Waiting in main loop of WAL send= er process." -WAIT_EVENT_WAL_WRITER_MAIN WalWriterMain "Waiting in main loop of WAL writ= er process." +ARCHIVER_MAIN "Waiting in main loop of archiver process." +AUTOVACUUM_MAIN "Waiting in main loop of autovacuum launcher process." +BGWRITER_HIBERNATE "Waiting in background writer process, hibernating." +BGWRITER_MAIN "Waiting in main loop of background writer process." +CHECKPOINTER_MAIN "Waiting in main loop of checkpointer process." +LOGICAL_APPLY_MAIN "Waiting in main loop of logical replication apply proc= ess." +LOGICAL_LAUNCHER_MAIN "Waiting in main loop of logical replication launche= r process." +LOGICAL_PARALLEL_APPLY_MAIN "Waiting in main loop of logical replication p= arallel apply process." +RECOVERY_WAL_STREAM "Waiting in main loop of startup process for WAL to ar= rive, during streaming recovery." +SYSLOGGER_MAIN "Waiting in main loop of syslogger process." +WAL_RECEIVER_MAIN "Waiting in main loop of WAL receiver process." +WAL_SENDER_MAIN "Waiting in main loop of WAL sender process." +WAL_WRITER_MAIN "Waiting in main loop of WAL writer process." =20 =20 # @@ -69,14 +69,14 @@ WAIT_EVENT_WAL_WRITER_MAIN WalWriterMain "Waiting in ma= in loop of WAL writer pro =20 Section: ClassName - WaitEventClient =20 -WAIT_EVENT_CLIENT_READ ClientRead "Waiting to read data from the client." -WAIT_EVENT_CLIENT_WRITE ClientWrite "Waiting to write data to the client." -WAIT_EVENT_GSS_OPEN_SERVER GssOpenServer "Waiting to read data from the cl= ient while establishing a GSSAPI session." -WAIT_EVENT_LIBPQWALRECEIVER_CONNECT LibpqwalreceiverConnect "Waiting in WA= L receiver to establish connection to remote server." -WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE LibpqwalreceiverReceive "Waiting in WA= L receiver to receive data from remote server." -WAIT_EVENT_SSL_OPEN_SERVER SslOpenServer "Waiting for SSL while attempting= connection." -WAIT_EVENT_WAL_SENDER_WAIT_FOR_WAL WalSenderWaitForWal "Waiting for WAL to= be flushed in WAL sender process." -WAIT_EVENT_WAL_SENDER_WRITE_DATA WalSenderWriteData "Waiting for any activ= ity when processing replies from WAL receiver in WAL sender process." +CLIENT_READ "Waiting to read data from the client." +CLIENT_WRITE "Waiting to write data to the client." +GSS_OPEN_SERVER "Waiting to read data from the client while establishing a= GSSAPI session." +LIBPQWALRECEIVER_CONNECT "Waiting in WAL receiver to establish connection = to remote server." +LIBPQWALRECEIVER_RECEIVE "Waiting in WAL receiver to receive data from rem= ote server." +SSL_OPEN_SERVER "Waiting for SSL while attempting connection." +WAL_SENDER_WAIT_FOR_WAL "Waiting for WAL to be flushed in WAL sender proce= ss." +WAL_SENDER_WRITE_DATA "Waiting for any activity when processing replies fr= om WAL receiver in WAL sender process." =20 =20 # @@ -88,59 +88,59 @@ WAIT_EVENT_WAL_SENDER_WRITE_DATA WalSenderWriteData "Wa= iting for any activity wh =20 Section: ClassName - WaitEventIPC =20 -WAIT_EVENT_APPEND_READY AppendReady "Waiting for subplan nodes of an Append plan node to be ready." -WAIT_EVENT_ARCHIVE_CLEANUP_COMMAND ArchiveCleanupCommand "Waiting for to complete." -WAIT_EVENT_ARCHIVE_COMMAND ArchiveCommand "Waiting for to complete." -WAIT_EVENT_BACKEND_TERMINATION BackendTermination "Waiting for the termina= tion of another backend." -WAIT_EVENT_BACKUP_WAIT_WAL_ARCHIVE BackupWaitWalArchive "Waiting for WAL f= iles required for a backup to be successfully archived." -WAIT_EVENT_BGWORKER_SHUTDOWN BgworkerShutdown "Waiting for background work= er to shut down." -WAIT_EVENT_BGWORKER_STARTUP BgworkerStartup "Waiting for background worker= to start up." -WAIT_EVENT_BTREE_PAGE BtreePage "Waiting for the page number needed to con= tinue a parallel B-tree scan to become available." -WAIT_EVENT_BUFFER_IO BufferIo "Waiting for buffer I/O to complete." -WAIT_EVENT_CHECKPOINT_DONE CheckpointDone "Waiting for a checkpoint to com= plete." -WAIT_EVENT_CHECKPOINT_START CheckpointStart "Waiting for a checkpoint to s= tart." -WAIT_EVENT_EXECUTE_GATHER ExecuteGather "Waiting for activity from a child= process while executing a Gather plan node." -WAIT_EVENT_HASH_BATCH_ALLOCATE HashBatchAllocate "Waiting for an elected P= arallel Hash participant to allocate a hash table." -WAIT_EVENT_HASH_BATCH_ELECT HashBatchElect "Waiting to elect a Parallel Ha= sh participant to allocate a hash table." -WAIT_EVENT_HASH_BATCH_LOAD HashBatchLoad "Waiting for other Parallel Hash = participants to finish loading a hash table." -WAIT_EVENT_HASH_BUILD_ALLOCATE HashBuildAllocate "Waiting for an elected P= arallel Hash participant to allocate the initial hash table." -WAIT_EVENT_HASH_BUILD_ELECT HashBuildElect "Waiting to elect a Parallel Ha= sh participant to allocate the initial hash table." -WAIT_EVENT_HASH_BUILD_HASH_INNER HashBuildHashInner "Waiting for other Par= allel Hash participants to finish hashing the inner relation." -WAIT_EVENT_HASH_BUILD_HASH_OUTER HashBuildHashOuter "Waiting for other Par= allel Hash participants to finish partitioning the outer relation." -WAIT_EVENT_HASH_GROW_BATCHES_DECIDE HashGrowBatchesDecide "Waiting to elec= t a Parallel Hash participant to decide on future batch growth." -WAIT_EVENT_HASH_GROW_BATCHES_ELECT HashGrowBatchesElect "Waiting to elect = a Parallel Hash participant to allocate more batches." -WAIT_EVENT_HASH_GROW_BATCHES_FINISH HashGrowBatchesFinish "Waiting for an = elected Parallel Hash participant to decide on future batch growth." -WAIT_EVENT_HASH_GROW_BATCHES_REALLOCATE HashGrowBatchesReallocate "Waiting= for an elected Parallel Hash participant to allocate more batches." -WAIT_EVENT_HASH_GROW_BATCHES_REPARTITION HashGrowBatchesRepartition "Waiti= ng for other Parallel Hash participants to finish repartitioning." -WAIT_EVENT_HASH_GROW_BUCKETS_ELECT HashGrowBucketsElect "Waiting to elect = a Parallel Hash participant to allocate more buckets." -WAIT_EVENT_HASH_GROW_BUCKETS_REALLOCATE HashGrowBucketsReallocate "Waiting= for an elected Parallel Hash participant to finish allocating more buckets= =2E" -WAIT_EVENT_HASH_GROW_BUCKETS_REINSERT HashGrowBucketsReinsert "Waiting for= other Parallel Hash participants to finish inserting tuples into new bucke= ts." -WAIT_EVENT_LOGICAL_APPLY_SEND_DATA LogicalApplySendData "Waiting for a log= ical replication leader apply process to send data to a parallel apply proc= ess." -WAIT_EVENT_LOGICAL_PARALLEL_APPLY_STATE_CHANGE LogicalParallelApplyStateCh= ange "Waiting for a logical replication parallel apply process to change st= ate." -WAIT_EVENT_LOGICAL_SYNC_DATA LogicalSyncData "Waiting for a logical replic= ation remote server to send data for initial table synchronization." -WAIT_EVENT_LOGICAL_SYNC_STATE_CHANGE LogicalSyncStateChange "Waiting for a= logical replication remote server to change state." -WAIT_EVENT_MESSAGE_QUEUE_INTERNAL MessageQueueInternal "Waiting for anothe= r process to be attached to a shared message queue." -WAIT_EVENT_MESSAGE_QUEUE_PUT_MESSAGE MessageQueuePutMessage "Waiting to wr= ite a protocol message to a shared message queue." -WAIT_EVENT_MESSAGE_QUEUE_RECEIVE MessageQueueReceive "Waiting to receive b= ytes from a shared message queue." -WAIT_EVENT_MESSAGE_QUEUE_SEND MessageQueueSend "Waiting to send bytes to a= shared message queue." -WAIT_EVENT_PARALLEL_BITMAP_SCAN ParallelBitmapScan "Waiting for parallel b= itmap scan to become initialized." -WAIT_EVENT_PARALLEL_CREATE_INDEX_SCAN ParallelCreateIndexScan "Waiting for= parallel CREATE INDEX workers to finish heap scan." -WAIT_EVENT_PARALLEL_FINISH ParallelFinish "Waiting for parallel workers to= finish computing." -WAIT_EVENT_PROCARRAY_GROUP_UPDATE ProcarrayGroupUpdate "Waiting for the gr= oup leader to clear the transaction ID at end of a parallel operation." -WAIT_EVENT_PROC_SIGNAL_BARRIER ProcSignalBarrier "Waiting for a barrier ev= ent to be processed by all backends." -WAIT_EVENT_PROMOTE Promote "Waiting for standby promotion." -WAIT_EVENT_RECOVERY_CONFLICT_SNAPSHOT RecoveryConflictSnapshot "Waiting fo= r recovery conflict resolution for a vacuum cleanup." -WAIT_EVENT_RECOVERY_CONFLICT_TABLESPACE RecoveryConflictTablespace "Waitin= g for recovery conflict resolution for dropping a tablespace." -WAIT_EVENT_RECOVERY_END_COMMAND RecoveryEndCommand "Waiting for to complete." -WAIT_EVENT_RECOVERY_PAUSE RecoveryPause "Waiting for recovery to be resume= d." -WAIT_EVENT_REPLICATION_ORIGIN_DROP ReplicationOriginDrop "Waiting for a re= plication origin to become inactive so it can be dropped." -WAIT_EVENT_REPLICATION_SLOT_DROP ReplicationSlotDrop "Waiting for a replic= ation slot to become inactive so it can be dropped." -WAIT_EVENT_RESTORE_COMMAND RestoreCommand "Waiting for to complete." -WAIT_EVENT_SAFE_SNAPSHOT SafeSnapshot "Waiting to obtain a valid snapshot = for a READ ONLY DEFERRABLE transaction." -WAIT_EVENT_SYNC_REP SyncRep "Waiting for confirmation from a remote server= during synchronous replication." -WAIT_EVENT_WAL_RECEIVER_EXIT WalReceiverExit "Waiting for the WAL receiver= to exit." -WAIT_EVENT_WAL_RECEIVER_WAIT_START WalReceiverWaitStart "Waiting for start= up process to send initial data for streaming replication." -WAIT_EVENT_XACT_GROUP_UPDATE XactGroupUpdate "Waiting for the group leader= to update transaction status at end of a parallel operation." +APPEND_READY "Waiting for subplan nodes of an Append pl= an node to be ready." +ARCHIVE_CLEANUP_COMMAND "Waiting for to complete." +ARCHIVE_COMMAND "Waiting for to co= mplete." +BACKEND_TERMINATION "Waiting for the termination of another backend." +BACKUP_WAIT_WAL_ARCHIVE "Waiting for WAL files required for a backup to be= successfully archived." +BGWORKER_SHUTDOWN "Waiting for background worker to shut down." +BGWORKER_STARTUP "Waiting for background worker to start up." +BTREE_PAGE "Waiting for the page number needed to continue a parallel B-tr= ee scan to become available." +BUFFER_IO "Waiting for buffer I/O to complete." +CHECKPOINT_DONE "Waiting for a checkpoint to complete." +CHECKPOINT_START "Waiting for a checkpoint to start." +EXECUTE_GATHER "Waiting for activity from a child process while executing = a Gather plan node." +HASH_BATCH_ALLOCATE "Waiting for an elected Parallel Hash participant to a= llocate a hash table." +HASH_BATCH_ELECT "Waiting to elect a Parallel Hash participant to allocate= a hash table." +HASH_BATCH_LOAD "Waiting for other Parallel Hash participants to finish lo= ading a hash table." +HASH_BUILD_ALLOCATE "Waiting for an elected Parallel Hash participant to a= llocate the initial hash table." +HASH_BUILD_ELECT "Waiting to elect a Parallel Hash participant to allocate= the initial hash table." +HASH_BUILD_HASH_INNER "Waiting for other Parallel Hash participants to fin= ish hashing the inner relation." +HASH_BUILD_HASH_OUTER "Waiting for other Parallel Hash participants to fin= ish partitioning the outer relation." +HASH_GROW_BATCHES_DECIDE "Waiting to elect a Parallel Hash participant to = decide on future batch growth." +HASH_GROW_BATCHES_ELECT "Waiting to elect a Parallel Hash participant to a= llocate more batches." +HASH_GROW_BATCHES_FINISH "Waiting for an elected Parallel Hash participant= to decide on future batch growth." +HASH_GROW_BATCHES_REALLOCATE "Waiting for an elected Parallel Hash partici= pant to allocate more batches." +HASH_GROW_BATCHES_REPARTITION "Waiting for other Parallel Hash participant= s to finish repartitioning." +HASH_GROW_BUCKETS_ELECT "Waiting to elect a Parallel Hash participant to a= llocate more buckets." +HASH_GROW_BUCKETS_REALLOCATE "Waiting for an elected Parallel Hash partici= pant to finish allocating more buckets." +HASH_GROW_BUCKETS_REINSERT "Waiting for other Parallel Hash participants t= o finish inserting tuples into new buckets." +LOGICAL_APPLY_SEND_DATA "Waiting for a logical replication leader apply pr= ocess to send data to a parallel apply process." +LOGICAL_PARALLEL_APPLY_STATE_CHANGE "Waiting for a logical replication par= allel apply process to change state." +LOGICAL_SYNC_DATA "Waiting for a logical replication remote server to send= data for initial table synchronization." +LOGICAL_SYNC_STATE_CHANGE "Waiting for a logical replication remote server= to change state." +MESSAGE_QUEUE_INTERNAL "Waiting for another process to be attached to a sh= ared message queue." +MESSAGE_QUEUE_PUT_MESSAGE "Waiting to write a protocol message to a shared= message queue." +MESSAGE_QUEUE_RECEIVE "Waiting to receive bytes from a shared message queu= e." +MESSAGE_QUEUE_SEND "Waiting to send bytes to a shared message queue." +PARALLEL_BITMAP_SCAN "Waiting for parallel bitmap scan to become initializ= ed." +PARALLEL_CREATE_INDEX_SCAN "Waiting for parallel CREATE INDEX workers to finish heap scan." +PARALLEL_FINISH "Waiting for parallel workers to finish computing." +PROCARRAY_GROUP_UPDATE "Waiting for the group leader to clear the transact= ion ID at end of a parallel operation." +PROC_SIGNAL_BARRIER "Waiting for a barrier event to be processed by all ba= ckends." +PROMOTE "Waiting for standby promotion." +RECOVERY_CONFLICT_SNAPSHOT "Waiting for recovery conflict resolution for a= vacuum cleanup." +RECOVERY_CONFLICT_TABLESPACE "Waiting for recovery conflict resolution for= dropping a tablespace." +RECOVERY_END_COMMAND "Waiting for to complete." +RECOVERY_PAUSE "Waiting for recovery to be resumed." +REPLICATION_ORIGIN_DROP "Waiting for a replication origin to become inacti= ve so it can be dropped." +REPLICATION_SLOT_DROP "Waiting for a replication slot to become inactive s= o it can be dropped." +RESTORE_COMMAND "Waiting for to co= mplete." +SAFE_SNAPSHOT "Waiting to obtain a valid snapshot for a READ ONLY= DEFERRABLE transaction." +SYNC_REP "Waiting for confirmation from a remote server during synchronous= replication." +WAL_RECEIVER_EXIT "Waiting for the WAL receiver to exit." +WAL_RECEIVER_WAIT_START "Waiting for startup process to send initial data = for streaming replication." +XACT_GROUP_UPDATE "Waiting for the group leader to update transaction stat= us at end of a parallel operation." =20 =20 # @@ -151,15 +151,15 @@ WAIT_EVENT_XACT_GROUP_UPDATE XactGroupUpdate "Waiting= for the group leader to up =20 Section: ClassName - WaitEventTimeout =20 -WAIT_EVENT_BASE_BACKUP_THROTTLE BaseBackupThrottle "Waiting during base ba= ckup when throttling activity." -WAIT_EVENT_CHECKPOINT_WRITE_DELAY CheckpointWriteDelay "Waiting between wr= ites while performing a checkpoint." -WAIT_EVENT_PG_SLEEP PgSleep "Waiting due to a call to pg_sleep or a sibling function." -WAIT_EVENT_RECOVERY_APPLY_DELAY RecoveryApplyDelay "Waiting to apply WAL d= uring recovery because of a delay setting." -WAIT_EVENT_RECOVERY_RETRIEVE_RETRY_INTERVAL RecoveryRetrieveRetryInterval = "Waiting during recovery when WAL data is not available from any source (pg_wal, archive or stream)." -WAIT_EVENT_REGISTER_SYNC_REQUEST RegisterSyncRequest "Waiting while sendin= g synchronization requests to the checkpointer, because the request queue i= s full." -WAIT_EVENT_SPIN_DELAY SpinDelay "Waiting while acquiring a contended spinl= ock." -WAIT_EVENT_VACUUM_DELAY VacuumDelay "Waiting in a cost-based vacuum delay = point." -WAIT_EVENT_VACUUM_TRUNCATE VacuumTruncate "Waiting to acquire an exclusive= lock to truncate off any empty pages at the end of a table vacuumed." +BASE_BACKUP_THROTTLE "Waiting during base backup when throttling activity." +CHECKPOINT_WRITE_DELAY "Waiting between writes while performing a checkpoi= nt." +PG_SLEEP "Waiting due to a call to pg_sleep or a sibl= ing function." +RECOVERY_APPLY_DELAY "Waiting to apply WAL during recovery because of a de= lay setting." +RECOVERY_RETRIEVE_RETRY_INTERVAL "Waiting during recovery when WAL data is= not available from any source (pg_wal, archive or str= eam)." +REGISTER_SYNC_REQUEST "Waiting while sending synchronization requests to t= he checkpointer, because the request queue is full." +SPIN_DELAY "Waiting while acquiring a contended spinlock." +VACUUM_DELAY "Waiting in a cost-based vacuum delay point." +VACUUM_TRUNCATE "Waiting to acquire an exclusive lock to truncate off any = empty pages at the end of a table vacuumed." =20 =20 # @@ -170,80 +170,80 @@ WAIT_EVENT_VACUUM_TRUNCATE VacuumTruncate "Waiting to= acquire an exclusive lock =20 Section: ClassName - WaitEventIO =20 -WAIT_EVENT_BASEBACKUP_READ BasebackupRead "Waiting for base backup to read= from a file." -WAIT_EVENT_BASEBACKUP_SYNC BasebackupSync "Waiting for data written by a b= ase backup to reach durable storage." -WAIT_EVENT_BASEBACKUP_WRITE BasebackupWrite "Waiting for base backup to wr= ite to a file." -WAIT_EVENT_BUFFILE_READ BuffileRead "Waiting for a read from a buffered fi= le." -WAIT_EVENT_BUFFILE_WRITE BuffileWrite "Waiting for a write to a buffered f= ile." -WAIT_EVENT_BUFFILE_TRUNCATE BuffileTruncate "Waiting for a buffered file t= o be truncated." -WAIT_EVENT_CONTROL_FILE_READ ControlFileRead "Waiting for a read from the = pg_control file." -WAIT_EVENT_CONTROL_FILE_SYNC ControlFileSync "Waiting for the pg= _control file to reach durable storage." -WAIT_EVENT_CONTROL_FILE_SYNC_UPDATE ControlFileSyncUpdate "Waiting for an = update to the pg_control file to reach durable storage= =2E" -WAIT_EVENT_CONTROL_FILE_WRITE ControlFileWrite "Waiting for a write to the= pg_control file." -WAIT_EVENT_CONTROL_FILE_WRITE_UPDATE ControlFileWriteUpdate "Waiting for a= write to update the pg_control file." -WAIT_EVENT_COPY_FILE_READ CopyFileRead "Waiting for a read during a file c= opy operation." -WAIT_EVENT_COPY_FILE_WRITE CopyFileWrite "Waiting for a write during a fil= e copy operation." -WAIT_EVENT_DATA_FILE_EXTEND DataFileExtend "Waiting for a relation data fi= le to be extended." -WAIT_EVENT_DATA_FILE_FLUSH DataFileFlush "Waiting for a relation data file= to reach durable storage." -WAIT_EVENT_DATA_FILE_IMMEDIATE_SYNC DataFileImmediateSync "Waiting for an = immediate synchronization of a relation data file to durable storage." -WAIT_EVENT_DATA_FILE_PREFETCH DataFilePrefetch "Waiting for an asynchronou= s prefetch from a relation data file." -WAIT_EVENT_DATA_FILE_READ DataFileRead "Waiting for a read from a relation= data file." -WAIT_EVENT_DATA_FILE_SYNC DataFileSync "Waiting for changes to a relation = data file to reach durable storage." -WAIT_EVENT_DATA_FILE_TRUNCATE DataFileTruncate "Waiting for a relation dat= a file to be truncated." -WAIT_EVENT_DATA_FILE_WRITE DataFileWrite "Waiting for a write to a relatio= n data file." -WAIT_EVENT_DSM_ALLOCATE DsmAllocate "Waiting for a dynamic shared memory s= egment to be allocated." -WAIT_EVENT_DSM_FILL_ZERO_WRITE DsmFillZeroWrite "Waiting to fill a dynamic= shared memory backing file with zeroes." -WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ LockFileAddtodatadirRead "Waiting f= or a read while adding a line to the data directory lock file." -WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC LockFileAddtodatadirSync "Waiting f= or data to reach durable storage while adding a line to the data directory = lock file." -WAIT_EVENT_LOCK_FILE_ADDTODATADIR_WRITE LockFileAddtodatadirWrite "Waiting= for a write while adding a line to the data directory lock file." -WAIT_EVENT_LOCK_FILE_CREATE_READ LockFileCreateRead "Waiting to read while= creating the data directory lock file." -WAIT_EVENT_LOCK_FILE_CREATE_SYNC LockFileCreateSync "Waiting for data to r= each durable storage while creating the data directory lock file." -WAIT_EVENT_LOCK_FILE_CREATE_WRITE LockFileCreateWrite "Waiting for a write= while creating the data directory lock file." -WAIT_EVENT_LOCK_FILE_RECHECKDATADIR_READ LockFileRecheckdatadirRead "Waiti= ng for a read during recheck of the data directory lock file." -WAIT_EVENT_LOGICAL_REWRITE_CHECKPOINT_SYNC LogicalRewriteCheckpointSync "W= aiting for logical rewrite mappings to reach durable storage during a check= point." -WAIT_EVENT_LOGICAL_REWRITE_MAPPING_SYNC LogicalRewriteMappingSync "Waiting= for mapping data to reach durable storage during a logical rewrite." -WAIT_EVENT_LOGICAL_REWRITE_MAPPING_WRITE LogicalRewriteMappingWrite "Waiti= ng for a write of mapping data during a logical rewrite." -WAIT_EVENT_LOGICAL_REWRITE_SYNC LogicalRewriteSync "Waiting for logical re= write mappings to reach durable storage." -WAIT_EVENT_LOGICAL_REWRITE_TRUNCATE LogicalRewriteTruncate "Waiting for tr= uncate of mapping data during a logical rewrite." -WAIT_EVENT_LOGICAL_REWRITE_WRITE LogicalRewriteWrite "Waiting for a write = of logical rewrite mappings." -WAIT_EVENT_RELATION_MAP_READ RelationMapRead "Waiting for a read of the re= lation map file." -WAIT_EVENT_RELATION_MAP_REPLACE RelationMapReplace "Waiting for durable re= placement of a relation map file." -WAIT_EVENT_RELATION_MAP_WRITE RelationMapWrite "Waiting for a write to the= relation map file." -WAIT_EVENT_REORDER_BUFFER_READ ReorderBufferRead "Waiting for a read durin= g reorder buffer management." -WAIT_EVENT_REORDER_BUFFER_WRITE ReorderBufferWrite "Waiting for a write du= ring reorder buffer management." -WAIT_EVENT_REORDER_LOGICAL_MAPPING_READ ReorderLogicalMappingRead "Waiting= for a read of a logical mapping during reorder buffer management." -WAIT_EVENT_REPLICATION_SLOT_READ ReplicationSlotRead "Waiting for a read f= rom a replication slot control file." -WAIT_EVENT_REPLICATION_SLOT_RESTORE_SYNC ReplicationSlotRestoreSync "Waiti= ng for a replication slot control file to reach durable storage while resto= ring it to memory." -WAIT_EVENT_REPLICATION_SLOT_SYNC ReplicationSlotSync "Waiting for a replic= ation slot control file to reach durable storage." -WAIT_EVENT_REPLICATION_SLOT_WRITE ReplicationSlotWrite "Waiting for a writ= e to a replication slot control file." -WAIT_EVENT_SLRU_FLUSH_SYNC SlruFlushSync "Waiting for SLRU data to reach d= urable storage during a checkpoint or database shutdown." -WAIT_EVENT_SLRU_READ SlruRead "Waiting for a read of an SLRU page." -WAIT_EVENT_SLRU_SYNC SlruSync "Waiting for SLRU data to reach durable stor= age following a page write." -WAIT_EVENT_SLRU_WRITE SlruWrite "Waiting for a write of an SLRU page." -WAIT_EVENT_SNAPBUILD_READ SnapbuildRead "Waiting for a read of a serialize= d historical catalog snapshot." -WAIT_EVENT_SNAPBUILD_SYNC SnapbuildSync "Waiting for a serialized historic= al catalog snapshot to reach durable storage." -WAIT_EVENT_SNAPBUILD_WRITE SnapbuildWrite "Waiting for a write of a serial= ized historical catalog snapshot." -WAIT_EVENT_TIMELINE_HISTORY_FILE_SYNC TimelineHistoryFileSync "Waiting for= a timeline history file received via streaming replication to reach durabl= e storage." -WAIT_EVENT_TIMELINE_HISTORY_FILE_WRITE TimelineHistoryFileWrite "Waiting f= or a write of a timeline history file received via streaming replication." -WAIT_EVENT_TIMELINE_HISTORY_READ TimelineHistoryRead "Waiting for a read o= f a timeline history file." -WAIT_EVENT_TIMELINE_HISTORY_SYNC TimelineHistorySync "Waiting for a newly = created timeline history file to reach durable storage." -WAIT_EVENT_TIMELINE_HISTORY_WRITE TimelineHistoryWrite "Waiting for a writ= e of a newly created timeline history file." -WAIT_EVENT_TWOPHASE_FILE_READ TwophaseFileRead "Waiting for a read of a tw= o phase state file." -WAIT_EVENT_TWOPHASE_FILE_SYNC TwophaseFileSync "Waiting for a two phase st= ate file to reach durable storage." -WAIT_EVENT_TWOPHASE_FILE_WRITE TwophaseFileWrite "Waiting for a write of a= two phase state file." -WAIT_EVENT_VERSION_FILE_WRITE VersionFileWrite "Waiting for the version fi= le to be written while creating a database." -WAIT_EVENT_WALSENDER_TIMELINE_HISTORY_READ WalsenderTimelineHistoryRead "W= aiting for a read from a timeline history file during a walsender timeline = command." -WAIT_EVENT_WAL_BOOTSTRAP_SYNC WalBootstrapSync "Waiting for WAL to reach d= urable storage during bootstrapping." -WAIT_EVENT_WAL_BOOTSTRAP_WRITE WalBootstrapWrite "Waiting for a write of a= WAL page during bootstrapping." -WAIT_EVENT_WAL_COPY_READ WalCopyRead "Waiting for a read when creating a n= ew WAL segment by copying an existing one." -WAIT_EVENT_WAL_COPY_SYNC WalCopySync "Waiting for a new WAL segment create= d by copying an existing one to reach durable storage." -WAIT_EVENT_WAL_COPY_WRITE WalCopyWrite "Waiting for a write when creating = a new WAL segment by copying an existing one." -WAIT_EVENT_WAL_INIT_SYNC WalInitSync "Waiting for a newly initialized WAL = file to reach durable storage." -WAIT_EVENT_WAL_INIT_WRITE WalInitWrite "Waiting for a write while initiali= zing a new WAL file." -WAIT_EVENT_WAL_READ WalRead "Waiting for a read from a WAL file." -WAIT_EVENT_WAL_SYNC WalSync "Waiting for a WAL file to reach durable stora= ge." -WAIT_EVENT_WAL_SYNC_METHOD_ASSIGN WalSyncMethodAssign "Waiting for data to= reach durable storage while assigning a new WAL sync method." -WAIT_EVENT_WAL_WRITE WalWrite "Waiting for a write to a WAL file." +BASEBACKUP_READ "Waiting for base backup to read from a file." +BASEBACKUP_SYNC "Waiting for data written by a base backup to reach durabl= e storage." +BASEBACKUP_WRITE "Waiting for base backup to write to a file." +BUFFILE_READ "Waiting for a read from a buffered file." +BUFFILE_WRITE "Waiting for a write to a buffered file." +BUFFILE_TRUNCATE "Waiting for a buffered file to be truncated." +CONTROL_FILE_READ "Waiting for a read from the pg_control file." +CONTROL_FILE_SYNC "Waiting for the pg_control file to= reach durable storage." +CONTROL_FILE_SYNC_UPDATE "Waiting for an update to the pg_contro= l file to reach durable storage." +CONTROL_FILE_WRITE "Waiting for a write to the pg_control file." +CONTROL_FILE_WRITE_UPDATE "Waiting for a write to update the pg_= control file." +COPY_FILE_READ "Waiting for a read during a file copy operation." +COPY_FILE_WRITE "Waiting for a write during a file copy operation." +DATA_FILE_EXTEND "Waiting for a relation data file to be extended." +DATA_FILE_FLUSH "Waiting for a relation data file to reach durable storage= =2E" +DATA_FILE_IMMEDIATE_SYNC "Waiting for an immediate synchronization of a re= lation data file to durable storage." +DATA_FILE_PREFETCH "Waiting for an asynchronous prefetch from a relation d= ata file." +DATA_FILE_READ "Waiting for a read from a relation data file." +DATA_FILE_SYNC "Waiting for changes to a relation data file to reach durab= le storage." +DATA_FILE_TRUNCATE "Waiting for a relation data file to be truncated." +DATA_FILE_WRITE "Waiting for a write to a relation data file." +DSM_ALLOCATE "Waiting for a dynamic shared memory segment to be allocated." +DSM_FILL_ZERO_WRITE "Waiting to fill a dynamic shared memory backing file = with zeroes." +LOCK_FILE_ADDTODATADIR_READ "Waiting for a read while adding a line to the= data directory lock file." +LOCK_FILE_ADDTODATADIR_SYNC "Waiting for data to reach durable storage whi= le adding a line to the data directory lock file." +LOCK_FILE_ADDTODATADIR_WRITE "Waiting for a write while adding a line to t= he data directory lock file." +LOCK_FILE_CREATE_READ "Waiting to read while creating the data directory l= ock file." +LOCK_FILE_CREATE_SYNC "Waiting for data to reach durable storage while cre= ating the data directory lock file." +LOCK_FILE_CREATE_WRITE "Waiting for a write while creating the data direct= ory lock file." +LOCK_FILE_RECHECKDATADIR_READ "Waiting for a read during recheck of the da= ta directory lock file." +LOGICAL_REWRITE_CHECKPOINT_SYNC "Waiting for logical rewrite mappings to r= each durable storage during a checkpoint." +LOGICAL_REWRITE_MAPPING_SYNC "Waiting for mapping data to reach durable st= orage during a logical rewrite." +LOGICAL_REWRITE_MAPPING_WRITE "Waiting for a write of mapping data during = a logical rewrite." +LOGICAL_REWRITE_SYNC "Waiting for logical rewrite mappings to reach durabl= e storage." +LOGICAL_REWRITE_TRUNCATE "Waiting for truncate of mapping data during a lo= gical rewrite." +LOGICAL_REWRITE_WRITE "Waiting for a write of logical rewrite mappings." +RELATION_MAP_READ "Waiting for a read of the relation map file." +RELATION_MAP_REPLACE "Waiting for durable replacement of a relation map fi= le." +RELATION_MAP_WRITE "Waiting for a write to the relation map file." +REORDER_BUFFER_READ "Waiting for a read during reorder buffer management." +REORDER_BUFFER_WRITE "Waiting for a write during reorder buffer management= =2E" +REORDER_LOGICAL_MAPPING_READ "Waiting for a read of a logical mapping duri= ng reorder buffer management." +REPLICATION_SLOT_READ "Waiting for a read from a replication slot control = file." +REPLICATION_SLOT_RESTORE_SYNC "Waiting for a replication slot control file= to reach durable storage while restoring it to memory." +REPLICATION_SLOT_SYNC "Waiting for a replication slot control file to reac= h durable storage." +REPLICATION_SLOT_WRITE "Waiting for a write to a replication slot control = file." +SLRU_FLUSH_SYNC "Waiting for SLRU data to reach durable storage during a c= heckpoint or database shutdown." +SLRU_READ "Waiting for a read of an SLRU page." +SLRU_SYNC "Waiting for SLRU data to reach durable storage following a page= write." +SLRU_WRITE "Waiting for a write of an SLRU page." +SNAPBUILD_READ "Waiting for a read of a serialized historical catalog snap= shot." +SNAPBUILD_SYNC "Waiting for a serialized historical catalog snapshot to re= ach durable storage." +SNAPBUILD_WRITE "Waiting for a write of a serialized historical catalog sn= apshot." +TIMELINE_HISTORY_FILE_SYNC "Waiting for a timeline history file received v= ia streaming replication to reach durable storage." +TIMELINE_HISTORY_FILE_WRITE "Waiting for a write of a timeline history fil= e received via streaming replication." +TIMELINE_HISTORY_READ "Waiting for a read of a timeline history file." +TIMELINE_HISTORY_SYNC "Waiting for a newly created timeline history file t= o reach durable storage." +TIMELINE_HISTORY_WRITE "Waiting for a write of a newly created timeline hi= story file." +TWOPHASE_FILE_READ "Waiting for a read of a two phase state file." +TWOPHASE_FILE_SYNC "Waiting for a two phase state file to reach durable st= orage." +TWOPHASE_FILE_WRITE "Waiting for a write of a two phase state file." +VERSION_FILE_WRITE "Waiting for the version file to be written while creat= ing a database." +WALSENDER_TIMELINE_HISTORY_READ "Waiting for a read from a timeline histor= y file during a walsender timeline command." +WAL_BOOTSTRAP_SYNC "Waiting for WAL to reach durable storage during bootst= rapping." +WAL_BOOTSTRAP_WRITE "Waiting for a write of a WAL page during bootstrappin= g." +WAL_COPY_READ "Waiting for a read when creating a new WAL segment by copyi= ng an existing one." +WAL_COPY_SYNC "Waiting for a new WAL segment created by copying an existin= g one to reach durable storage." +WAL_COPY_WRITE "Waiting for a write when creating a new WAL segment by cop= ying an existing one." +WAL_INIT_SYNC "Waiting for a newly initialized WAL file to reach durable s= torage." +WAL_INIT_WRITE "Waiting for a write while initializing a new WAL file." +WAL_READ "Waiting for a read from a WAL file." +WAL_SYNC "Waiting for a WAL file to reach durable storage." +WAL_SYNC_METHOD_ASSIGN "Waiting for data to reach durable storage while as= signing a new WAL sync method." +WAL_WRITE "Waiting for a write to a WAL file." =20 =20 # @@ -252,7 +252,7 @@ WAIT_EVENT_WAL_WRITE WalWrite "Waiting for a write to a= WAL file." =20 Section: ClassName - WaitEventBufferPin =20 -WAIT_EVENT_BUFFER_PIN BufferPin "Waiting to acquire an exclusive pin on a = buffer." +BUFFER_PIN "Waiting to acquire an exclusive pin on a buffer." =20 =20 # @@ -261,7 +261,7 @@ WAIT_EVENT_BUFFER_PIN BufferPin "Waiting to acquire an = exclusive pin on a buffer =20 Section: ClassName - WaitEventExtension =20 -WAIT_EVENT_DOCONLY Extension "Waiting in an extension." +Extension "Waiting in an extension." =20 # # Wait Events - LWLock @@ -272,82 +272,82 @@ WAIT_EVENT_DOCONLY Extension "Waiting in an extension= =2E" =20 Section: ClassName - WaitEventLWLock =20 -WAIT_EVENT_DOCONLY ShmemIndex "Waiting to find or allocate space in shared= memory." -WAIT_EVENT_DOCONLY OidGen "Waiting to allocate a new OID." -WAIT_EVENT_DOCONLY XidGen "Waiting to allocate a new transaction ID." -WAIT_EVENT_DOCONLY ProcArray "Waiting to access the shared per-process dat= a structures (typically, to get a snapshot or report a session's transactio= n ID)." -WAIT_EVENT_DOCONLY SInvalRead "Waiting to retrieve messages from the share= d catalog invalidation queue." -WAIT_EVENT_DOCONLY SInvalWrite "Waiting to add a message to the shared cat= alog invalidation queue." -WAIT_EVENT_DOCONLY WALBufMapping "Waiting to replace a page in WAL buffers= =2E" -WAIT_EVENT_DOCONLY WALWrite "Waiting for WAL buffers to be written to disk= =2E" -WAIT_EVENT_DOCONLY ControlFile "Waiting to read or update the pg= _control file or create a new WAL file." -WAIT_EVENT_DOCONLY XactSLRU "Waiting to access the transaction status SLRU= cache." -WAIT_EVENT_DOCONLY SubtransSLRU "Waiting to access the sub-transaction SLR= U cache." -WAIT_EVENT_DOCONLY MultiXactGen "Waiting to read or update shared multixac= t state." -WAIT_EVENT_DOCONLY MultiXactOffsetSLRU "Waiting to access the multixact of= fset SLRU cache." -WAIT_EVENT_DOCONLY MultiXactMemberSLRU "Waiting to access the multixact me= mber SLRU cache." -WAIT_EVENT_DOCONLY RelCacheInit "Waiting to read or update a pg_= internal.init relation cache initialization file." -WAIT_EVENT_DOCONLY CheckpointerComm "Waiting to manage fsync requests." -WAIT_EVENT_DOCONLY TwoPhaseState "Waiting to read or update the state of p= repared transactions." -WAIT_EVENT_DOCONLY TablespaceCreate "Waiting to create or drop a tablespac= e." -WAIT_EVENT_DOCONLY BtreeVacuum "Waiting to read or update vacuum-related i= nformation for a B-tree index." -WAIT_EVENT_DOCONLY AddinShmemInit "Waiting to manage an extension's space = allocation in shared memory." -WAIT_EVENT_DOCONLY Autovacuum "Waiting to read or update the current state= of autovacuum workers." -WAIT_EVENT_DOCONLY AutovacuumSchedule "Waiting to ensure that a table sele= cted for autovacuum still needs vacuuming." -WAIT_EVENT_DOCONLY SyncScan "Waiting to select the starting location of a = synchronized table scan." -WAIT_EVENT_DOCONLY RelationMapping "Waiting to read or update a = pg_filenode.map file (used to track the filenode assignments of = certain system catalogs)." -WAIT_EVENT_DOCONLY NotifySLRU "Waiting to access the NOTIFY message SLRU cache." -WAIT_EVENT_DOCONLY NotifyQueue "Waiting to read or update NOTIFY<= /command> messages." -WAIT_EVENT_DOCONLY SerializableXactHash "Waiting to read or update informa= tion about serializable transactions." -WAIT_EVENT_DOCONLY SerializableFinishedList "Waiting to access the list of= finished serializable transactions." -WAIT_EVENT_DOCONLY SerializablePredicateList "Waiting to access the list o= f predicate locks held by serializable transactions." -WAIT_EVENT_DOCONLY SerialSLRU "Waiting to access the serializable transact= ion conflict SLRU cache." -WAIT_EVENT_DOCONLY SyncRep "Waiting to read or update information about th= e state of synchronous replication." -WAIT_EVENT_DOCONLY BackgroundWorker "Waiting to read or update background = worker state." -WAIT_EVENT_DOCONLY DynamicSharedMemoryControl "Waiting to read or update d= ynamic shared memory allocation information." -WAIT_EVENT_DOCONLY AutoFile "Waiting to update the postgresql.au= to.conf file." -WAIT_EVENT_DOCONLY ReplicationSlotAllocation "Waiting to allocate or free = a replication slot." -WAIT_EVENT_DOCONLY ReplicationSlotControl "Waiting to read or update repli= cation slot state." -WAIT_EVENT_DOCONLY CommitTsSLRU "Waiting to access the commit timestamp SL= RU cache." -WAIT_EVENT_DOCONLY CommitTs "Waiting to read or update the last value set = for a transaction commit timestamp." -WAIT_EVENT_DOCONLY ReplicationOrigin "Waiting to create, drop or use a rep= lication origin." -WAIT_EVENT_DOCONLY MultiXactTruncation "Waiting to read or truncate multix= act information." -WAIT_EVENT_DOCONLY OldSnapshotTimeMap "Waiting to read or update old snaps= hot control information." -WAIT_EVENT_DOCONLY LogicalRepWorker "Waiting to read or update the state o= f logical replication workers." -WAIT_EVENT_DOCONLY XactTruncation "Waiting to execute pg_xact_st= atus or update the oldest transaction ID available to it." -WAIT_EVENT_DOCONLY WrapLimitsVacuum "Waiting to update limits on transacti= on id and multixact consumption." -WAIT_EVENT_DOCONLY NotifyQueueTail "Waiting to update limit on NO= TIFY message storage." -WAIT_EVENT_DOCONLY WaitEventExtension "Waiting to read or update custom wa= it events information for extensions." +ShmemIndex "Waiting to find or allocate space in shared memory." +OidGen "Waiting to allocate a new OID." +XidGen "Waiting to allocate a new transaction ID." +ProcArray "Waiting to access the shared per-process data structures (typic= ally, to get a snapshot or report a session's transaction ID)." +SInvalRead "Waiting to retrieve messages from the shared catalog invalidat= ion queue." +SInvalWrite "Waiting to add a message to the shared catalog invalidation q= ueue." +WALBufMapping "Waiting to replace a page in WAL buffers." +WALWrite "Waiting for WAL buffers to be written to disk." +ControlFile "Waiting to read or update the pg_control= file or create a new WAL file." +XactSLRU "Waiting to access the transaction status SLRU cache." +SubtransSLRU "Waiting to access the sub-transaction SLRU cache." +MultiXactGen "Waiting to read or update shared multixact state." +MultiXactOffsetSLRU "Waiting to access the multixact offset SLRU cache." +MultiXactMemberSLRU "Waiting to access the multixact member SLRU cache." +RelCacheInit "Waiting to read or update a pg_internal.init relation cache initialization file." +CheckpointerComm "Waiting to manage fsync requests." +TwoPhaseState "Waiting to read or update the state of prepared transaction= s." +TablespaceCreate "Waiting to create or drop a tablespace." +BtreeVacuum "Waiting to read or update vacuum-related information for a B-= tree index." +AddinShmemInit "Waiting to manage an extension's space allocation in share= d memory." +Autovacuum "Waiting to read or update the current state of autovacuum work= ers." +AutovacuumSchedule "Waiting to ensure that a table selected for autovacuum= still needs vacuuming." +SyncScan "Waiting to select the starting location of a synchronized table = scan." +RelationMapping "Waiting to read or update a pg_filenode.map file (used to track the filenode assignments of certain system cata= logs)." +NotifySLRU "Waiting to access the NOTIFY message SLRU c= ache." +NotifyQueue "Waiting to read or update NOTIFY messages." +SerializableXactHash "Waiting to read or update information about serializ= able transactions." +SerializableFinishedList "Waiting to access the list of finished serializa= ble transactions." +SerializablePredicateList "Waiting to access the list of predicate locks h= eld by serializable transactions." +SerialSLRU "Waiting to access the serializable transaction conflict SLRU c= ache." +SyncRep "Waiting to read or update information about the state of synchron= ous replication." +BackgroundWorker "Waiting to read or update background worker state." +DynamicSharedMemoryControl "Waiting to read or update dynamic shared memor= y allocation information." +AutoFile "Waiting to update the postgresql.auto.conf = file." +ReplicationSlotAllocation "Waiting to allocate or free a replication slot." +ReplicationSlotControl "Waiting to read or update replication slot state." +CommitTsSLRU "Waiting to access the commit timestamp SLRU cache." +CommitTs "Waiting to read or update the last value set for a transaction c= ommit timestamp." +ReplicationOrigin "Waiting to create, drop or use a replication origin." +MultiXactTruncation "Waiting to read or truncate multixact information." +OldSnapshotTimeMap "Waiting to read or update old snapshot control informa= tion." +LogicalRepWorker "Waiting to read or update the state of logical replicati= on workers." +XactTruncation "Waiting to execute pg_xact_status or = update the oldest transaction ID available to it." +WrapLimitsVacuum "Waiting to update limits on transaction id and multixact= consumption." +NotifyQueueTail "Waiting to update limit on NOTIFY mess= age storage." +WaitEventExtension "Waiting to read or update custom wait events informati= on for extensions." =20 -WAIT_EVENT_DOCONLY XactBuffer "Waiting for I/O on a transaction status SLR= U buffer." -WAIT_EVENT_DOCONLY CommitTsBuffer "Waiting for I/O on a commit timestamp S= LRU buffer." -WAIT_EVENT_DOCONLY SubtransBuffer "Waiting for I/O on a sub-transaction SL= RU buffer." -WAIT_EVENT_DOCONLY MultiXactOffsetBuffer "Waiting for I/O on a multixact o= ffset SLRU buffer." -WAIT_EVENT_DOCONLY MultiXactMemberBuffer "Waiting for I/O on a multixact m= ember SLRU buffer." -WAIT_EVENT_DOCONLY NotifyBuffer "Waiting for I/O on a NOTIFY message SLRU buffer." -WAIT_EVENT_DOCONLY SerialBuffer "Waiting for I/O on a serializable transac= tion conflict SLRU buffer." -WAIT_EVENT_DOCONLY WALInsert "Waiting to insert WAL data into a memory buf= fer." -WAIT_EVENT_DOCONLY BufferContent "Waiting to access a data page in memory." -WAIT_EVENT_DOCONLY ReplicationOriginState "Waiting to read or update the p= rogress of one replication origin." -WAIT_EVENT_DOCONLY ReplicationSlotIO "Waiting for I/O on a replication slo= t." -WAIT_EVENT_DOCONLY LockFastPath "Waiting to read or update a process' fast= -path lock information." -WAIT_EVENT_DOCONLY BufferMapping "Waiting to associate a data block with a= buffer in the buffer pool." -WAIT_EVENT_DOCONLY LockManager "Waiting to read or update information abou= t heavyweight locks." -WAIT_EVENT_DOCONLY PredicateLockManager "Waiting to access predicate lock = information used by serializable transactions." -WAIT_EVENT_DOCONLY ParallelHashJoin "Waiting to synchronize workers during= Parallel Hash Join plan execution." -WAIT_EVENT_DOCONLY ParallelQueryDSA "Waiting for parallel query dynamic sh= ared memory allocation." -WAIT_EVENT_DOCONLY PerSessionDSA "Waiting for parallel query dynamic share= d memory allocation." -WAIT_EVENT_DOCONLY PerSessionRecordType "Waiting to access a parallel quer= y's information about composite types." -WAIT_EVENT_DOCONLY PerSessionRecordTypmod "Waiting to access a parallel qu= ery's information about type modifiers that identify anonymous record types= =2E" -WAIT_EVENT_DOCONLY SharedTupleStore "Waiting to access a shared tuple stor= e during parallel query." -WAIT_EVENT_DOCONLY SharedTidBitmap "Waiting to access a shared TID bitmap = during a parallel bitmap index scan." -WAIT_EVENT_DOCONLY ParallelAppend "Waiting to choose the next subplan duri= ng Parallel Append plan execution." -WAIT_EVENT_DOCONLY PerXactPredicateList "Waiting to access the list of pre= dicate locks held by the current serializable transaction during a parallel= query." -WAIT_EVENT_DOCONLY PgStatsDSA "Waiting for stats dynamic shared memory all= ocator access." -WAIT_EVENT_DOCONLY PgStatsHash "Waiting for stats shared memory hash table= access." -WAIT_EVENT_DOCONLY PgStatsData "Waiting for shared memory stats data acces= s." -WAIT_EVENT_DOCONLY LogicalRepLauncherDSA "Waiting to access logical replic= ation launcher's dynamic shared memory allocator." -WAIT_EVENT_DOCONLY LogicalRepLauncherHash "Waiting to access logical repli= cation launcher's shared hash table." +XactBuffer "Waiting for I/O on a transaction status SLRU buffer." +CommitTsBuffer "Waiting for I/O on a commit timestamp SLRU buffer." +SubtransBuffer "Waiting for I/O on a sub-transaction SLRU buffer." +MultiXactOffsetBuffer "Waiting for I/O on a multixact offset SLRU buffer." +MultiXactMemberBuffer "Waiting for I/O on a multixact member SLRU buffer." +NotifyBuffer "Waiting for I/O on a NOTIFY message SLRU = buffer." +SerialBuffer "Waiting for I/O on a serializable transaction conflict SLRU = buffer." +WALInsert "Waiting to insert WAL data into a memory buffer." +BufferContent "Waiting to access a data page in memory." +ReplicationOriginState "Waiting to read or update the progress of one repl= ication origin." +ReplicationSlotIO "Waiting for I/O on a replication slot." +LockFastPath "Waiting to read or update a process' fast-path lock informat= ion." +BufferMapping "Waiting to associate a data block with a buffer in the buff= er pool." +LockManager "Waiting to read or update information about heavyweig= ht locks." +PredicateLockManager "Waiting to access predicate lock information used by= serializable transactions." +ParallelHashJoin "Waiting to synchronize workers during Parallel Hash Join= plan execution." +ParallelQueryDSA "Waiting for parallel query dynamic shared memory allocat= ion." +PerSessionDSA "Waiting for parallel query dynamic shared memory allocation= =2E" +PerSessionRecordType "Waiting to access a parallel query's information abo= ut composite types." +PerSessionRecordTypmod "Waiting to access a parallel query's information a= bout type modifiers that identify anonymous record types." +SharedTupleStore "Waiting to access a shared tuple store during parallel q= uery." +SharedTidBitmap "Waiting to access a shared TID bitmap during a parallel b= itmap index scan." +ParallelAppend "Waiting to choose the next subplan during Parallel Append = plan execution." +PerXactPredicateList "Waiting to access the list of predicate locks held b= y the current serializable transaction during a parallel query." +PgStatsDSA "Waiting for stats dynamic shared memory allocator access." +PgStatsHash "Waiting for stats shared memory hash table access." +PgStatsData "Waiting for shared memory stats data access." +LogicalRepLauncherDSA "Waiting to access logical replication launcher's dy= namic shared memory allocator." +LogicalRepLauncherHash "Waiting to access logical replication launcher's s= hared hash table." =20 # # Wait Events - Lock @@ -358,15 +358,15 @@ WAIT_EVENT_DOCONLY LogicalRepLauncherHash "Waiting to= access logical replication =20 Section: ClassName - WaitEventLock =20 -WAIT_EVENT_DOCONLY relation "Waiting to acquire a lock on a relation." -WAIT_EVENT_DOCONLY extend "Waiting to extend a relation." -WAIT_EVENT_DOCONLY frozenid "Waiting to update pg_database.datfrozenxid and pg_databa= se.datminmxid." -WAIT_EVENT_DOCONLY page "Waiting to acquire a lock on a page of a relation= =2E" -WAIT_EVENT_DOCONLY tuple "Waiting to acquire a lock on a tuple." -WAIT_EVENT_DOCONLY transactionid "Waiting for a transaction to finish." -WAIT_EVENT_DOCONLY virtualxid "Waiting to acquire a virtual transaction ID= lock; see ." -WAIT_EVENT_DOCONLY spectoken "Waiting to acquire a speculative insertion l= ock." -WAIT_EVENT_DOCONLY object "Waiting to acquire a lock on a non-relation dat= abase object." -WAIT_EVENT_DOCONLY userlock "Waiting to acquire a user lock." -WAIT_EVENT_DOCONLY advisory "Waiting to acquire an advisory user lock." -WAIT_EVENT_DOCONLY applytransaction "Waiting to acquire a lock on a remote= transaction being applied by a logical replication subscriber." +relation "Waiting to acquire a lock on a relation." +extend "Waiting to extend a relation." +frozenid "Waiting to update pg_database.datfrozenxid and pg_database.datminmxid." +page "Waiting to acquire a lock on a 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 transaction ID lock; see ." +spectoken "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." +applytransaction "Waiting to acquire a lock on a remote transaction being = applied by a logical replication subscriber." --=20 2.40.1 --JS9jxfxqjdBQdjQM-- --NEeOa6N+HNhz1+8e Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEG72nH6vTowiyblFKnvQgOdbyQH0FAmT2wFIACgkQnvQgOdby QH2IpQ//e7pB1iOzriw4w8kG5dwy7GECkwn6MCD+qYNHPv1/agMYhZknpbPR2s9x vwYnRVvpzQjTySYLrhlxe3I6edTkvI+EL7zxe4DjBgfbPvHGmL6WBRTp0D0l4XXP 9l5GJSXNuL5TqE7okagJIfq+21kfmQjXoWjRMlouPjbgeExwoZI9JV/FarZazZkQ 1xfUw0tJ8CMvwgYv0O8qGK/fih6xVEQJjFy8aGQBL/4jvG6Okp3i2bauOZ85LRb6 H+Vuub6jWrwstfwu1GYy8FbX97eKcJ43lJ6mi4Spxp062UEc1oZqYVhbPKBnaTAs E56JiIjZjBzOT8x0y4KHkXwsARMqAzm6pYMRZm8uWUp5WwP88DMdNiVFlJJwxdyb gDn5uU9MAstxPSMEOTOn64yp8NfJCcC/qRVoMKh047Zg53f+4fVWQJxTkSZn23UW 8wvCFq7ji0cuDV7B7ujsgm3jLrzzpPZikZQ/2ctKYT9C+lqmH9fogBFD7gJviR6m J5T88rZvS8hFg3zDUMHRZ1YQasGnW/3gmxjPJamj53eumzvhJMcNOhm9QhjWMm09 QWK2NLAtuZh5KeuGXk9o45c6qnihrz4yp3nDAGDdPm/ZJvbHWFaj4t7jqCR+4poG 7bpkUs3mdakLGF1sTOsNeZgepb3hEOraq/gZHq+S6/fsq5eUFmo= =OQwr -----END PGP SIGNATURE----- --NEeOa6N+HNhz1+8e--