Re: Problems with get_actual_variable_range's VISITED_PAGES_LIMIT

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Jakub Wartak <jakub(dot)wartak(at)enterprisedb(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, MARK CALLAGHAN <mdcallag(at)gmail(dot)com>, Tomas Vondra <tomas(at)vondra(dot)me>
Subject: Re: Problems with get_actual_variable_range's VISITED_PAGES_LIMIT
Date: 2026-06-23 20:06:13
Message-ID: CAH2-WzmugSOCGw-+mjocGRXBbwSevjMJ41dLaF0ukJzUGEKF=Q@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Mar 12, 2026 at 9:13 PM Peter Geoghegan <pg(at)bowt(dot)ie> 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-zfA5kaw@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

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Bharath Rupireddy 2026-06-23 20:39:14 Re: [PATCH] Improving index selection for logical replication apply with replica identity full
Previous Message Zsolt Parragi 2026-06-23 20:05:20 Re: [PATCH] Add pg_get_table_ddl() to reconstruct CREATE TABLE statements