postgres/contrib/pg_stat_statements
Michael Paquier 5d4298e75f pg_stat_statements: Avoid some locking during PGSS entry scans
A single PGSS entry's spinlock is used to be able to modify "counters"
without holding pgss->lock exclusively, as mentioned at the top of
pg_stat_statements.c and within pgssEntry.

Within a single pgssEntry, stats_since and minmax_stats_since are never
modified without holding pgss->lock exclusively, so there is no need to
hold an entry's spinlock when reading stats_since and
minmax_stats_since, as done when scanning all the PGSS entries for
function calls of pg_stat_statements().

This also restores the consistency between the code and the comments
about the entry's spinlock usage.  This change is a performance
improvement (it can be argued that this is a logic bug), so there is no
need for a backpatch.  This saves two instructions from being read while
holding an entry's spinlock.

Author: Karina Litskevich
Reviewed-by: Michael Paquier, wenhui qiu
Discussion: https://postgr.es/m/CACiT8ibhCmzbcOxM0v4pRLH3abk-95LPkt7_uC2JMP+miPjxsg@mail.gmail.com
2024-11-11 09:02:30 +09:00
..
expected Set query ID for inner queries of CREATE TABLE AS and DECLARE 2024-10-28 09:03:20 +09:00
sql Track more precisely query locations for nested statements 2024-10-24 09:29:54 +09:00
t Update copyright for 2024 2024-01-03 20:49:05 -05:00
.gitignore pg_stat_statements: Add .gitignore file for tests 2016-11-13 08:24:43 -05:00
Makefile pg_stat_statements: Add columns to track parallel worker activity 2024-10-09 08:30:45 +09:00
meson.build pg_stat_statements: Add columns to track parallel worker activity 2024-10-09 08:30:45 +09:00
pg_stat_statements--1.1--1.2.sql Keep pg_stat_statements' query texts in a file, not in shared memory. 2014-01-27 15:37:54 -05:00
pg_stat_statements--1.2--1.3.sql Add stats for min, max, mean, stddev times to pg_stat_statements. 2015-03-27 15:43:22 -04:00
pg_stat_statements--1.3--1.4.sql Update pg_stat_statements extension for parallel query. 2016-06-10 10:42:01 -04:00
pg_stat_statements--1.4--1.5.sql Default monitoring roles 2017-03-30 14:18:53 -04:00
pg_stat_statements--1.4.sql Update pg_stat_statements extension for parallel query. 2016-06-10 10:42:01 -04:00
pg_stat_statements--1.5--1.6.sql Revoke pg_stat_statements_reset() permissions 2018-09-25 09:55:44 +09:00
pg_stat_statements--1.6--1.7.sql Extend pg_stat_statements_reset to reset statistics specific to a 2019-01-11 08:50:09 +05:30
pg_stat_statements--1.7--1.8.sql Change the display of WAL usage statistics in Explain. 2020-05-05 08:00:53 +05:30
pg_stat_statements--1.8--1.9.sql Merge v1.10 of pg_stat_statements into v1.9 2021-04-08 15:15:17 +02:00
pg_stat_statements--1.9--1.10.sql Add JIT counters to pg_stat_statements 2022-04-08 13:52:16 +02:00
pg_stat_statements--1.10--1.11.sql Track statement entry timestamp in contrib/pg_stat_statements 2023-11-27 02:52:17 +02:00
pg_stat_statements--1.11--1.12.sql pg_stat_statements: Add columns to track parallel worker activity 2024-10-09 08:30:45 +09:00
pg_stat_statements--1.0--1.1.sql Fix typo in update scripts for some contrib modules. 2013-07-19 04:13:01 +09:00
pg_stat_statements.c pg_stat_statements: Avoid some locking during PGSS entry scans 2024-11-11 09:02:30 +09:00
pg_stat_statements.conf Revert "pg_stat_statements: Add coverage for entry_dealloc()" 2023-12-31 15:30:57 +01:00
pg_stat_statements.control pg_stat_statements: Add columns to track parallel worker activity 2024-10-09 08:30:45 +09:00