On Fri, 21 Mar 2025 at 17:14, Matthias van de Meent <boekewurm+postg...@gmail.com> wrote: > Attached is v10, which polishes the previous patches, and adds a patch > for nbtree to use the new visibility checking strategy so that it too > can release its index pages much earlier, and adds a similar > visibility check test to nbtree.
And here's v12. v11 (skipped) would've been a rebase, but after finishing the rebase I noticed a severe regression in btree's IOS with the new code, so v12 here applies some optimizations which reduce the overhead of the new code. Given its TableAM api changes it'd be nice to have a review on 0001, though the additions could be rewritten to not (yet) add TableAMRoutine. I think patches 1, 2 and 3 are relevant to PG18 (as long as we don't have a beta, and this is only a bit more than a bugfix). Patch 4 is for PG19 to get btree to implement the new API, too, and patch 5 contains tests similar to the bitmap scan tests, validating that IOS doesn't block VACUUM but still returns correct results. I'll try to figure out a patch that's backpatchable, as alternative to patches 2 and 3, or at least for back-patching into PG17-. That will arrive separately, though. Kind regards, Matthias van de Meent Neon (https://neon.tech)
v12-0002-GIST-Fix-visibility-issues-in-IOS.patch
Description: Binary data
v12-0005-Test-for-IOS-Vacuum-race-conditions-in-index-AMs.patch
Description: Binary data
v12-0001-IOS-TableAM-Support-AM-specific-fast-visibility-.patch
Description: Binary data
v12-0004-NBTree-Reduce-Index-Only-Scan-pin-duration.patch
Description: Binary data
v12-0003-SP-GIST-Fix-visibility-issues-in-IOS.patch
Description: Binary data