| From: | Noah Misch <noah(at)leadboat(dot)com> |
|---|---|
| To: | xunengzhou(at)gmail(dot)com, aekorotkov(at)gmail(dot)com |
| Cc: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | wait_event_type for WAIT FOR LSN |
| Date: | 2026-07-06 01:26:42 |
| Message-ID: | 20260706012642.f9.noahmisch@microsoft.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
commit 7a39f43 wrote:
> --- a/src/backend/utils/activity/wait_event_names.txt
> +++ b/src/backend/utils/activity/wait_event_names.txt
> @@ -76,34 +76,35 @@ ABI_compatibility:
> # Wait Events - Client
> #
> # Use this category when a process is waiting to send data to or receive data
> # from the frontend process to which it is connected. This is never used for
> # a background process, which has no client connection.
> #
>
> Section: ClassName - WaitEventClient
>
> 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 remote server."
> SSL_OPEN_SERVER "Waiting for SSL while attempting connection."
> WAIT_FOR_STANDBY_CONFIRMATION "Waiting for WAL to be received and flushed by the physical standby."
> -WAIT_FOR_WAL_FLUSH "Waiting for WAL flush to reach a target LSN on a primary."
> +WAIT_FOR_WAL_FLUSH "Waiting for WAL flush to reach a target LSN on a primary or standby."
> WAIT_FOR_WAL_REPLAY "Waiting for WAL replay to reach a target LSN on a standby."
> +WAIT_FOR_WAL_WRITE "Waiting for WAL write to reach a target LSN on a standby."
> WAL_SENDER_WAIT_FOR_WAL "Waiting for WAL to be flushed in WAL sender process."
> WAL_SENDER_WRITE_DATA "Waiting for any activity when processing replies from WAL receiver in WAL sender process."
>
> ABI_compatibility:
WaitEventClient is about waiting for a socket to become readable or writable,
so I think WAIT_FOR_WAL_* events don't fit in its scope. Sockets are just one
of the ways to be in WAIT_FOR_WAL_*; other delay sources include local fsync
and local replay, which could be disk-bound or CPU-bound.
I think WAIT_FOR_WAL_* belong in WaitEventIPC. In the absence of objections,
I'll change it that way:
--- a/src/backend/utils/activity/wait_event_names.txt
+++ b/src/backend/utils/activity/wait_event_names.txt
@@ -91,5 +91,2 @@ SSL_OPEN_SERVER "Waiting for SSL while attempting connection."
WAIT_FOR_STANDBY_CONFIRMATION "Waiting for WAL to be received and flushed by the physical standby."
-WAIT_FOR_WAL_FLUSH "Waiting for WAL flush to reach a target LSN on a primary or standby."
-WAIT_FOR_WAL_REPLAY "Waiting for WAL replay to reach a target LSN on a standby."
-WAIT_FOR_WAL_WRITE "Waiting for WAL write to reach a target LSN on a standby."
WAL_SENDER_WAIT_FOR_WAL "Waiting for WAL to be flushed in WAL sender process."
@@ -164,2 +161,5 @@ SAFE_SNAPSHOT "Waiting to obtain a valid snapshot for a <literal>READ ONLY DEFER
SYNC_REP "Waiting for confirmation from a remote server during synchronous replication."
+WAIT_FOR_WAL_FLUSH "Waiting for WAL flush to reach a target LSN on a primary or standby."
+WAIT_FOR_WAL_REPLAY "Waiting for WAL replay to reach a target LSN on a standby."
+WAIT_FOR_WAL_WRITE "Waiting for WAL write to reach a target LSN on a standby."
WAL_RECEIVER_EXIT "Waiting for the WAL receiver to exit."
As further rationale, WaitEventClient says "never used for a background
process". By xlogwait.c sizing its shmem to include NUM_AUXILIARY_PROCS, it's
reserving the right to accept calls from background processes. As a side note
related to that, the placement of WaitLSNCleanup() in ProcKill() but not
AuxiliaryProcKill() would also need to change before welcoming auxiliary
process use. Perhaps better than adding to AuxiliaryProcKill(), a separate
on_shmem_exit callback for xlogwait.c would make it harder to miss callers
needing it.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Michael Paquier | 2026-07-06 01:54:47 | Re: add validations for required callbacks during pgstat_register_kind() |
| Previous Message | Fujii Masao | 2026-07-06 00:52:42 | Re: Clear base backup progress reporting on error |