aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/explain.c
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2025-03-20 19:58:22 -0400
committerAndres Freund <andres@anarazel.de>2025-03-20 19:58:22 -0400
commit202b12774d092baf7e5d3309aa3cb0cd1e8a606b (patch)
tree1fc7df79bb13ed7c77ac86765fb962d4935fa5e7 /src/backend/commands/explain.c
parent12604593e9f3b3460f7359a39d25731aff6beb88 (diff)
downloadpostgresql-202b12774d092baf7e5d3309aa3cb0cd1e8a606b.tar.gz
postgresql-202b12774d092baf7e5d3309aa3cb0cd1e8a606b.zip
bufmgr: Improve stats when a buffer is read in concurrently
Previously we would have the following inaccuracies when a backend tried to read in a buffer, but that buffer was read in concurrently by another backend: - the read IO was double-counted in the global buffer access stats (pgBufferUsage) - the buffer hit was not accounted for in: - global buffer access statistics - pg_stat_io - relation level IO stats - vacuum cost balancing While trying to read in a buffer that is concurrently read in by another backend is not a common occurrence, it's also not that rare, e.g. due to concurrent sequential scans on the same relation. This scenario has become more likely in PG 17, due to the introducing of read streams, which can pin multiple buffers before calling StartBufferIO() for all the buffers. This behaviour has historically grown, but there doesn't seem to be any reason to continue with the wrong accounting. Reviewed-by: Melanie Plageman <melanieplageman@gmail.com> Discussion: https://postgr.es/m/CAAKRu_Zk-B08AzPsO-6680LUHLOCGaNJYofaxTFseLa=OepV1g@mail.gmail.com
Diffstat (limited to 'src/backend/commands/explain.c')
0 files changed, 0 insertions, 0 deletions