Re: Conflict Detection and Resolution

From: Ajin Cherian <itsajin(at)gmail(dot)com>
To: shveta malik <shveta(dot)malik(at)gmail(dot)com>
Cc: Nisha Moond <nisha(dot)moond412(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Jan Wieck <jan(at)wi3ck(dot)info>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com>
Subject: Re: Conflict Detection and Resolution
Date: 2024-07-26 04:20:01
Message-ID: CAFPTHDbfEGJrL_063JC=qrxJLzN60CQZ=wv0yB8BYYBuiqa6BA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Jul 17, 2024 at 4:01 PM shveta malik <shveta(dot)malik(at)gmail(dot)com> wrote:

>
> Please find v6 patch-set. Changes are:
>
>
> Please find v7 patch-set, the changes are:

Patch 0001 - Reflects v5 of Conflict Detection patch in [1].

Patch 0002:

a) Removed global CONFLICT RESOLVER syntax and logic.
b) Added new syntax for creating CONFLICT RESOLVERs at the subscription
level.

Syntax for CREATE SUBSCRIPTION:

CREATE SUBSCRIPTION <subname> CONNECTION <conninfo> PUBLICATION <pubname>
CONFLICT RESOLVER
(conflict_type1 = resolver1, conflict_type2 = resolver2, conflict_type3 =
resolver3, ...);
Syntax for ALTER SUBSCRIPTION:

ALTER SUBSCRIPTION <subname> CONFLICT RESOLVER
(conflict_type1 = resolver1, conflict_type2 = resolver2, conflict_type3 =
resolver3, ...);

Patch 0003 - Supports subscription-level resolvers for conflict resolution.

Patch 0004 - Modified last_update_win related test cases to reflect the new
syntax.

Patch 0005 - Dropped for the time being; will rebase and post in the next
version.

Thanks to Shveta for design discussions and thanks to Nisha for helping in
rebasing the patch and helping in testing and stabilizing the patch by
providing comments off-list.

[1] -
https://www.postgresql.org/message-id/OS0PR01MB57166C2566E00676649CF48B94AC2@OS0PR01MB5716.jpnprd01.prod.outlook.com

Attachment Content-Type Size
v7-0002-Add-CONFLICT-RESOLVERS-into-the-syntax-for-CREATE.patch application/octet-stream 35.6 KB
v7-0003-Conflict-resolvers-for-insert-update-and-delete.patch application/octet-stream 55.8 KB
v7-0001-Detect-and-log-conflicts-in-logical-replication.patch application/octet-stream 98.8 KB
v7-0004-Manage-Clock-skew-and-implement-last_update_wins.patch application/octet-stream 49.2 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Yugo Nagata 2024-07-26 04:22:24 Re: First draft of PG 17 release notes
Previous Message shveta malik 2024-07-26 04:09:22 Re: Conflict detection and logging in logical replication