From: | "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com> |
---|---|
To: | shveta malik <shveta(dot)malik(at)gmail(dot)com> |
Cc: | Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, vignesh C <vignesh21(at)gmail(dot)com>, Nisha Moond <nisha(dot)moond412(at)gmail(dot)com> |
Subject: | RE: Conflict detection for update_deleted in logical replication |
Date: | 2025-08-13 05:11:40 |
Message-ID: | OS0PR01MB5716789514235C2F2A17CACA942AA@OS0PR01MB5716.jpnprd01.prod.outlook.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tuesday, August 12, 2025 4:37 PM shveta malik <shveta(dot)malik(at)gmail(dot)com> wrote:
>
> On Mon, Aug 11, 2025 at 2:40 PM Zhijie Hou (Fujitsu)
> <houzj(dot)fnst(at)fujitsu(dot)com> wrote:
> >
> > I agree. So, following the above points and some off-list discussions,
> > I have revised the option to be a subscription option in the V60 version.
> >
>
> Thank You for the patches. Tried to test the new sub-level parameter, have few
> comments:
Thanks for the comments.
>
> 1)
> Let's say commit on pub is taking time and worker has stopped retention and
> meanwhile we alter max_conflict_retention_duration=0,
> then the expectation is immediately worker should resume retention.
> But it does not happen, it does not restart conflict-retention until the pub's
> commit is finished. The 'dead_tuple_retention_active'
> remains 'f' till then.
>
> postgres=# select subname, subretaindeadtuples, maxconflretention from
> pg_subscription order by subname; subname | subretaindeadtuples |
> maxconflretention
> ---------+---------------------+-------------------
> sub1 | t | 0
>
>
> postgres=# select subname, worker_type, dead_tuple_retention_active from
> pg_stat_subscription order by subname; subname | worker_type |
> dead_tuple_retention_active
> ---------+-------------+-----------------------------
> sub1 | apply | f
>
> I think we shall reset 'stop_conflict_info_retention' flag in
> should_stop_conflict_info_retention() if maxconflretention is 0 and the flag is
> originally true.
Agreed. Thinking more, I think we can resume retention at more places, as in
each phase, we could have a possibility of resuming, so changed.
> 2)
> postgres=# create subscription sub2 connection 'dbname=postgres
> host=localhost user=shveta port=5433' publication pub2 WITH
> (retain_dead_tuples = false, max_conflict_retention_duration=1000);
> NOTICE: created replication slot "sub2" on publisher CREATE
> SUBSCRIPTION
>
> Shall we give notice that max_conflict_retention_duration is ignored as
> retain_dead_tuples is false.
Agreed. In addition to this command, I added the NOTICE for all
the cases when the max_conflict_retention_duration is ineffective as
discussed[1].
>
> 3)
> When worker stops retention, it gives message:
>
> LOG: logical replication worker for subscription "sub1" will stop retaining the
> information for detecting conflicts
> DETAIL: The time spent advancing the non-removable transaction ID has
> exceeded the maximum limit of 100 ms.
>
> Will it be more informative if we mention the parameter name
> 'max_conflict_retention_duration' either in DETAIL or in additional HINT, as
> then the user can easily map this behaviour to the parameter configured.
Added.
Here is the V61 patch set which addressed above comments and the comment by Nisha[2].
[1] https://www.postgresql.org/message-id/CAJpy0uC81YgAmrA2ji2ZKbJK_qfvajuV6%3DyvcCWuFsQKqiED%2BA%40mail.gmail.com
[2] https://www.postgresql.org/message-id/CABdArM7G1sSDDOEC-nmJRnJMCZoBsLqOMz08UotX_h_wqxHWCg%40mail.gmail.com
Best Regards,
Hou zj
Attachment | Content-Type | Size |
---|---|---|
v61-0002-Resume-retaining-the-information-for-conflict-de.patch | application/octet-stream | 16.2 KB |
v61-0001-Introduce-a-max_conflict_retention_duration-opti.patch | application/octet-stream | 94.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Xuneng Zhou | 2025-08-13 05:33:26 | Re: Possible inaccurate description of wal_compression in docs |
Previous Message | shveta malik | 2025-08-13 04:47:23 | Re: Improve pg_sync_replication_slots() to wait for primary to advance |