Use streaming read I/O in VACUUM's third phase
authorMelanie Plageman <melanieplageman@gmail.com>
Fri, 14 Feb 2025 17:57:03 +0000 (12:57 -0500)
committerMelanie Plageman <melanieplageman@gmail.com>
Fri, 14 Feb 2025 17:57:49 +0000 (12:57 -0500)
commitc3e775e608f2a6d0bcfba147bf08a506827cc567
treedb91ab96dc2230c2423b00301623274d9bef916a
parent9256822608f3b0636cfd88c3436cdceda7003cf3
Use streaming read I/O in VACUUM's third phase

Make vacuum's third phase (its second pass over the heap), which reaps
dead items collected in the first phase and marks them as reusable, use
the read stream API. This commit adds a new read stream callback,
vacuum_reap_lp_read_stream_next(), that looks ahead in the TidStore and
returns the next block number to read for vacuum.

Author: Melanie Plageman <melanieplageman@gmail.com>
Co-authored-by: Thomas Munro <thomas.munro@gmail.com>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Discussion: https://postgr.es/m/CA%2BhUKGKN3oy0bN_3yv8hd78a4%2BM1tJC9z7mD8%2Bf%2ByA%2BGeoFUwQ%40mail.gmail.com
src/backend/access/heap/vacuumlazy.c