From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Fix async.c to not register any SLRU stats counts in the postmas |
Date: | 2020-05-14 02:48:52 |
Message-ID: | E1jZ3vY-0007Kb-LL@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Fix async.c to not register any SLRU stats counts in the postmaster.
Previously, AsyncShmemInit forcibly initialized the first page of the
async SLRU, to save dealing with that case in asyncQueueAddEntries.
But this is a poor tradeoff, since many installations do not ever use
NOTIFY; for them, expending those cycles in AsyncShmemInit is a
complete waste. Besides, this only saves a couple of instructions
in asyncQueueAddEntries, which hardly seems likely to be measurable.
The real reason to change this now, though, is that now that we track
SLRU access stats, the existing code is causing the postmaster to
accumulate some access counts, which then get inherited into child
processes by fork(), messing up the statistics. Delaying the
initialization into the first child that does a NOTIFY fixes that.
Hence, we can revert f3d23d83e, which was an incorrect attempt at
fixing that issue. Also, add an Assert to pgstat.c that should
catch any future errors of the same sort.
Discussion: https://postgr.es/m/8367.1589391884@sss.pgh.pa.us
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/7fd89f4d7a51af77175a876613cffb490b9e5df1
Modified Files
--------------
src/backend/commands/async.c | 29 ++++++++++++++++++-----------
src/backend/postmaster/pgstat.c | 9 ++++++---
2 files changed, 24 insertions(+), 14 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2020-05-14 03:03:47 | pgsql: Doc: reformat catalog/view description tables. |
Previous Message | Bruce Momjian | 2020-05-14 02:48:21 | pgsql: doc: PG 13 relnotes: adjust wal_skip_threshold wording |