Re: per backend WAL statistics
Michael Paquier <michael@paquier.xyz>
On Tue, Feb 04, 2025 at 08:49:41AM +0000, Bertrand Drouvot wrote: > I think that: > > wal_write (and wal_write_time) > wal_sync (and wal_sync_time) Right. We are not able to get this data from XLogWrite() and issue_xlog_fsync(), so there is no need to duplicate that anymore in your patch. > can be extracted from pg_stat_get_backend_io(), so there is no need to duplicate > this information. The same comment could be done for pg_stat_wal and pg_stat_io > though, but pg_stat_wal already exists so removing fields has not the same > effect. > > What are you thoughts about keeping in pg_stat_get_backend_wal() only the > 4 stats mentioned above? wal_buffers_full is incremented in AdvanceXLInsertBuffer(), part of PendingWalStats. wal_records, wal_fpi and wal_bytes are part of the instrumentation field. It looks to me that if you discard the wal_buffers_full part, the implementation of the data in the backend could just be tied to the fields coming from WalUsage. Actually, could it actually be useful to have wal_buffers_full be available in WalUsage, so as it would show up in EXPLAIN in a per-query basis with show_wal_usage()? Consolidating that would make what you are trying it a bit easier, because we would have the WalUsage and the pg_stat_io parts without any of the PendingWalStats part. And it is just a counter not that expensive to handle, like the data for records, fpis and bytes. This extra information could be useful to have in the context of an EXPLAIN. -- Michael
Commits
-
Fix use-after-free in pgstat_fetch_stat_backend_by_pid()
- 3191a593d6de 18.0 landed
-
Remove initialization from PendingBackendStats
- f554a95379a9 18.0 landed
-
Add WAL data to backend statistics
- 76def4cdd7c2 18.0 landed
-
Improve check for detection of pending data in backend statistics
- 9a8dd2c5a6d9 18.0 landed
-
Fix some gaps in pg_stat_io with WAL receiver and WAL summarizer
- f4694e0f35b2 18.0 landed
-
Handle auxiliary processes in SQL functions of backend statistics
- 3f1db99bfabb 18.0 landed
-
Invent pgstat_fetch_stat_backend_by_pid()
- c2a50ac678eb 18.0 landed
-
Refactor code of pg_stat_get_wal() building result tuple
- 495864a4cf16 18.0 landed
-
Adding new PgStat_WalCounters structure in pgstat.h
- 0e42d31b0b22 18.0 landed
-
Remove pgstat_flush_wal()
- d7cbeaf261da 18.0 landed
-
Refactor some code related to backend statistics
- 2c14037bb57c 18.0 landed
-
Add backend-level statistics to pgstats
- 9aea73fc61d4 18.0 cited