postgres.git / summary / log / commit / refs

commit    d17ffc734dad8c231ad3deee0b3670ecb99b713d
Author:   Michael Paquier <michael@paquier.xyz>
Date:     Wed Oct 18 05:54:33 2023 +0000
First released in: 17.0, 16.1

    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


src/backend/utils/activity/pgstat_io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index eb7d35d4225..8ec86701997 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -119,7 +119,7 @@ pgstat_count_io_op_time(IOObject io_object, IOContext io_context, IOOp io_op, INSTR_TIME_SET_CURRENT(io_time); INSTR_TIME_SUBTRACT(io_time, start_time); - if (io_op == IOOP_WRITE) + if (io_op == IOOP_WRITE || io_op == IOOP_EXTEND) { pgstat_count_buffer_write_time(INSTR_TIME_GET_MICROSEC(io_time)); if (io_object == IOOBJECT_RELATION) [parent: 173b56f1ef59]