Re: [PATCH] Use indexes on the subscriber when REPLICA IDENTITY is full on the publisher

Dilip Kumar <dilipbalaut@gmail.com>

From: Dilip Kumar <dilipbalaut@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Önder Kalacı <onderkalaci@gmail.com>, "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>, "shiy.fnst@fujitsu.com" <shiy.fnst@fujitsu.com>, "wangw.fnst@fujitsu.com" <wangw.fnst@fujitsu.com>, Marco Slot <marco.slot@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@anarazel.de>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-03-06T13:55:37Z
Lists: pgsql-hackers
On Mon, Mar 6, 2023 at 4:45 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> On Mon, Mar 6, 2023 at 4:18 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> >
> > On Mon, Mar 6, 2023 at 2:38 PM Önder Kalacı <onderkalaci@gmail.com> wrote:
> > >
> > I was going through the thread and patch,  I noticed that in the
> > initial version, we were depending upon the planner to let it decide
> > whether index scan is cheaper or not and which index to pick.  But in
> > the latest patch if a useful index exists then we chose that without
> > comparing the cost of whether it is cheaper than sequential scan or
> > not.  Is my understanding correct?  What is the reason for the same,
> >
>
> Yes, your understanding is correct. The main reason is that we don't
> have an agreement on using the internal planner APIs for apply. That
> will be a long-term maintenance burden. See discussion around email
> [1]. So, we decided to use the current infrastructure to achieve index
> scans during apply when publisher has replica identity full. This will
> still be win in many cases and we are planning to provide a knob to
> disable this feature.
>
> [1] - https://www.postgresql.org/message-id/3466340.1673117404%40sss.pgh.pa.us

Okay, this makes sense, so basically, in "replica identify full" case
instead of doing the default sequence scan we will provide a knob to
either choose index scan or sequence scan, and that seems reasonable
to me.

-- 
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com



Commits

  1. Add the testcases for 89e46da5e5.

  2. Allow the use of indexes other than PK and REPLICA IDENTITY on the subscriber.

  3. Rework query relation permission checking

  4. Generalize ri_RootToPartitionMap to use for non-partition children

  5. Add wait_for_subscription_sync for TAP tests.

  6. Logical replication