From b998fedab74c6cf4e564c17f4171881759a093ee Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Mon, 3 Feb 2025 11:19:58 +0900 Subject: [PATCH] Improve comment on top of pgstat_count_io_op_time() This commit adds more documentation to pgstat_count_io_op_time() in pgstat_io.c, explaining its internals for pgstat_count_buffer_*(), pgBufferUsage and the contexts where these are used. Extracted from a larger patch by the same author. Author: Nazir Bilal Yavuz Discussion: https://postgr.es/m/CAN55FZ3AiQ+ZMxUuXnBpd0Rrh1YhwJ5FudkHg=JU0P+-W8T4Vg@mail.gmail.com --- src/backend/utils/activity/pgstat_io.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 6ff5d9e96a1..7aee6a396f2 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -107,6 +107,14 @@ pgstat_prepare_io_time(bool track_io_guc) /* * Like pgstat_count_io_op() except it also accumulates time. + * + * The calls related to pgstat_count_buffer_*() are for pgstat_database. As + * pg_stat_database only counts block read and write times, these are done for + * IOOP_READ, IOOP_WRITE and IOOP_EXTEND. + * + * pgBufferUsage is used for EXPLAIN. pgBufferUsage has write and read stats + * for shared, local and temporary blocks. pg_stat_io does not track the + * activity of temporary blocks, so these are ignored here. */ void pgstat_count_io_op_time(IOObject io_object, IOContext io_context, IOOp io_op, -- 2.39.5