pgsql: Extend the ProcSignal mechanism to support barriers.

From: Robert Haas <rhaas(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Extend the ProcSignal mechanism to support barriers.
Date: 2019-12-19 19:56:38
Message-ID: E1ii1uY-0007Hy-CF@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Extend the ProcSignal mechanism to support barriers.

A new function EmitProcSignalBarrier() can be used to emit a global
barrier which all backends that participate in the ProcSignal
mechanism must absorb, and a new function WaitForProcSignalBarrier()
can be used to wait until all relevant backends have in fact
absorbed the barrier.

This can be used to coordinate global state changes, such as turning
checksums on while the system is running.

There's no real client of this mechanism yet, although two are
proposed, but an enum has to have at least one element, so this
includes a placeholder type (PROCSIGNAL_BARRIER_PLACEHOLDER) which
should be replaced by the first real client of this mechanism to
get committed.

Andres Freund and Robert Haas, reviewed by Daniel Gustafsson and,
in earlier versions, by Magnus Hagander.

Discussion: http://postgr.es/m/CA+TgmoZwDk=BguVDVa+qdA6SBKef=PKbaKDQALTC_9qoz1mJqg@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/16a4e4aecd47da7a6c4e1ebc20f6dd1a13f9133b

Modified Files
--------------
doc/src/sgml/monitoring.sgml | 6 +-
src/backend/postmaster/autovacuum.c | 4 +
src/backend/postmaster/checkpointer.c | 7 +
src/backend/postmaster/interrupt.c | 4 +
src/backend/postmaster/pgstat.c | 3 +
src/backend/postmaster/startup.c | 6 +-
src/backend/replication/walreceiver.c | 3 +-
src/backend/storage/buffer/bufmgr.c | 10 ++
src/backend/storage/ipc/procsignal.c | 301 ++++++++++++++++++++++++++++++++--
src/backend/tcop/postgres.c | 3 +
src/backend/utils/init/globals.c | 1 +
src/include/miscadmin.h | 1 +
src/include/pgstat.h | 1 +
src/include/storage/procsignal.h | 14 ++
14 files changed, 350 insertions(+), 14 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Andrew Dunstan 2019-12-20 05:55:10 pgsql: Superuser can permit passwordless connections on postgres_fdw
Previous Message Peter Geoghegan 2019-12-19 19:37:26 pgsql: Remove unneeded "pin scan" nbtree VACUUM code.