Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Improve comment on top of pgstat_count_io_op_time()
authorMichael Paquier <michael@paquier.xyz>
Mon, 3 Feb 2025 02:19:58 +0000 (11:19 +0900)
committerMichael Paquier <michael@paquier.xyz>
Mon, 3 Feb 2025 02:19:58 +0000 (11:19 +0900)
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

index 6ff5d9e96a17b855a63c2bc048a14f9adf6b410a..7aee6a396f2c86deaf96f96d9c533ad06a1b92aa 100644 (file)
@@ -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,