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 1qIM6k-0008BV-0R for pgsql-hackers@arkaria.postgresql.org; Sun, 09 Jul 2023 04:33: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 1qIM6h-0007Ix-T4 for pgsql-hackers@arkaria.postgresql.org; Sun, 09 Jul 2023 04:33:11 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qIM6g-0007Io-1q for pgsql-hackers@lists.postgresql.org; Sun, 09 Jul 2023 04:33:11 +0000 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qIM6U-002p4l-PO for pgsql-hackers@lists.postgresql.org; Sun, 09 Jul 2023 04:33:08 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id 93AE132009AE; Sun, 9 Jul 2023 00:32:55 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Sun, 09 Jul 2023 00:32:55 -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=fm2; t=1688877175; x=1688963575; bh=MO sU7Ac13viAbiqj9hT4AhSBC24bvmUNRhyD6YKjZXQ=; b=3kBB71v8U45Gdz2Yfv 8zq3usfg5WNAxhdaH27JzauDGKTrscxMO4q6TiS5s8pvucf4UzxtE2AOk9FzJYxa fzaW9cXYgmnyiiBOe33rrzHstuaJTtp/9OT4wUoH2WX84bD24sEjPnlNUWwqkSBX sWYJS/TmUbTGkn2lrm7epqaMc/PF+bGllFMELr97PjCHA4jSUe39r2lUlm/yIGw7 alXXjMCHcJy1gBbJXbxFY2F8R3dLlRkLE8axg4IxW8SfaglkZNCd4fYsEpkioYoU IuxfN6YkT55wmZXy/0f/VpHJ5XbJruFdtpXbLmNu5Nq/QW2QqiNVY2yaoegutUCT Jf5w== 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=fm2; t=1688877175; x=1688963575; bh=MOsU7Ac13viAb iqj9hT4AhSBC24bvmUNRhyD6YKjZXQ=; b=WEA0Zl5aKZ6cF6dY3fYWw1LBSXznH yp7tgBULKgDDjVdcCq05ivzruGQT0Ow7pj6l+cm4uRs5BZwxvlJiJTuTwAautLGA LOzoA1fH54zU5aGLCEHlhnfeGGEIfG7WlYahbIYObhneGxpQVY3Dp0wpE/4I5rTQ 1wDol1CzXp3ZjDvqv3ndVDp9o7YubnN5lWSNLRxx6GDyxVeqRKYxlqZLHdTiBXfd 4rtoRfqcpY5ZS2hYIKyKOSqYlkYPPzveCqJQ1CBxNZ/hsROQD59JbMULy/kKyu8N iMDfoiKYFPjyZGnO90EZaUjU9B08OtenDqPe5A1pUlkvjP5jI55Nt2DHw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrvdeggdekiecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenfg hrlhcuvffnffculdejtddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt vdenucfhrhhomhepofhitghhrggvlhcurfgrqhhuihgvrhcuoehmihgthhgrvghlsehprg hquhhivghrrdighiiiqeenucggtffrrghtthgvrhhnpeetleeifedufffhhfdtteelgeeg geffhfekueevteeigfduudevudetgfegiedvjeenucevlhhushhtvghrufhiiigvpedtne curfgrrhgrmhepmhgrihhlfhhrohhmpehmihgthhgrvghlsehprghquhhivghrrdighiii X-ME-Proxy: Feedback-ID: i0fe9450f:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 9 Jul 2023 00:32:52 -0400 (EDT) Date: Sun, 9 Jul 2023 13:32:47 +0900 From: Michael Paquier To: Andres Freund Cc: "Drouvot, Bertrand" , PostgreSQL Hackers Subject: Re: Autogenerate some wait events code and documentation Message-ID: References: <69588eaf-02d7-95a8-0da4-3e120de16a59@gmail.com> <0b3cdac7-f078-61a6-76e0-99db7aae78ce@gmail.com> <20230705215939.ulnfbr4zavb2x7ri@awork3.anarazel.de> <20230707011943.qxbj3vj2iwsfgqvq@awork3.anarazel.de> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="PPFYg5W3UGN0zBRj" Content-Disposition: inline In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --PPFYg5W3UGN0zBRj Content-Type: multipart/mixed; boundary="I7d6dTZ2qBpPtV8P" Content-Disposition: inline --I7d6dTZ2qBpPtV8P Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Jul 07, 2023 at 01:49:24PM +0900, Michael Paquier wrote: > Hmm. If we go down this road I would make the choice of simplicity > and remove entirely a column, then, generating the snakecase from the > camelcase or vice-versa (say like a $string =~ s/([a-z]+)/$1_/g;), > even if it means having slightly incompatible strings showing to the > users. And I'd rather minimize the number of exceptions we need to > handle in this automation (aka no exception rules for some keywords > like "SSL" or "WAL", etc.). After pondering more about that, the attached patch set does exactly that. Patch 0001 includes an update of the wait event names so as these are more consistent with the enum elements generated. With this change, users can apply lower() or upper() across monitoring queries and still get the same results as before. An exception was the message queue events, which the enums used "MQ" but the event names used "MessageQueue", but this concerns only four lines of code in the backend. The newly-generated enum elements match with the existing ones, except for MQ. Patch 0002 introduces a set of simplifications for the format of wait_event_names.txt: - Removal of the first column for the enums. - Removal of the quotes for the event name. We have a single keyword for these, so that's kind of annoying to cope with that for new entries. - Build of the enum elements using the event names, by applying a rebuild as simple as that: + $waiteventenumname =~ s/([a-z])([A-Z])/$1_$2/g; + $waiteventenumname = uc($waiteventenumname); Thoughts? -- Michael --I7d6dTZ2qBpPtV8P Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-Rename-wait-events-with-more-consistent-camelcase-st.patch" Content-Transfer-Encoding: quoted-printable =46rom 30dff3cc8ab825bc968ecfed13eecee6725f6a80 Mon Sep 17 00:00:00 2001 =46rom: Michael Paquier Date: Sun, 9 Jul 2023 13:24:54 +0900 Subject: [PATCH 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/storage/ipc/shm_mq.c | 6 +- .../utils/activity/wait_event_names.txt | 90 +++++++++---------- 3 files changed, 49 insertions(+), 49 deletions(-) diff --git a/src/backend/libpq/pqmq.c b/src/backend/libpq/pqmq.c index 39e77ef945..87b8570a42 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/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 7af1a61f95..e706dfd8f3 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 = process." -WAIT_EVENT_AUTOVACUUM_MAIN "AutoVacuumMain" "Waiting in main loop of autov= acuum launcher process." -WAIT_EVENT_BGWRITER_HIBERNATE "BgWriterHibernate" "Waiting in background w= riter process, hibernating." -WAIT_EVENT_BGWRITER_MAIN "BgWriterMain" "Waiting in main loop of backgroun= d writer process." +WAIT_EVENT_AUTOVACUUM_MAIN "AutovacuumMain" "Waiting in main loop of autov= acuum launcher process." +WAIT_EVENT_BGWRITER_HIBERNATE "BgwriterHibernate" "Waiting in background w= riter process, hibernating." +WAIT_EVENT_BGWRITER_MAIN "BgwriterMain" "Waiting in main loop of backgroun= d writer process." WAIT_EVENT_CHECKPOINTER_MAIN "CheckpointerMain" "Waiting in main loop of c= heckpointer process." WAIT_EVENT_LOGICAL_APPLY_MAIN "LogicalApplyMain" "Waiting in main loop of = logical replication apply process." WAIT_EVENT_LOGICAL_LAUNCHER_MAIN "LogicalLauncherMain" "Waiting in main lo= op of logical replication launcher process." WAIT_EVENT_LOGICAL_PARALLEL_APPLY_MAIN "LogicalParallelApplyMain" "Waiting= in main loop of logical replication parallel apply process." WAIT_EVENT_RECOVERY_WAL_STREAM "RecoveryWalStream" "Waiting in main loop o= f startup process for WAL to arrive, during streaming recovery." -WAIT_EVENT_SYSLOGGER_MAIN "SysLoggerMain" "Waiting in main loop of syslogg= er process." +WAIT_EVENT_SYSLOGGER_MAIN "SysloggerMain" "Waiting in main loop of syslogg= er process." WAIT_EVENT_WAL_RECEIVER_MAIN "WalReceiverMain" "Waiting in main loop of WA= L receiver process." WAIT_EVENT_WAL_SENDER_MAIN "WalSenderMain" "Waiting in main loop of WAL se= nder process." WAIT_EVENT_WAL_WRITER_MAIN "WalWriterMain" "Waiting in main loop of WAL wr= iter 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= =2E" -WAIT_EVENT_GSS_OPEN_SERVER "GSSOpenServer" "Waiting to read data from the = client while establishing a GSSAPI session." -WAIT_EVENT_LIBPQWALRECEIVER_CONNECT "LibPQWalReceiverConnect" "Waiting in = WAL receiver to establish connection to remote server." -WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE "LibPQWalReceiverReceive" "Waiting in = WAL receiver to receive data from remote server." -WAIT_EVENT_SSL_OPEN_SERVER "SSLOpenServer" "Waiting for SSL while attempti= ng connection." -WAIT_EVENT_WAL_SENDER_WAIT_WAL "WalSenderWaitForWAL" "Waiting for WAL to b= e flushed in WAL sender process." +WAIT_EVENT_GSS_OPEN_SERVER "GssOpenServer" "Waiting to read data from the = client while establishing a GSSAPI session." +WAIT_EVENT_LIBPQWALRECEIVER_CONNECT "LibpqwalreceiverConnect" "Waiting in = WAL receiver to establish connection to remote server." +WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE "LibpqwalreceiverReceive" "Waiting in = WAL receiver to receive data from remote server." +WAIT_EVENT_SSL_OPEN_SERVER "SslOpenServer" "Waiting for SSL while attempti= ng connection." +WAIT_EVENT_WAL_SENDER_WAIT_WAL "WalSenderWaitWal" "Waiting for WAL to be f= lushed in WAL sender process." WAIT_EVENT_WAL_SENDER_WRITE_DATA "WalSenderWriteData" "Waiting for any act= ivity when processing replies from WAL receiver in WAL sender process." =20 =20 @@ -93,10 +93,10 @@ WAIT_EVENT_ARCHIVE_CLEANUP_COMMAND "ArchiveCleanupComma= nd" "Waiting for to complete." WAIT_EVENT_BACKEND_TERMINATION "BackendTermination" "Waiting for the termi= nation of another backend." WAIT_EVENT_BACKUP_WAIT_WAL_ARCHIVE "BackupWaitWalArchive" "Waiting for WAL= files required for a backup to be successfully archived." -WAIT_EVENT_BGWORKER_SHUTDOWN "BgWorkerShutdown" "Waiting for background wo= rker to shut down." -WAIT_EVENT_BGWORKER_STARTUP "BgWorkerStartup" "Waiting for background work= er to start up." +WAIT_EVENT_BGWORKER_SHUTDOWN "BgworkerShutdown" "Waiting for background wo= rker to shut down." +WAIT_EVENT_BGWORKER_STARTUP "BgworkerStartup" "Waiting for background work= er to start up." WAIT_EVENT_BTREE_PAGE "BtreePage" "Waiting for the page number needed to c= ontinue 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 c= omplete." WAIT_EVENT_CHECKPOINT_START "CheckpointStart" "Waiting for a checkpoint to= start." WAIT_EVENT_EXECUTE_GATHER "ExecuteGather" "Waiting for activity from a chi= ld process while executing a Gather plan node." @@ -119,14 +119,14 @@ WAIT_EVENT_LOGICAL_APPLY_SEND_DATA "LogicalApplySendD= ata" "Waiting for a logical WAIT_EVENT_LOGICAL_PARALLEL_APPLY_STATE_CHANGE "LogicalParallelApplyStateC= hange" "Waiting for a logical replication parallel apply process to change = state." WAIT_EVENT_LOGICAL_SYNC_DATA "LogicalSyncData" "Waiting for a logical repl= ication 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= to be attached to a shared message queue." -WAIT_EVENT_MQ_PUT_MESSAGE "MessageQueuePutMessage" "Waiting to write a pro= tocol 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 m= essage queue." +WAIT_EVENT_MESSAGE_QUEUE_INTERNAL "MessageQueueInternal" "Waiting for anot= her process to be attached to a shared message queue." +WAIT_EVENT_MESSAGE_QUEUE_PUT_MESSAGE "MessageQueuePutMessage" "Waiting to = write a protocol message to a shared message queue." +WAIT_EVENT_MESSAGE_QUEUE_RECEIVE "MessageQueueReceive" "Waiting to receive= bytes 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= bitmap scan to become initialized." WAIT_EVENT_PARALLEL_CREATE_INDEX_SCAN "ParallelCreateIndexScan" "Waiting f= or 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 = group leader to clear the transaction ID at end of a parallel operation." +WAIT_EVENT_PROCARRAY_GROUP_UPDATE "ProcarrayGroupUpdate" "Waiting for the = group leader to clear the transaction ID at end of a parallel operation." WAIT_EVENT_PROC_SIGNAL_BARRIER "ProcSignalBarrier" "Waiting for a barrier = event to be processed by all backends." WAIT_EVENT_PROMOTE "Promote" "Waiting for standby promotion." WAIT_EVENT_RECOVERY_CONFLICT_SNAPSHOT "RecoveryConflictSnapshot" "Waiting = for recovery conflict resolution for a vacuum cleanup." @@ -170,12 +170,12 @@ WAIT_EVENT_VACUUM_TRUNCATE "VacuumTruncate" "Waiting = to acquire an exclusive loc =20 Section: ClassName - WaitEventIO =20 -WAIT_EVENT_BASEBACKUP_READ "BaseBackupRead" "Waiting for base backup to re= ad from a file." -WAIT_EVENT_BASEBACKUP_SYNC "BaseBackupSync" "Waiting for data written by a= base backup to reach durable storage." -WAIT_EVENT_BASEBACKUP_WRITE "BaseBackupWrite" "Waiting for base backup to = write to a file." -WAIT_EVENT_BUFFILE_READ "BufFileRead" "Waiting for a read from a buffered = file." -WAIT_EVENT_BUFFILE_WRITE "BufFileWrite" "Waiting for a write to a buffered= file." -WAIT_EVENT_BUFFILE_TRUNCATE "BufFileTruncate" "Waiting for a buffered file= to be truncated." +WAIT_EVENT_BASEBACKUP_READ "BasebackupRead" "Waiting for base backup to re= ad from a file." +WAIT_EVENT_BASEBACKUP_SYNC "BasebackupSync" "Waiting for data written by a= base backup to reach durable storage." +WAIT_EVENT_BASEBACKUP_WRITE "BasebackupWrite" "Waiting for base backup to = write to a file." +WAIT_EVENT_BUFFILE_READ "BuffileRead" "Waiting for a read from a buffered = file." +WAIT_EVENT_BUFFILE_WRITE "BuffileWrite" "Waiting for a write to a buffered= file." +WAIT_EVENT_BUFFILE_TRUNCATE "BuffileTruncate" "Waiting for a buffered file= to be truncated." WAIT_EVENT_CONTROL_FILE_READ "ControlFileRead" "Waiting for a read from th= e pg_control file." WAIT_EVENT_CONTROL_FILE_SYNC "ControlFileSync" "Waiting for the = pg_control file to reach durable storage. Waiting for an update = to the pg_control file to reach durable storage." WAIT_EVENT_CONTROL_FILE_SYNC_UPDATE "ControlFileSyncUpdate" "Waiting for a= n update to the pg_control file to reach durable stora= ge." @@ -191,15 +191,15 @@ WAIT_EVENT_DATA_FILE_READ "DataFileRead" "Waiting for= a read from a relation dat WAIT_EVENT_DATA_FILE_SYNC "DataFileSync" "Waiting for changes to a relatio= n data file to reach durable storage." WAIT_EVENT_DATA_FILE_TRUNCATE "DataFileTruncate" "Waiting for a relation d= ata file to be truncated." WAIT_EVENT_DATA_FILE_WRITE "DataFileWrite" "Waiting for a write to a relat= ion data file." -WAIT_EVENT_DSM_ALLOCATE "DSMAllocate" "Waiting for a dynamic shared memory= segment to be allocated." -WAIT_EVENT_DSM_FILL_ZERO_WRITE "DSMFillZeroWrite" "Waiting to fill a dynam= ic shared memory backing file with zeroes." -WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ "LockFileAddToDataDirRead" "Waiting= for a read while adding a line to the data directory lock file." -WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC "LockFileAddToDataDirSync" "Waiting= for data to reach durable storage while adding a line to the data director= y lock file." -WAIT_EVENT_LOCK_FILE_ADDTODATADIR_WRITE "LockFileAddToDataDirWrite" "Waiti= ng for a write while adding a line to the data directory lock file." +WAIT_EVENT_DSM_ALLOCATE "DsmAllocate" "Waiting for a dynamic shared memory= segment to be allocated." +WAIT_EVENT_DSM_FILL_ZERO_WRITE "DsmFillZeroWrite" "Waiting to fill a dynam= ic shared memory backing file with zeroes." +WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ "LockFileAddtodatadirRead" "Waiting= for a read while adding a line to the data directory lock file." +WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC "LockFileAddtodatadirSync" "Waiting= for data to reach durable storage while adding a line to the data director= y lock file." +WAIT_EVENT_LOCK_FILE_ADDTODATADIR_WRITE "LockFileAddtodatadirWrite" "Waiti= ng for a write while adding a line to the data directory lock file." WAIT_EVENT_LOCK_FILE_CREATE_READ "LockFileCreateRead" "Waiting to read whi= le creating the data directory lock file." WAIT_EVENT_LOCK_FILE_CREATE_SYNC "LockFileCreateSync" "Waiting for data to= reach durable storage while creating the data directory lock file." WAIT_EVENT_LOCK_FILE_CREATE_WRITE "LockFileCreateWrite" "Waiting for a wri= te while creating the data directory lock file." -WAIT_EVENT_LOCK_FILE_RECHECKDATADIR_READ "LockFileReCheckDataDirRead" "Wai= ting for a read during recheck of the data directory lock file." +WAIT_EVENT_LOCK_FILE_RECHECKDATADIR_READ "LockFileRecheckdatadirRead" "Wai= ting for a read during recheck of the data directory lock file." WAIT_EVENT_LOGICAL_REWRITE_CHECKPOINT_SYNC "LogicalRewriteCheckpointSync" = "Waiting for logical rewrite mappings to reach durable storage during a che= ckpoint." WAIT_EVENT_LOGICAL_REWRITE_MAPPING_SYNC "LogicalRewriteMappingSync" "Waiti= ng for mapping data to reach durable storage during a logical rewrite." WAIT_EVENT_LOGICAL_REWRITE_MAPPING_WRITE "LogicalRewriteMappingWrite" "Wai= ting 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 WAIT_EVENT_REPLICATION_SLOT_RESTORE_SYNC "ReplicationSlotRestoreSync" "Wai= ting for a replication slot control file to reach durable storage while res= toring it to memory." WAIT_EVENT_REPLICATION_SLOT_SYNC "ReplicationSlotSync" "Waiting for a repl= ication slot control file to reach durable storage." WAIT_EVENT_REPLICATION_SLOT_WRITE "ReplicationSlotWrite" "Waiting for a wr= ite to a replication slot control file." -WAIT_EVENT_SLRU_FLUSH_SYNC "SLRUFlushSync" "Waiting for SLRU data to reach= durable 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 st= orage 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= durable 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 st= orage 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 seriali= zed historical catalog snapshot." WAIT_EVENT_SNAPBUILD_SYNC "SnapbuildSync" "Waiting for a serialized histor= ical catalog snapshot to reach durable storage." WAIT_EVENT_SNAPBUILD_WRITE "SnapbuildWrite" "Waiting for a write of a seri= alized historical catalog snapshot." @@ -232,18 +232,18 @@ WAIT_EVENT_TWOPHASE_FILE_READ "TwophaseFileRead" "Wai= ting for a read of a two ph WAIT_EVENT_TWOPHASE_FILE_SYNC "TwophaseFileSync" "Waiting for a two phase = state 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 = file to be written while creating a database." -WAIT_EVENT_WALSENDER_TIMELINE_HISTORY_READ "WALSenderTimelineHistoryRead" = "Waiting for a read from a timeline history file during a walsender timelin= e command." -WAIT_EVENT_WAL_BOOTSTRAP_SYNC "WALBootstrapSync" "Waiting for WAL to reach= durable 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= new WAL segment by copying an existing one." -WAIT_EVENT_WAL_COPY_SYNC "WALCopySync" "Waiting for a new WAL segment crea= ted by copying an existing one to reach durable storage." -WAIT_EVENT_WAL_COPY_WRITE "WALCopyWrite" "Waiting for a write when creatin= g a new WAL segment by copying an existing one." -WAIT_EVENT_WAL_INIT_SYNC "WALInitSync" "Waiting for a newly initialized WA= L file to reach durable storage." -WAIT_EVENT_WAL_INIT_WRITE "WALInitWrite" "Waiting for a write while initia= lizing 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 sto= rage. Waiting for data to reach durable storage while assigning a new WAL s= ync method." -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. Waitin= g for WAL buffers to be written to disk." +WAIT_EVENT_WALSENDER_TIMELINE_HISTORY_READ "WalsenderTimelineHistoryRead" = "Waiting for a read from a timeline history file during a walsender timelin= e command." +WAIT_EVENT_WAL_BOOTSTRAP_SYNC "WalBootstrapSync" "Waiting for WAL to reach= durable 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= new WAL segment by copying an existing one." +WAIT_EVENT_WAL_COPY_SYNC "WalCopySync" "Waiting for a new WAL segment crea= ted by copying an existing one to reach durable storage." +WAIT_EVENT_WAL_COPY_WRITE "WalCopyWrite" "Waiting for a write when creatin= g a new WAL segment by copying an existing one." +WAIT_EVENT_WAL_INIT_SYNC "WalInitSync" "Waiting for a newly initialized WA= L file to reach durable storage." +WAIT_EVENT_WAL_INIT_WRITE "WalInitWrite" "Waiting for a write while initia= lizing 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 sto= rage. Waiting for data to reach durable storage while assigning a new WAL s= ync method." +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. Waitin= g for WAL buffers to be written to disk." =20 =20 # --=20 2.40.1 --I7d6dTZ2qBpPtV8P Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0002-Simplify-format-of-wait_event_names.txt.patch" Content-Transfer-Encoding: quoted-printable =46rom f4646efad35f565f0482f057142ea985c7faa44f Mon Sep 17 00:00:00 2001 =46rom: Michael Paquier Date: Sun, 9 Jul 2023 13:21:17 +0900 Subject: [PATCH 2/2] Simplify format of wait_event_names.txt This file is now made of two columns, removing the column listing the enum elements for each wait event class: - Camelcase event name used in pg_stat_activity. There are now unquoted. - Description of the documentation. While on it, add more information in generate-wait_event_types.pl about the location of any parsing failure. --- .../activity/generate-wait_event_types.pl | 34 +- .../utils/activity/wait_event_names.txt | 492 +++++++++--------- 2 files changed, 265 insertions(+), 261 deletions(-) diff --git a/src/backend/utils/activity/generate-wait_event_types.pl b/src/= backend/utils/activity/generate-wait_event_types.pl index 6d1a2af42a..2f8de3af85 100644 --- a/src/backend/utils/activity/generate-wait_event_types.pl +++ b/src/backend/utils/activity/generate-wait_event_types.pl @@ -72,25 +72,27 @@ my @lines_sorted =3D # Read the sorted lines and populate the hash table foreach my $line (@lines_sorted) { - die "unable to parse wait_event_names.txt" - unless $line =3D~ /^(\w+)\t+(\w+)\t+("\w+")\t+("\w.*\.")$/; + die "unable to parse wait_event_names.txt for line $line\n" + unless $line =3D~ /^(\w+)\t+(\w+)\t+("\w.*\.")$/; =20 - ( my $waitclassname, - my $waiteventenumname, - my $waiteventdescription, - my $waitevendocsentence) =3D split(/\t/, $line); + (my $waitclassname, my $waiteventdescription, my $waitevendocsentence) =3D + split(/\t/, $line); =20 + # Generate the element name for the enums based on the + # description. Camelcase strings like "WaitEventName" + # are converted to WAIT_EVENT_WAIT_EVENT_NAME. + my $waiteventenumname =3D $waiteventdescription; + # Add underscores between sequences of lower-case and upper-case + # characters, then upper-case the whole. + $waiteventenumname =3D~ s/([a-z])([A-Z])/$1_$2/g; + $waiteventenumname =3D uc($waiteventenumname); + $waiteventenumname =3D "WAIT_EVENT_$waiteventenumname"; + + # Store the event into the list for each class. my @waiteventlist =3D [ $waiteventenumname, $waiteventdescription, $waitevendocsentence ]; my $trimmedwaiteventname =3D $waiteventenumname; - $trimmedwaiteventname =3D~ s/^WAIT_EVENT_//; =20 - # An exception is required for LWLock and Lock as these don't require - # any C and header files generated. - die "wait event names must start with 'WAIT_EVENT_'" - if ( $trimmedwaiteventname eq $waiteventenumname - && $waiteventenumname !~ /^LWLock/ - && $waiteventenumname !~ /^Lock/); $continue =3D ",\n"; push(@{ $hashwe{$waitclassname} }, @waiteventlist); } @@ -173,7 +175,9 @@ if ($gen_code) $firstpass =3D 0; =20 printf $c "\t\t case %s:\n", $wev->[0]; - printf $c "\t\t\t event_name =3D %s;\n\t\t\t break;\n", $wev->[1]; + # Apply quotes to the wait event name string. + printf $c "\t\t\t event_name =3D \"%s\";\n\t\t\t break;\n", + $wev->[1]; } =20 printf $h "\n} $waitclass;\n\n"; @@ -226,7 +230,7 @@ elsif ($gen_docs) { printf $s " \n"; printf $s " %s\n", - substr $wev->[1], 1, -1; + $wev->[1]; printf $s " %s\n", substr $wev->[2], 1, -1; printf $s " \n"; } diff --git a/src/backend/utils/activity/wait_event_names.txt b/src/backend/= utils/activity/wait_event_names.txt index e706dfd8f3..5286b37328 100644 --- a/src/backend/utils/activity/wait_event_names.txt +++ b/src/backend/utils/activity/wait_event_names.txt @@ -21,7 +21,7 @@ # 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" +# "format in the system views" "description in the docs" # # 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 = process." -WAIT_EVENT_AUTOVACUUM_MAIN "AutovacuumMain" "Waiting in main loop of autov= acuum launcher process." -WAIT_EVENT_BGWRITER_HIBERNATE "BgwriterHibernate" "Waiting in background w= riter process, hibernating." -WAIT_EVENT_BGWRITER_MAIN "BgwriterMain" "Waiting in main loop of backgroun= d writer process." -WAIT_EVENT_CHECKPOINTER_MAIN "CheckpointerMain" "Waiting in main loop of c= heckpointer process." -WAIT_EVENT_LOGICAL_APPLY_MAIN "LogicalApplyMain" "Waiting in main loop of = logical replication apply process." -WAIT_EVENT_LOGICAL_LAUNCHER_MAIN "LogicalLauncherMain" "Waiting in main lo= op of logical replication launcher process." -WAIT_EVENT_LOGICAL_PARALLEL_APPLY_MAIN "LogicalParallelApplyMain" "Waiting= in main loop of logical replication parallel apply process." -WAIT_EVENT_RECOVERY_WAL_STREAM "RecoveryWalStream" "Waiting in main loop o= f startup process for WAL to arrive, during streaming recovery." -WAIT_EVENT_SYSLOGGER_MAIN "SysloggerMain" "Waiting in main loop of syslogg= er process." -WAIT_EVENT_WAL_RECEIVER_MAIN "WalReceiverMain" "Waiting in main loop of WA= L receiver process." -WAIT_EVENT_WAL_SENDER_MAIN "WalSenderMain" "Waiting in main loop of WAL se= nder process." -WAIT_EVENT_WAL_WRITER_MAIN "WalWriterMain" "Waiting in main loop of WAL wr= iter process." +ArchiverMain "Waiting in main loop of 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." +CheckpointerMain "Waiting in main loop of checkpointer process." +LogicalApplyMain "Waiting in main loop of logical replication apply proces= s." +LogicalLauncherMain "Waiting in main loop of logical replication launcher = process." +LogicalParallelApplyMain "Waiting in main loop of logical replication para= llel apply process." +RecoveryWalStream "Waiting in main loop of startup process for WAL to arri= ve, during streaming 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." =20 =20 # @@ -69,14 +69,14 @@ WAIT_EVENT_WAL_WRITER_MAIN "WalWriterMain" "Waiting in = main loop of WAL writer p =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= =2E" -WAIT_EVENT_GSS_OPEN_SERVER "GssOpenServer" "Waiting to read data from the = client while establishing a GSSAPI session." -WAIT_EVENT_LIBPQWALRECEIVER_CONNECT "LibpqwalreceiverConnect" "Waiting in = WAL receiver to establish connection to remote server." -WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE "LibpqwalreceiverReceive" "Waiting in = WAL receiver to receive data from remote server." -WAIT_EVENT_SSL_OPEN_SERVER "SslOpenServer" "Waiting for SSL while attempti= ng connection." -WAIT_EVENT_WAL_SENDER_WAIT_WAL "WalSenderWaitWal" "Waiting for WAL to be f= lushed in WAL sender process." -WAIT_EVENT_WAL_SENDER_WRITE_DATA "WalSenderWriteData" "Waiting for any act= ivity when processing replies from WAL receiver in WAL sender process." +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 a G= SSAPI session." +LibpqwalreceiverConnect "Waiting in WAL receiver to establish connection t= o remote server." +LibpqwalreceiverReceive "Waiting in WAL receiver to receive data from remo= te server." +SslOpenServer "Waiting for SSL while attempting connection." +WalSenderWaitWal "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." =20 =20 # @@ -88,59 +88,59 @@ WAIT_EVENT_WAL_SENDER_WRITE_DATA "WalSenderWriteData" "= Waiting for any activity =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 termi= nation of another backend." -WAIT_EVENT_BACKUP_WAIT_WAL_ARCHIVE "BackupWaitWalArchive" "Waiting for WAL= files required for a backup to be successfully archived." -WAIT_EVENT_BGWORKER_SHUTDOWN "BgworkerShutdown" "Waiting for background wo= rker to shut down." -WAIT_EVENT_BGWORKER_STARTUP "BgworkerStartup" "Waiting for background work= er to start up." -WAIT_EVENT_BTREE_PAGE "BtreePage" "Waiting for the page number needed to c= ontinue 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 c= omplete." -WAIT_EVENT_CHECKPOINT_START "CheckpointStart" "Waiting for a checkpoint to= start." -WAIT_EVENT_EXECUTE_GATHER "ExecuteGather" "Waiting for activity from a chi= ld process while executing a Gather plan node." -WAIT_EVENT_HASH_BATCH_ALLOCATE "HashBatchAllocate" "Waiting for an elected= Parallel Hash participant to allocate a hash table." -WAIT_EVENT_HASH_BATCH_ELECT "HashBatchElect" "Waiting to elect a Parallel = Hash participant to allocate a hash table." -WAIT_EVENT_HASH_BATCH_LOAD "HashBatchLoad" "Waiting for other Parallel Has= h participants to finish loading a hash table." -WAIT_EVENT_HASH_BUILD_ALLOCATE "HashBuildAllocate" "Waiting for an elected= Parallel Hash participant to allocate the initial hash table." -WAIT_EVENT_HASH_BUILD_ELECT "HashBuildElect" "Waiting to elect a Parallel = Hash participant to allocate the initial hash table." -WAIT_EVENT_HASH_BUILD_HASH_INNER "HashBuildHashInner" "Waiting for other P= arallel Hash participants to finish hashing the inner relation." -WAIT_EVENT_HASH_BUILD_HASH_OUTER "HashBuildHashOuter" "Waiting for other P= arallel Hash participants to finish partitioning the outer relation." -WAIT_EVENT_HASH_GROW_BATCHES_DECIDE "HashGrowBatchesDecide" "Waiting to el= ect a Parallel Hash participant to decide on future batch growth." -WAIT_EVENT_HASH_GROW_BATCHES_ELECT "HashGrowBatchesElect" "Waiting to elec= t a Parallel Hash participant to allocate more batches." -WAIT_EVENT_HASH_GROW_BATCHES_FINISH "HashGrowBatchesFinish" "Waiting for a= n elected Parallel Hash participant to decide on future batch growth." -WAIT_EVENT_HASH_GROW_BATCHES_REALLOCATE "HashGrowBatchesReallocate" "Waiti= ng for an elected Parallel Hash participant to allocate more batches." -WAIT_EVENT_HASH_GROW_BATCHES_REPARTITION "HashGrowBatchesRepartition" "Wai= ting for other Parallel Hash participants to finish repartitioning." -WAIT_EVENT_HASH_GROW_BUCKETS_ELECT "HashGrowBucketsElect" "Waiting to elec= t a Parallel Hash participant to allocate more buckets." -WAIT_EVENT_HASH_GROW_BUCKETS_REALLOCATE "HashGrowBucketsReallocate" "Waiti= ng for an elected Parallel Hash participant to finish allocating more bucke= ts." -WAIT_EVENT_HASH_GROW_BUCKETS_REINSERT "HashGrowBucketsReinsert" "Waiting f= or other Parallel Hash participants to finish inserting tuples into new buc= kets." -WAIT_EVENT_LOGICAL_APPLY_SEND_DATA "LogicalApplySendData" "Waiting for a l= ogical replication leader apply process to send data to a parallel apply pr= ocess." -WAIT_EVENT_LOGICAL_PARALLEL_APPLY_STATE_CHANGE "LogicalParallelApplyStateC= hange" "Waiting for a logical replication parallel apply process to change = state." -WAIT_EVENT_LOGICAL_SYNC_DATA "LogicalSyncData" "Waiting for a logical repl= ication 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 anot= her process to be attached to a shared message queue." -WAIT_EVENT_MESSAGE_QUEUE_PUT_MESSAGE "MessageQueuePutMessage" "Waiting to = write a protocol message to a shared message queue." -WAIT_EVENT_MESSAGE_QUEUE_RECEIVE "MessageQueueReceive" "Waiting to receive= bytes 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= bitmap scan to become initialized." -WAIT_EVENT_PARALLEL_CREATE_INDEX_SCAN "ParallelCreateIndexScan" "Waiting f= or 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 = group leader to clear the transaction ID at end of a parallel operation." -WAIT_EVENT_PROC_SIGNAL_BARRIER "ProcSignalBarrier" "Waiting for a barrier = event to be processed by all backends." -WAIT_EVENT_PROMOTE "Promote" "Waiting for standby promotion." -WAIT_EVENT_RECOVERY_CONFLICT_SNAPSHOT "RecoveryConflictSnapshot" "Waiting = for recovery conflict resolution for a vacuum cleanup." -WAIT_EVENT_RECOVERY_CONFLICT_TABLESPACE "RecoveryConflictTablespace" "Wait= ing 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 resu= med." -WAIT_EVENT_REPLICATION_ORIGIN_DROP "ReplicationOriginDrop" "Waiting for a = replication origin to become inactive so it can be dropped." -WAIT_EVENT_REPLICATION_SLOT_DROP "ReplicationSlotDrop" "Waiting for a repl= ication 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 snapsho= t for a READ ONLY DEFERRABLE transaction." -WAIT_EVENT_SYNC_REP "SyncRep" "Waiting for confirmation from a remote serv= er during synchronous replication. Waiting to read or update information ab= out the state of synchronous replication." -WAIT_EVENT_WAL_RECEIVER_EXIT "WalReceiverExit" "Waiting for the WAL receiv= er to exit." -WAIT_EVENT_WAL_RECEIVER_WAIT_START "WalReceiverWaitStart" "Waiting for sta= rtup process to send initial data for streaming replication." -WAIT_EVENT_XACT_GROUP_UPDATE "XactGroupUpdate" "Waiting for the group lead= er to update transaction status at end of a parallel operation." +AppendReady "Waiting for subplan nodes of an Append pla= n node to be ready." +ArchiveCleanupCommand "Waiting for to complete." +ArchiveCommand "Waiting for to com= plete." +BackendTermination "Waiting for the termination of another backend." +BackupWaitWalArchive "Waiting for WAL files required for a backup to be su= ccessfully 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-tre= e scan to become available." +BufferIo "Waiting for buffer I/O to complete." +CheckpointDone "Waiting for a checkpoint to complete." +CheckpointStart "Waiting for a checkpoint to start." +ExecuteGather "Waiting for activity from a child process while executing a= Gather plan node." +HashBatchAllocate "Waiting for an elected Parallel Hash participant to all= ocate a hash table." +HashBatchElect "Waiting to elect a Parallel Hash participant to allocate a= hash table." +HashBatchLoad "Waiting for other Parallel Hash participants to finish load= ing a hash table." +HashBuildAllocate "Waiting for an elected Parallel Hash participant to all= ocate the initial hash table." +HashBuildElect "Waiting to elect a Parallel Hash participant to allocate t= he initial hash table." +HashBuildHashInner "Waiting for other Parallel Hash participants to finish= hashing the inner relation." +HashBuildHashOuter "Waiting for other Parallel Hash participants to finish= partitioning the outer relation." +HashGrowBatchesDecide "Waiting to elect a Parallel Hash participant to dec= ide on future batch growth." +HashGrowBatchesElect "Waiting to elect a Parallel Hash participant to allo= cate more batches." +HashGrowBatchesFinish "Waiting for an elected Parallel Hash participant to= decide on future batch growth." +HashGrowBatchesReallocate "Waiting for an elected Parallel Hash participan= t to allocate more batches." +HashGrowBatchesRepartition "Waiting for other Parallel Hash participants t= o finish repartitioning." +HashGrowBucketsElect "Waiting to elect a Parallel Hash participant to allo= cate more buckets." +HashGrowBucketsReallocate "Waiting for an elected Parallel Hash participan= t to finish allocating more buckets." +HashGrowBucketsReinsert "Waiting for other Parallel Hash participants to f= inish inserting tuples into new buckets." +LogicalApplySendData "Waiting for a logical replication leader apply proce= ss to send data to a parallel apply process." +LogicalParallelApplyStateChange "Waiting for a logical replication paralle= l apply process to change state." +LogicalSyncData "Waiting for a logical replication remote server to send d= ata for initial table synchronization." +LogicalSyncStateChange "Waiting for a logical replication remote server to= change state." +MessageQueueInternal "Waiting for another process to be attached to a shar= ed message queue." +MessageQueuePutMessage "Waiting to write a protocol message to a shared me= ssage queue." +MessageQueueReceive "Waiting to receive bytes from a shared message queue." +MessageQueueSend "Waiting to send bytes to a shared message queue." +ParallelBitmapScan "Waiting for parallel bitmap scan to become initialized= =2E" +ParallelCreateIndexScan "Waiting for parallel CREATE INDEX workers to finish heap scan." +ParallelFinish "Waiting for parallel workers to finish computing." +ProcarrayGroupUpdate "Waiting for the group leader to clear the transactio= n ID at end of a parallel operation." +ProcSignalBarrier "Waiting for a barrier event to be processed by all back= ends." +Promote "Waiting for standby promotion." +RecoveryConflictSnapshot "Waiting for recovery conflict resolution for a v= acuum cleanup." +RecoveryConflictTablespace "Waiting for recovery conflict resolution for d= ropping a tablespace." +RecoveryEndCommand "Waiting for to complete." +RecoveryPause "Waiting for recovery to be resumed." +ReplicationOriginDrop "Waiting for a replication origin to become inactive= so it can be dropped." +ReplicationSlotDrop "Waiting for a replication slot to become inactive so = it can be dropped." +RestoreCommand "Waiting for to com= plete." +SafeSnapshot "Waiting to obtain a valid snapshot for a READ ONLY = DEFERRABLE transaction." +SyncRep "Waiting for confirmation from a remote server during synchronous = replication. Waiting to read or update information about the state of synch= ronous replication." +WalReceiverExit "Waiting for the WAL receiver to exit." +WalReceiverWaitStart "Waiting for startup process to send initial data for= streaming replication." +XactGroupUpdate "Waiting for the group leader to update transaction status= at end of a parallel operation." =20 =20 # @@ -151,15 +151,15 @@ WAIT_EVENT_XACT_GROUP_UPDATE "XactGroupUpdate" "Waiti= ng for the group leader to =20 Section: ClassName - WaitEventTimeout =20 -WAIT_EVENT_BASE_BACKUP_THROTTLE "BaseBackupThrottle" "Waiting during base = backup when throttling activity." -WAIT_EVENT_CHECKPOINT_WRITE_DELAY "CheckpointWriteDelay" "Waiting between = writes 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= during 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 send= ing synchronization requests to the checkpointer, because the request queue= is full." -WAIT_EVENT_SPIN_DELAY "SpinDelay" "Waiting while acquiring a contended spi= nlock." -WAIT_EVENT_VACUUM_DELAY "VacuumDelay" "Waiting in a cost-based vacuum dela= y point." -WAIT_EVENT_VACUUM_TRUNCATE "VacuumTruncate" "Waiting to acquire an exclusi= ve lock to truncate off any empty pages at the end of a table vacuumed." +BaseBackupThrottle "Waiting during base backup when throttling activity." +CheckpointWriteDelay "Waiting between writes while performing a checkpoint= =2E" +PgSleep "Waiting due to a call to pg_sleep or a sibli= ng function." +RecoveryApplyDelay "Waiting to apply WAL during recovery because of a dela= y setting." +RecoveryRetrieveRetryInterval "Waiting during recovery when WAL data is no= t available from any source (pg_wal, archive or stream= )." +RegisterSyncRequest "Waiting while sending synchronization requests to the= checkpointer, because the request queue is full." +SpinDelay "Waiting while acquiring a contended spinlock." +VacuumDelay "Waiting in a cost-based vacuum delay point." +VacuumTruncate "Waiting to acquire an exclusive lock to truncate off any e= mpty pages at the end of a table vacuumed." =20 =20 # @@ -170,80 +170,80 @@ WAIT_EVENT_VACUUM_TRUNCATE "VacuumTruncate" "Waiting = to acquire an exclusive loc =20 Section: ClassName - WaitEventIO =20 -WAIT_EVENT_BASEBACKUP_READ "BasebackupRead" "Waiting for base backup to re= ad from a file." -WAIT_EVENT_BASEBACKUP_SYNC "BasebackupSync" "Waiting for data written by a= base backup to reach durable storage." -WAIT_EVENT_BASEBACKUP_WRITE "BasebackupWrite" "Waiting for base backup to = write to a file." -WAIT_EVENT_BUFFILE_READ "BuffileRead" "Waiting for a read from a buffered = file." -WAIT_EVENT_BUFFILE_WRITE "BuffileWrite" "Waiting for a write to a buffered= file." -WAIT_EVENT_BUFFILE_TRUNCATE "BuffileTruncate" "Waiting for a buffered file= to be truncated." -WAIT_EVENT_CONTROL_FILE_READ "ControlFileRead" "Waiting for a read from th= e pg_control file." -WAIT_EVENT_CONTROL_FILE_SYNC "ControlFileSync" "Waiting for the = pg_control file to reach durable storage. Waiting for an update = to the pg_control file to reach durable storage." -WAIT_EVENT_CONTROL_FILE_SYNC_UPDATE "ControlFileSyncUpdate" "Waiting for a= n update to the pg_control file to reach durable stora= ge." -WAIT_EVENT_CONTROL_FILE_WRITE "ControlFileWrite" "Waiting for a write to t= he pg_control file. Waiting for a write to update 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= copy operation." -WAIT_EVENT_COPY_FILE_WRITE "CopyFileWrite" "Waiting for a write during a f= ile copy operation." -WAIT_EVENT_DATA_FILE_EXTEND "DataFileExtend" "Waiting for a relation data = file to be extended." -WAIT_EVENT_DATA_FILE_FLUSH "DataFileFlush" "Waiting for a relation data fi= le to reach durable storage." -WAIT_EVENT_DATA_FILE_IMMEDIATE_SYNC "DataFileImmediateSync" "Waiting for a= n immediate synchronization of a relation data file to durable storage." -WAIT_EVENT_DATA_FILE_PREFETCH "DataFilePrefetch" "Waiting for an asynchron= ous prefetch from a relation data file." -WAIT_EVENT_DATA_FILE_READ "DataFileRead" "Waiting for a read from a relati= on data file." -WAIT_EVENT_DATA_FILE_SYNC "DataFileSync" "Waiting for changes to a relatio= n data file to reach durable storage." -WAIT_EVENT_DATA_FILE_TRUNCATE "DataFileTruncate" "Waiting for a relation d= ata file to be truncated." -WAIT_EVENT_DATA_FILE_WRITE "DataFileWrite" "Waiting for a write to a relat= ion data file." -WAIT_EVENT_DSM_ALLOCATE "DsmAllocate" "Waiting for a dynamic shared memory= segment to be allocated." -WAIT_EVENT_DSM_FILL_ZERO_WRITE "DsmFillZeroWrite" "Waiting to fill a dynam= ic shared memory backing file with zeroes." -WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ "LockFileAddtodatadirRead" "Waiting= for a read while adding a line to the data directory lock file." -WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC "LockFileAddtodatadirSync" "Waiting= for data to reach durable storage while adding a line to the data director= y lock file." -WAIT_EVENT_LOCK_FILE_ADDTODATADIR_WRITE "LockFileAddtodatadirWrite" "Waiti= ng for a write while adding a line to the data directory lock file." -WAIT_EVENT_LOCK_FILE_CREATE_READ "LockFileCreateRead" "Waiting to read whi= le creating the data directory lock file." -WAIT_EVENT_LOCK_FILE_CREATE_SYNC "LockFileCreateSync" "Waiting for data to= reach durable storage while creating the data directory lock file." -WAIT_EVENT_LOCK_FILE_CREATE_WRITE "LockFileCreateWrite" "Waiting for a wri= te while creating the data directory lock file." -WAIT_EVENT_LOCK_FILE_RECHECKDATADIR_READ "LockFileRecheckdatadirRead" "Wai= ting for a read during recheck of the data directory lock file." -WAIT_EVENT_LOGICAL_REWRITE_CHECKPOINT_SYNC "LogicalRewriteCheckpointSync" = "Waiting for logical rewrite mappings to reach durable storage during a che= ckpoint." -WAIT_EVENT_LOGICAL_REWRITE_MAPPING_SYNC "LogicalRewriteMappingSync" "Waiti= ng for mapping data to reach durable storage during a logical rewrite." -WAIT_EVENT_LOGICAL_REWRITE_MAPPING_WRITE "LogicalRewriteMappingWrite" "Wai= ting for a write of mapping data during a logical rewrite." -WAIT_EVENT_LOGICAL_REWRITE_SYNC "LogicalRewriteSync" "Waiting for logical = rewrite mappings to reach durable storage." -WAIT_EVENT_LOGICAL_REWRITE_TRUNCATE "LogicalRewriteTruncate" "Waiting for = truncate of mapping data during a logical rewrite." -WAIT_EVENT_LOGICAL_REWRITE_WRITE "LogicalRewriteWrite" "Waiting for a writ= e of logical rewrite mappings." -WAIT_EVENT_RELATION_MAP_READ "RelationMapRead" "Waiting for a read of the = relation map file." -WAIT_EVENT_RELATION_MAP_REPLACE "RelationMapReplace" "Waiting for durable = replacement of a relation map file." -WAIT_EVENT_RELATION_MAP_WRITE "RelationMapWrite" "Waiting for a write to t= he relation map file." -WAIT_EVENT_REORDER_BUFFER_READ "ReorderBufferRead" "Waiting for a read dur= ing reorder buffer management." -WAIT_EVENT_REORDER_BUFFER_WRITE "ReorderBufferWrite" "Waiting for a write = during reorder buffer management." -WAIT_EVENT_REORDER_LOGICAL_MAPPING_READ "ReorderLogicalMappingRead" "Waiti= ng for a read of a logical mapping during reorder buffer management." -WAIT_EVENT_REPLICATION_SLOT_READ "ReplicationSlotRead" "Waiting for a read= from a replication slot control file." -WAIT_EVENT_REPLICATION_SLOT_RESTORE_SYNC "ReplicationSlotRestoreSync" "Wai= ting for a replication slot control file to reach durable storage while res= toring it to memory." -WAIT_EVENT_REPLICATION_SLOT_SYNC "ReplicationSlotSync" "Waiting for a repl= ication slot control file to reach durable storage." -WAIT_EVENT_REPLICATION_SLOT_WRITE "ReplicationSlotWrite" "Waiting for a wr= ite to a replication slot control file." -WAIT_EVENT_SLRU_FLUSH_SYNC "SlruFlushSync" "Waiting for SLRU data to reach= durable 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 st= orage 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 seriali= zed historical catalog snapshot." -WAIT_EVENT_SNAPBUILD_SYNC "SnapbuildSync" "Waiting for a serialized histor= ical catalog snapshot to reach durable storage." -WAIT_EVENT_SNAPBUILD_WRITE "SnapbuildWrite" "Waiting for a write of a seri= alized historical catalog snapshot." -WAIT_EVENT_TIMELINE_HISTORY_FILE_SYNC "TimelineHistoryFileSync" "Waiting f= or a timeline history file received via streaming replication to reach dura= ble storage." -WAIT_EVENT_TIMELINE_HISTORY_FILE_WRITE "TimelineHistoryFileWrite" "Waiting= for a write of a timeline history file received via streaming replication." -WAIT_EVENT_TIMELINE_HISTORY_READ "TimelineHistoryRead" "Waiting for a read= of a timeline history file." -WAIT_EVENT_TIMELINE_HISTORY_SYNC "TimelineHistorySync" "Waiting for a newl= y created timeline history file to reach durable storage." -WAIT_EVENT_TIMELINE_HISTORY_WRITE "TimelineHistoryWrite" "Waiting for a wr= ite of a newly created timeline history file." -WAIT_EVENT_TWOPHASE_FILE_READ "TwophaseFileRead" "Waiting for a read of a = two phase state file." -WAIT_EVENT_TWOPHASE_FILE_SYNC "TwophaseFileSync" "Waiting for a two phase = state 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 = file to be written while creating a database." -WAIT_EVENT_WALSENDER_TIMELINE_HISTORY_READ "WalsenderTimelineHistoryRead" = "Waiting for a read from a timeline history file during a walsender timelin= e command." -WAIT_EVENT_WAL_BOOTSTRAP_SYNC "WalBootstrapSync" "Waiting for WAL to reach= durable 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= new WAL segment by copying an existing one." -WAIT_EVENT_WAL_COPY_SYNC "WalCopySync" "Waiting for a new WAL segment crea= ted by copying an existing one to reach durable storage." -WAIT_EVENT_WAL_COPY_WRITE "WalCopyWrite" "Waiting for a write when creatin= g a new WAL segment by copying an existing one." -WAIT_EVENT_WAL_INIT_SYNC "WalInitSync" "Waiting for a newly initialized WA= L file to reach durable storage." -WAIT_EVENT_WAL_INIT_WRITE "WalInitWrite" "Waiting for a write while initia= lizing 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 sto= rage. Waiting for data to reach durable storage while assigning a new WAL s= ync method." -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. Waitin= g for WAL buffers to be written to disk." +BasebackupRead "Waiting for base backup to read from a file." +BasebackupSync "Waiting for data written by a base backup to reach durable= storage." +BasebackupWrite "Waiting for base backup to write to a file." +BuffileRead "Waiting for a read from a buffered file." +BuffileWrite "Waiting for a write to a buffered file." +BuffileTruncate "Waiting for a buffered file to be truncated." +ControlFileRead "Waiting for a read from the pg_control file." +ControlFileSync "Waiting for the pg_control file to r= each durable storage. Waiting for an update to the pg_control file to reach durable storage." +ControlFileSyncUpdate "Waiting for an update to the pg_control file to reach durable storage." +ControlFileWrite "Waiting for a write to the pg_control file. Waiting for a write to update the pg_control = file." +ControlFileWriteUpdate "Waiting for a write to update the pg_con= trol 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 durable storage." +DataFileImmediateSync "Waiting for an immediate synchronization of a relat= ion data file to durable storage." +DataFilePrefetch "Waiting for an asynchronous prefetch from a relation dat= a file." +DataFileRead "Waiting for a read from a relation data file." +DataFileSync "Waiting for changes to a relation data file to reach durable= storage." +DataFileTruncate "Waiting for a relation data file to be truncated." +DataFileWrite "Waiting for a write to a relation data file." +DsmAllocate "Waiting for a dynamic shared memory segment to be allocated." +DsmFillZeroWrite "Waiting to fill a dynamic shared memory backing file wit= h zeroes." +LockFileAddtodatadirRead "Waiting for a read while adding a line to the da= ta directory lock file." +LockFileAddtodatadirSync "Waiting for data to reach durable storage while = adding a line to the data directory lock file." +LockFileAddtodatadirWrite "Waiting for a write while adding a line to the = data directory lock file." +LockFileCreateRead "Waiting to read while creating the data directory lock= file." +LockFileCreateSync "Waiting for data to reach durable storage while creati= ng 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 reac= h durable storage during a checkpoint." +LogicalRewriteMappingSync "Waiting for mapping data to reach durable stora= ge during a logical rewrite." +LogicalRewriteMappingWrite "Waiting for a write of mapping data during a l= ogical rewrite." +LogicalRewriteSync "Waiting for logical rewrite mappings to reach durable = storage." +LogicalRewriteTruncate "Waiting for truncate of mapping data during a logi= cal rewrite." +LogicalRewriteWrite "Waiting for a write of logical rewrite mappings." +RelationMapRead "Waiting for a read of the relation map file." +RelationMapReplace "Waiting for durable replacement of a relation map file= =2E" +RelationMapWrite "Waiting for a write to the relation map file." +ReorderBufferRead "Waiting for a read during reorder buffer management." +ReorderBufferWrite "Waiting for a write during reorder buffer management." +ReorderLogicalMappingRead "Waiting for a read of a logical mapping during = reorder buffer management." +ReplicationSlotRead "Waiting for a read from a replication slot control fi= le." +ReplicationSlotRestoreSync "Waiting for a replication slot control file to= reach durable storage while restoring it to memory." +ReplicationSlotSync "Waiting for a replication slot control file to reach = durable storage." +ReplicationSlotWrite "Waiting for a write to a replication slot control fi= le." +SlruFlushSync "Waiting for SLRU data to reach durable storage during a che= ckpoint or database shutdown." +SlruRead "Waiting for a read of an SLRU page." +SlruSync "Waiting for SLRU data to reach durable storage following a page = write." +SlruWrite "Waiting for a write of an SLRU page." +SnapbuildRead "Waiting for a read of a serialized historical catalog snaps= hot." +SnapbuildSync "Waiting for a serialized historical catalog snapshot to rea= ch durable storage." +SnapbuildWrite "Waiting for a write of a serialized historical catalog sna= pshot." +TimelineHistoryFileSync "Waiting for a timeline history file received via = streaming replication to reach durable storage." +TimelineHistoryFileWrite "Waiting for a write of a timeline history file r= eceived via streaming replication." +TimelineHistoryRead "Waiting for a read of a timeline history file." +TimelineHistorySync "Waiting for a newly created timeline history file to = reach durable storage." +TimelineHistoryWrite "Waiting for a write of a newly created timeline hist= ory file." +TwophaseFileRead "Waiting for a read of a two phase state file." +TwophaseFileSync "Waiting for a two phase state file to reach durable stor= age." +TwophaseFileWrite "Waiting for a write of a two phase state file." +VersionFileWrite "Waiting for the version file to be written while creatin= g a database." +WalsenderTimelineHistoryRead "Waiting for a read from a timeline history f= ile during a walsender timeline command." +WalBootstrapSync "Waiting for WAL to reach durable storage during bootstra= pping." +WalBootstrapWrite "Waiting for a write of a WAL page during bootstrapping." +WalCopyRead "Waiting for a read when creating a new WAL segment by copying= an existing one." +WalCopySync "Waiting for a new WAL segment created by copying an existing = one to reach durable 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 durable sto= rage." +WalInitWrite "Waiting for a write while initializing a new WAL file." +WalRead "Waiting for a read from a WAL file." +WalSync "Waiting for a WAL file to reach durable storage. Waiting for data= to reach durable storage while assigning a new WAL sync method." +WalSyncMethodAssign "Waiting for data to reach durable storage while assig= ning a new WAL sync method." +WalWrite "Waiting for a write to a WAL file. Waiting for WAL buffers to be= written to disk." =20 =20 # @@ -252,7 +252,7 @@ WAIT_EVENT_WAL_WRITE "WalWrite" "Waiting for a write to= a WAL file. Waiting for =20 Section: ClassName - WaitEventBufferPin =20 -WAIT_EVENT_BUFFER_PIN "BufferPin" "Waiting to acquire an exclusive pin on = a buffer." +BufferPin "Waiting to acquire an exclusive pin on a buffer." =20 =20 # @@ -261,7 +261,7 @@ WAIT_EVENT_BUFFER_PIN "BufferPin" "Waiting to acquire a= n exclusive pin on a buff =20 Section: ClassName - WaitEventExtension =20 -WAIT_EVENT_EXTENSION "Extension" "Waiting in an extension." +Extension "Waiting in an extension." =20 # # Wait events - LWLock @@ -272,81 +272,81 @@ WAIT_EVENT_EXTENSION "Extension" "Waiting in an exten= sion." =20 Section: ClassName - WaitEventLWLock =20 -WAIT_EVENT_DOCONLY "ShmemIndex" "Waiting to find or allocate space in shar= ed 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 d= ata structures (typically, to get a snapshot or report a session's transact= ion ID)." -WAIT_EVENT_DOCONLY "SInvalRead" "Waiting to retrieve messages from the sha= red catalog invalidation queue." -WAIT_EVENT_DOCONLY "SInvalWrite" "Waiting to add a message to the shared c= atalog invalidation queue." -WAIT_EVENT_DOCONLY "WALBufMapping" "Waiting to replace a page in WAL buffe= rs." -WAIT_EVENT_DOCONLY "WALWrite" "Waiting for WAL buffers to be written to di= sk." -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 SL= RU cache." -WAIT_EVENT_DOCONLY "SubtransSLRU" "Waiting to access the sub-transaction S= LRU cache." -WAIT_EVENT_DOCONLY "MultiXactGen" "Waiting to read or update shared multix= act state." -WAIT_EVENT_DOCONLY "MultiXactOffsetSLRU" "Waiting to access the multixact = offset SLRU cache." -WAIT_EVENT_DOCONLY "MultiXactMemberSLRU" "Waiting to access the multixact = member SLRU cache." -WAIT_EVENT_DOCONLY "RelCacheInit" "Waiting to read or update a p= g_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= prepared transactions." -WAIT_EVENT_DOCONLY "TablespaceCreate" "Waiting to create or drop a tablesp= ace." -WAIT_EVENT_DOCONLY "BtreeVacuum" "Waiting to read or update vacuum-related= information for a B-tree index." -WAIT_EVENT_DOCONLY "AddinShmemInit" "Waiting to manage an extension's spac= e allocation in shared memory." -WAIT_EVENT_DOCONLY "Autovacuum" "Waiting to read or update the current sta= te of autovacuum workers." -WAIT_EVENT_DOCONLY "AutovacuumSchedule" "Waiting to ensure that a table se= lected 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 o= f certain system catalogs)." -WAIT_EVENT_DOCONLY "NotifySLRU" "Waiting to access the NOTIFY message SLRU cache." -WAIT_EVENT_DOCONLY "NotifyQueue" "Waiting to read or update NOTIF= Y messages." -WAIT_EVENT_DOCONLY "SerializableXactHash" "Waiting to read or update infor= mation 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= of predicate locks held by serializable transactions." -WAIT_EVENT_DOCONLY "SerialSLRU" "Waiting to access the serializable transa= ction conflict SLRU cache." -WAIT_EVENT_DOCONLY "SyncRep" "Waiting to read or update information about = the state of synchronous replication." -WAIT_EVENT_DOCONLY "BackgroundWorker" "Waiting to read or update backgroun= d worker state." -WAIT_EVENT_DOCONLY "DynamicSharedMemoryControl" "Waiting to read or update= dynamic shared memory allocation information." -WAIT_EVENT_DOCONLY "AutoFile" "Waiting to update the postgresql.= auto.conf file." -WAIT_EVENT_DOCONLY "ReplicationSlotAllocation" "Waiting to allocate or fre= e a replication slot." -WAIT_EVENT_DOCONLY "ReplicationSlotControl" "Waiting to read or update rep= lication slot state." -WAIT_EVENT_DOCONLY "CommitTsSLRU" "Waiting to access the commit timestamp = SLRU cache." -WAIT_EVENT_DOCONLY "CommitTs" "Waiting to read or update the last value se= t for a transaction commit timestamp." -WAIT_EVENT_DOCONLY "ReplicationOrigin" "Waiting to create, drop or use a r= eplication origin." -WAIT_EVENT_DOCONLY "MultiXactTruncation" "Waiting to read or truncate mult= ixact information." -WAIT_EVENT_DOCONLY "OldSnapshotTimeMap" "Waiting to read or update old sna= pshot control information." -WAIT_EVENT_DOCONLY "LogicalRepWorker" "Waiting to read or update the state= of logical replication workers." -WAIT_EVENT_DOCONLY "XactTruncation" "Waiting to execute pg_xact_= status or update the oldest transaction ID available to it." -WAIT_EVENT_DOCONLY "WrapLimitsVacuum" "Waiting to update limits on transac= tion id and multixact consumption." -WAIT_EVENT_DOCONLY "NotifyQueueTail" "Waiting to update limit on = NOTIFY message storage." +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." =20 -WAIT_EVENT_DOCONLY "XactBuffer" "Waiting for I/O on a transaction status S= LRU buffer." -WAIT_EVENT_DOCONLY "CommitTsBuffer" "Waiting for I/O on a commit timestamp= SLRU buffer." -WAIT_EVENT_DOCONLY "SubtransBuffer" "Waiting for I/O on a sub-transaction = SLRU buffer." -WAIT_EVENT_DOCONLY "MultiXactOffsetBuffer" "Waiting for I/O on a multixact= offset SLRU buffer." -WAIT_EVENT_DOCONLY "MultiXactMemberBuffer" "Waiting for I/O on a multixact= member 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 trans= action conflict SLRU buffer." -WAIT_EVENT_DOCONLY "WALInsert" "Waiting to insert WAL data into a memory b= uffer." -WAIT_EVENT_DOCONLY "BufferContent" "Waiting to access a data page in memor= y." -WAIT_EVENT_DOCONLY "ReplicationOriginState" "Waiting to read or update the= progress of one replication origin." -WAIT_EVENT_DOCONLY "ReplicationSlotIO" "Waiting for I/O on a replication s= lot." -WAIT_EVENT_DOCONLY "LockFastPath" "Waiting to read or update a process' fa= st-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 a= bout heavyweight locks." -WAIT_EVENT_DOCONLY "PredicateLockManager" "Waiting to access predicate loc= k information used by serializable transactions." -WAIT_EVENT_DOCONLY "ParallelHashJoin" "Waiting to synchronize workers duri= ng Parallel Hash Join plan execution." -WAIT_EVENT_DOCONLY "ParallelQueryDSA" "Waiting for parallel query dynamic = shared memory allocation." -WAIT_EVENT_DOCONLY "PerSessionDSA" "Waiting for parallel query dynamic sha= red memory allocation." -WAIT_EVENT_DOCONLY "PerSessionRecordType" "Waiting to access a parallel qu= ery's information about composite types." -WAIT_EVENT_DOCONLY "PerSessionRecordTypmod" "Waiting to access a parallel = query's information about type modifiers that identify anonymous record typ= es." -WAIT_EVENT_DOCONLY "SharedTupleStore" "Waiting to access a shared tuple st= ore during parallel query." -WAIT_EVENT_DOCONLY "SharedTidBitmap" "Waiting to access a shared TID bitma= p during a parallel bitmap index scan." -WAIT_EVENT_DOCONLY "ParallelAppend" "Waiting to choose the next subplan du= ring Parallel Append plan execution." -WAIT_EVENT_DOCONLY "PerXactPredicateList" "Waiting to access the list of p= redicate locks held by the current serializable transaction during a parall= el query." -WAIT_EVENT_DOCONLY "PgStatsDSA" "Waiting for stats dynamic shared memory a= llocator access." -WAIT_EVENT_DOCONLY "PgStatsHash" "Waiting for stats shared memory hash tab= le access." -WAIT_EVENT_DOCONLY "PgStatsData" "Waiting for shared memory stats data acc= ess." -WAIT_EVENT_DOCONLY "LogicalRepLauncherDSA" "Waiting to access logical repl= ication launcher's dynamic shared memory allocator." -WAIT_EVENT_DOCONLY "LogicalRepLauncherHash" "Waiting to access logical rep= lication 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 even - Lock @@ -357,15 +357,15 @@ WAIT_EVENT_DOCONLY "LogicalRepLauncherHash" "Waiting = to access logical replicati =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_data= base.datminmxid." -WAIT_EVENT_DOCONLY "page" "Waiting to acquire a lock on a page of a relati= on." -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= lock." -WAIT_EVENT_DOCONLY "object" "Waiting to acquire a lock on a non-relation d= atabase 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 remo= te 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 --I7d6dTZ2qBpPtV8P-- --PPFYg5W3UGN0zBRj Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEG72nH6vTowiyblFKnvQgOdbyQH0FAmSqOG8ACgkQnvQgOdby QH2bvw/9ELGo1rKwSzKxO9uwnalnPlBciiajMAnHMco45Y81L93oYU316KO5mrZ2 Rlx3kBCAcpncumxb/Zizqjdgb1m4EGBw4IWarmSJbuM9Ib8R/J3oToRFto+UuYik x+YRz8kKJqhAS69w8OYPaLamgIMsMbXxubyp7w/c+K92WzR7ZpWhHZcyIYXvP7df SBs+brkAPwJgMZKcwn1b/Vz6Tmtch8cvUMtMaz6AP/QAiKy1Hb6BJu511VNU9k9Z ZHoYsR03zeIDv71jogXbyZbIavrCHfKaHZvMJwUULHJLZvcAEzMqZQ9zS4+uu9f9 tfCiGR7zZ6HqSybu91rFFT1liWwYmDMiX6eGk+jyEHLMV0/BdmuMWsg+zDIUTpOI Cj4X1kG/y6gw5fasX/GNjRGMZSuR21cdeAE+j6SsBKoW7rw5nKeX7LXAOdzfktfL Je5Ec2PaylMcrpZafqR5GsFBsfQyoKE8GOpMqC6jJ8Nz7Oj/lCj3Iv7Ul6Qp3grj uMav0s1o/ZdjjV1Qdf6keix8q2MQRBESMFwW4tdSptGTj+g7+CUqyvPZzHylIxny gVkN+NjeQchAg6yGr2ORdeTaZAV8L/ZOq8ycIoBHpINN3t5Fcd/wZYMaiXNe3cDi MOEeICEeSQxgEZE1AovbbUntOC5xIMzEx+7Vx/dowWOr7ZAUQug= =ESe5 -----END PGP SIGNATURE----- --PPFYg5W3UGN0zBRj--