0001-Add-WAIT_EVENT-for-CommitDelay.patch
application/octet-stream
Filename: 0001-Add-WAIT_EVENT-for-CommitDelay.patch
Type: application/octet-stream
Part: 0
Message:
Add wait event for CommitDelay
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch 0001
Subject: Add WAIT_EVENT for CommitDelay
| File | + | − |
|---|---|---|
| src/backend/access/transam/xlog.c | 2 | 0 |
| src/backend/utils/activity/wait_event_names.txt | 1 | 0 |
From 00713939d3fe41c405ba989a9a3f5bbb13fb015c Mon Sep 17 00:00:00 2001
From: Rafia Sabih <rafia.sabih@cybertec.at>
Date: Thu, 4 Dec 2025 19:05:05 +0100
Subject: [PATCH] Add WAIT_EVENT for CommitDelay
---
src/backend/access/transam/xlog.c | 2 ++
src/backend/utils/activity/wait_event_names.txt | 1 +
2 files changed, 3 insertions(+)
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 22d0a2e8c3a..76a3a875679 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -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
diff --git a/src/backend/utils/activity/wait_event_names.txt b/src/backend/utils/activity/wait_event_names.txt
index 1e5e368a5dc..a0130105fe1 100644
--- a/src/backend/utils/activity/wait_event_names.txt
+++ b/src/backend/utils/activity/wait_event_names.txt
@@ -180,6 +180,7 @@ RECOVERY_APPLY_DELAY "Waiting to apply WAL during recovery because of a delay se
RECOVERY_RETRIEVE_RETRY_INTERVAL "Waiting during recovery when WAL data is not available from any source (<filename>pg_wal</filename>, archive or stream)."
REGISTER_SYNC_REQUEST "Waiting while sending synchronization requests to the checkpointer, because the request queue is full."
SPIN_DELAY "Waiting while acquiring a contended spinlock."
+COMMIT_DELAY "Waiting while pre commit."
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."
WAL_SUMMARIZER_ERROR "Waiting after a WAL summarizer error."
--
2.39.5 (Apple Git-154)