From: | Nisha Moond <nisha(dot)moond412(at)gmail(dot)com> |
---|---|
To: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
Cc: | shveta malik <shveta(dot)malik(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-06-27 03:14:02 |
Message-ID: | CABdArM6_G5_YAAccCtp71OQQmYrNK6dMxwC6C_BkUvy+NjLZWA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Please find the attached 'patch0003', which implements conflict
resolutions according to the global resolver settings.
Summary of Conflict Resolutions Implemented in 'patch0003':
INSERT Conflicts:
------------------------
1) Conflict Type: 'insert_exists'
Supported Resolutions:
a) 'remote_apply': Convert the INSERT to an UPDATE and apply.
b) 'keep_local': Ignore the incoming (conflicting) INSERT and retain
the local tuple.
c) 'error': The apply worker will error out and restart.
UPDATE Conflicts:
------------------------
1) Conflict Type: 'update_differ'
Supported Resolutions:
a) 'remote_apply': Apply the remote update.
b) 'keep_local': Skip the remote update and retain the local tuple.
c) 'error': The apply worker will error out and restart.
2) Conflict Type: 'update_missing'
Supported Resolutions:
a) 'apply_or_skip': Try to convert the UPDATE to an INSERT; if
unsuccessful, skip the remote update and continue.
b) 'apply_or_error': Try to convert the UPDATE to an INSERT; if
unsuccessful, error out.
c) 'skip': Skip the remote update and continue.
d) 'error': The apply worker will error out and restart.
DELETE Conflicts:
------------------------
1) Conflict Type: 'delete_missing'
Supported Resolutions:
a) 'skip': Skip the remote delete and continue.
b) 'error': The apply worker will error out and restart.
NOTE: With these basic resolution techniques, the patch does not aim
to ensure consistency across nodes, so data divergence is expected.
--
Thanks,
Nisha
Attachment | Content-Type | Size |
---|---|---|
v1-0002-DDL-command-to-configure-Global-Conflict-Resolver.patch | application/octet-stream | 21.1 KB |
v1-0001-Detect-and-log-conflicts-in-logical-replication.patch | application/octet-stream | 89.1 KB |
v1-0003-Implement-conflict-resolution-for-INSERT-UPDATE-a.patch | application/octet-stream | 34.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Yugo NAGATA | 2024-06-27 03:14:25 | Re: Document NULL |
Previous Message | Amit Kapila | 2024-06-27 03:08:27 | Re: long-standing data loss bug in initial sync of logical replication |