Skip to content

Commit d17ffc7

Browse files
committed
Count write times when extending relation files for shared buffers
Relation files extended by multiple blocks at a time have been counting the number of blocks written, but forgot to increment the write time in this case, as single-block write and relation extension are treated as two different I/O operations in the shared stats: IOOP_EXTEND vs IOOP_WRITE. In this case IOOP_EXTEND was forgotten for normal (non-temporary) relations, still the number of blocks written was incremented according to the relation extend done. Write times are tracked when track_io_timing is enabled, which is not the case by default. Author: Nazir Bilal Yavuz Reviewed-by: Robert Haas, Melanie Plageman Discussion: https://postgr.es/m/CAN55FZ19Ss279mZuqGbuUNxka0iPbLgYuOQXqAKewrjNrp27VA@mail.gmail.com Backpatch-through: 16
1 parent 173b56f commit d17ffc7

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/backend/utils/activity/pgstat_io.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ pgstat_count_io_op_time(IOObject io_object, IOContext io_context, IOOp io_op,
119119
INSTR_TIME_SET_CURRENT(io_time);
120120
INSTR_TIME_SUBTRACT(io_time, start_time);
121121

122-
if (io_op == IOOP_WRITE)
122+
if (io_op == IOOP_WRITE || io_op == IOOP_EXTEND)
123123
{
124124
pgstat_count_buffer_write_time(INSTR_TIME_GET_MICROSEC(io_time));
125125
if (io_object == IOOBJECT_RELATION)

0 commit comments

Comments
 (0)