> So I'm inclined to backpatch it to 17. Thoughts?

+1 for 17. From 17 on, pgstat_count_io_op_time() feeds pgStatBlockReadTime
and the BufferUsage fields from the same io_time for the same objects, so
without workers the log only changes by the rounding. 16 is different, as
you said.

I ran Bharath's reproducer and compared the log line with pg_stat_io for the
same VACUUM. On master the log said

    I/O timings: read: 200.596 ms, write: 200.286 ms

while pg_stat_io had

                   read ms   write ms
    leader         213.442    213.006
    workers         61.415    127.415

So the workers are missing, and the log is short even of the leader's own
time, which is the microsecond rounding Bharath mentioned.

With the patch the log matched leader plus workers within 0.3 ms.

Thanks,
Shihao

Reply via email to