On Thu, Mar 12, 2026 at 9:13 PM Peter Geoghegan <[email protected]> wrote: > I'm trying to be practical here. I want to design a solution > compatible with the changes that we're making to the table AM > interface. That fixes Mark's complaint. Ideally, this should avoid > adding much new code to hot code paths. Any design that meets those > goals is acceptable to me.
The latest version of the index prefetching patch set has a new patch for this: https://postgr.es/m/cah2-wzkztkduyvfszlwpjesf9ps5e8m0ua+344bx-b-zfa5...@mail.gmail.com My original proposal involved wholly replacing VISITED_PAGES_LIMIT; my new approach complements it by specifically targeting its one major weakness. A new INDEX_PAGES_LIMIT mechanism will only tally index leaf page reads that return zero matching items to the table AM, and will only give up when that count reaches 3. VISITED_PAGES_LIMIT itself works as before. Importantly, this allows VISITED_PAGES_LIMIT to work exactly the same way on standbys as it does today. During hot standby, LP_DEAD bits cannot be set or used to avoid heap fetches. As long as each leaf page returns at least one match (which could still be a TID pointing to a dead heap tuple), nothing changes -- INDEX_PAGES_LIMIT does nothing new, we rely on VISITED_PAGES_LIMIT in the traditional way. -- Peter Geoghegan
