postgresql/src/include/storage
Amit Kapila 0f0cfb4940 Fix parallel operations that prevent oldest xmin from advancing.
While determining xid horizons, we skip over backends that are running
Vacuum. We also ignore Create Index Concurrently, or Reindex Concurrently
for the purposes of computing Xmin for Vacuum. But we were not setting the
flags corresponding to these operations when they are performed in
parallel which was preventing Xid horizon from advancing.

The optimization related to skipping Create Index Concurrently, or Reindex
Concurrently operations was implemented in PG-14 but the fix is the same
for the Parallel Vacuum as well so back-patched till PG-13.

Author: Masahiko Sawada
Reviewed-by: Amit Kapila
Backpatch-through: 13
Discussion: https://postgr.es/m/CAD21AoCLQqgM1sXh9BrDFq0uzd3RBFKi=Vfo6cjjKODm0Onr5w@mail.gmail.com
2021-11-19 09:04:40 +05:30
..
.gitignore When trace_lwlocks is used, identify individual lwlocks by name. 2015-09-11 14:01:39 -04:00
backendid.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
barrier.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
block.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
buf.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
buf_internals.h Improve comment for struct BufferDesc. 2021-03-11 16:38:45 +13:00
buffile.h Optimize fileset usage in apply worker. 2021-09-02 08:13:46 +05:30
bufmgr.h process startup: Always call Init[Auxiliary]Process() before BaseInit(). 2021-08-05 15:36:59 -07:00
bufpage.h Truncate line pointer array during VACUUM. 2021-04-07 08:47:15 -07:00
checksum.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
checksum_impl.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
condition_variable.h Replace buffer I/O locks with condition variables. 2021-03-11 10:36:17 +13:00
copydir.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
dsm.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
dsm_impl.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
fd.h Move temporary file cleanup to before_shmem_exit(). 2021-08-07 19:20:47 -07:00
fileset.h Refactor sharedfileset.c to separate out fileset implementation. 2021-08-30 08:48:15 +05:30
freespace.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
fsm_internals.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
indexfsm.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
ipc.h Introduce GUC shared_memory_size 2021-09-08 12:02:30 +09:00
item.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
itemid.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
itemptr.h Add TID Range Scans to support efficient scanning ranges of TIDs 2021-02-27 22:59:36 +13:00
large_object.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
latch.h Add support for asynchronous execution. 2021-03-31 18:45:00 +09:00
lmgr.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
lock.h Fix CREATE INDEX CONCURRENTLY for the newest prepared transactions. 2021-10-23 18:36:38 -07:00
lockdefs.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
lwlock.h Replace buffer I/O locks with condition variables. 2021-03-11 10:36:17 +13:00
md.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
off.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_sema.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_shmem.h Introduce GUC shared_memory_size_in_huge_pages 2021-09-21 10:31:58 +09:00
pmsignal.h Make archiver process an auxiliary process. 2021-03-15 13:13:14 +09:00
predicate.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
predicate_internals.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
proc.h Fix parallel operations that prevent oldest xmin from advancing. 2021-11-19 09:04:40 +05:30
procarray.h Detect the deadlocks between backends and the startup process. 2021-01-06 12:39:18 +09:00
proclist.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
proclist_types.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
procsignal.h Add function to log the memory contexts of specified backend process. 2021-04-06 13:44:15 +09:00
reinit.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
relfilenode.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
s_lock.h Add RISC-V spinlock support in s_lock.h. 2021-08-13 13:59:43 -04:00
sharedfileset.h Refactor sharedfileset.c to separate out fileset implementation. 2021-08-30 08:48:15 +05:30
shm_mq.h shm_mq: Update mq_bytes_written less often. 2021-10-14 16:13:36 -04:00
shm_toc.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
shmem.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
sinval.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
sinvaladt.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
smgr.h Optimize DropRelFileNodeBuffers() for recovery. 2021-01-12 07:45:40 +05:30
spin.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
standby.h Use full 64-bit XIDs in deleted nbtree pages. 2021-02-24 18:41:34 -08:00
standbydefs.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
sync.h Run checkpointer and bgwriter in crash recovery. 2021-08-02 17:32:44 +12:00