Hi, While reviewing the data checksums docs at [1], I found that the data checksums launcher and workers are exposed in pg_stat_io with the same broad set of object/context combinations as general background workers.
However, several of those entries can never accumulate I/O statistics. For example, as far as I understand correctly, the launcher never processes relations itself, and the workers neither operate on temporary relations nor use the bulkread or bulkwrite contexts. So I think it would be better to restrict the reported entries to those that the data checksums processes can actually use. The attached patch teaches pgstat_tracks_io_object() and pgstat_tracks_io_op() about the actual I/O paths used by these processes. After the patch, pg_stat_io includes only: - data checksums launcher: relation/normal, wal/init, wal/normal - data checksums worker: relation/normal, relation/vacuum, wal/init, wal/normal The patch also excludes WAL reads for both processes, since they emit WAL records but never read WAL. Thoughts? Regards, [1] https://postgr.es/m/cahgqgwfsbjqs2fv7b72hxzgv_fjmh6lag4e83pnfdou1jvg...@mail.gmail.com -- Fujii Masao
v1-0001-Restrict-pg_stat_io-entries-for-data-checksum-pro.patch
Description: Binary data
