pgsql: VACUUM: ignore indexing operations with CONCURRENTLY

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: VACUUM: ignore indexing operations with CONCURRENTLY
Date: 2021-02-23 15:21:02
Message-ID: E1lEZUk-0002sY-MB@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

VACUUM: ignore indexing operations with CONCURRENTLY

As envisioned in commit c98763bf51bf, it is possible for VACUUM to
ignore certain transactions that are executing CREATE INDEX CONCURRENTLY
and REINDEX CONCURRENTLY for the purposes of computing Xmin; that's
because we know those transactions are not going to examine any other
tables, and are not going to execute anything else in the same
transaction. (Only operations on "safe" indexes can be ignored: those
on indexes that are neither partial nor expressional).

This is extremely useful in cases where CIC/RC can run for a very long
time, because that used to be a significant headache for concurrent
vacuuming of other tables.

Reviewed-by: Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>
Reviewed-by: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
Discussion: https://postgr.es/m/20210115133858.GA18931@alvherre.pgsql

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/d9d076222f5b94a85e0e318339cfc44b8f26022d

Modified Files
--------------
doc/src/sgml/ref/create_index.sgml | 2 ++
doc/src/sgml/ref/reindex.sgml | 2 ++
src/backend/storage/ipc/procarray.c | 42 ++++++++++++++++++++++++++++++-------
src/backend/utils/misc/guc.c | 2 +-
4 files changed, 39 insertions(+), 9 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2021-02-23 18:55:45 pgsql: Suppress compiler warning in new regex match-all detection code.
Previous Message Peter Eisentraut 2021-02-23 09:30:07 pgsql: Simplify printing of LSNs