Add wait event for the group commit delay before WAL flush
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Tue, 9 Dec 2025 15:06:40 +0000 (17:06 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Tue, 9 Dec 2025 15:06:40 +0000 (17:06 +0200)
Author: Rafia Sabih <rafia.pghackers@gmail.com>
Reviewed-by: Sami Imseih <samimseih@gmail.com>
Discussion: https://www.postgresql.org/message-id/CA%2BFpmFf-hWXtrC0Q3Cr_Xo78zuP_M_VC5xgWPOYOkwqOD0T8eg@mail.gmail.com

src/backend/access/transam/xlog.c
src/backend/utils/activity/wait_event_names.txt

index 6ced1d5728240f90a53d78705e86ee7c2a4c20f8..fb05e8e136db6a04edd4a1d49148ffad51b6c3f0 100644 (file)
@@ -2884,7 +2884,9 @@ XLogFlush(XLogRecPtr record)
        if (CommitDelay > 0 && enableFsync &&
            MinimumActiveBackends(CommitSiblings))
        {
+           pgstat_report_wait_start(WAIT_EVENT_COMMIT_DELAY);
            pg_usleep(CommitDelay);
+           pgstat_report_wait_end();
 
            /*
             * Re-check how far we can now flush the WAL. It's generally not
index 1e5e368a5dc9b7f1c05575fa783b2245294b34c4..f39830dbb344d217b9da4e7ca692343ab5515236 100644 (file)
@@ -175,6 +175,7 @@ Section: ClassName - WaitEventTimeout
 
 BASE_BACKUP_THROTTLE   "Waiting during base backup when throttling activity."
 CHECKPOINT_WRITE_DELAY "Waiting between writes while performing a checkpoint."
+COMMIT_DELAY   "Waiting for commit delay before WAL flush."
 PG_SLEEP   "Waiting due to a call to <function>pg_sleep</function> or a sibling function."
 RECOVERY_APPLY_DELAY   "Waiting to apply WAL during recovery because of a delay setting."
 RECOVERY_RETRIEVE_RETRY_INTERVAL   "Waiting during recovery when WAL data is not available from any source (<filename>pg_wal</filename>, archive or stream)."