postgresql/src/backend/access
David Rowley 4830f10243 Disable vacuum's use of a buffer access strategy during failsafe
Traditionally, vacuum always makes use of a buffer access strategy 32
buffers in size.  This means that running vacuums tend not to cause too
many shared buffers to become dirty, however, this can cause vacuums to
run much more slowly than they otherwise could as WAL flushes will occur
more frequently due to having to flush WAL out to the LSN of the dirty
page before that page can be written to disk.

When we are performing failsafe VACUUMs (as added in 1e55e7d17), we really
want to make the vacuum work go as quickly as possible, so here we disable
the buffer access strategy when entering failsafe mode while vacuuming a
relation.

Per idea and analyis from Andres Freund.

In passing, also include some changes I had intended for 32fbe0239.

Author: Melanie Plageman
Reviewed-by: Justin Pryzby, David Rowley
Discussion: https://postgr.es/m/20230111182720.ejifsclfwymw2reb%40awork3.anarazel.de
2023-04-03 23:05:58 +12:00
..
brin Add SysCacheGetAttrNotNull for guaranteed not-null attrs 2023-03-25 22:49:33 +01:00
common Save a few bytes in pg_attribute 2023-03-28 10:05:56 +02:00
gin Ignore BRIN indexes when checking for HOT updates 2023-03-20 11:02:42 +01:00
gist Add info in WAL records in preparation for logical slot conflict handling 2023-04-02 12:32:19 -07:00
hash Add info in WAL records in preparation for logical slot conflict handling 2023-04-02 12:32:19 -07:00
heap Disable vacuum's use of a buffer access strategy during failsafe 2023-04-03 23:05:58 +12:00
index Add SysCacheGetAttrNotNull for guaranteed not-null attrs 2023-03-25 22:49:33 +01:00
nbtree Add info in WAL records in preparation for logical slot conflict handling 2023-04-02 12:32:19 -07:00
rmgrdesc Update copyright for 2023 2023-01-02 15:00:37 -05:00
spgist Add info in WAL records in preparation for logical slot conflict handling 2023-04-02 12:32:19 -07:00
table Allow locking updated tuples in tuple_update() and tuple_delete() 2023-03-23 00:26:59 +03:00
tablesample Update copyright for 2023 2023-01-02 15:00:37 -05:00
transam pg_stat_wal: Accumulate time as instr_time instead of microseconds 2023-03-30 14:23:14 -07:00
Makefile Introduce access/{table.h, relation.h}, for generic functions from heapam.h. 2019-01-21 10:51:36 -08:00
meson.build Update copyright for 2023 2023-01-02 15:00:37 -05:00