Re: per backend WAL statistics
Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Attachments
Hi, On Fri, Jan 17, 2025 at 08:43:57AM +0900, Michael Paquier wrote: > On Thu, Jan 16, 2025 at 12:44:20PM -0500, Andres Freund wrote: > > On 2025-01-16 17:11:09 +0000, Bertrand Drouvot wrote: > >> So, do you think that the initial proposal that has been made here (See R1. in > >> [2]) i.e make use of a new PendingBackendWalStats variable: > > > > Well, I think this first needs be fixed for for the IO stats change made in > > > > Once we have a pattern to model after, we can apply the same scheme here. > > Okay, thanks for the input. I was not sure what you intended > originally with all this part of the backend code, and how much would > be acceptable. The line is clear now. > > >> 0003 does not rely on pgstat_prep_backend_pending() for its pending statistics > >> but on a new PendingBackendWalStats variable. The reason is that the pending wal > >> statistics are incremented in a critical section (see XLogWrite(), and so > >> a call to pgstat_prep_pending_entry() could trigger a failed assertion: > >> MemoryContextAllocZero()->"CritSectionCount == 0 || (context)->allowInCritSection" > >> " > >> > >> and implemented up to v4 is a viable approach? > > > > Yes-ish. I think it would be better to make it slightly more general than > > that, handling this for all types of backend stats, not just for WAL. > > Agreed to use the same concept for all these parts of the backend > stats kind rather than two of them. Will send a reply on the original > backend I/O thread as well. PFA v6 that now relies on the new PendingBackendStats variable introduced in 4feba03d8b9. Remark: I moved PendingBackendStats back to pgstat.h because I think that the "simple" pending stats increment that we are adding in xlog.c are not worth an extra function call overhead (while it made more sense for the more complex IO stats handling). So PendingBackendStats is now visible to the outside world like PendingWalStats and friends. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com
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