Re: Conflict Detection and Resolution - Mailing list pgsql-hackers
From | Masahiko Sawada |
---|---|
Subject | Re: Conflict Detection and Resolution |
Date | |
Msg-id | CAD21AoD3U8Kb1OhK=Nrb8+cB--98tE-72Cxd4MND3iwHg5L5Bw@mail.gmail.com Whole thread Raw |
In response to | Re: Conflict Detection and Resolution (shveta malik <shveta.malik@gmail.com>) |
Responses |
Re: Conflict Detection and Resolution
|
List | pgsql-hackers |
On Thu, Jun 27, 2024 at 1:50 PM shveta malik <shveta.malik@gmail.com> wrote: > > On Wed, Jun 26, 2024 at 2:33 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > > > On Tue, Jun 25, 2024 at 3:39 PM shveta malik <shveta.malik@gmail.com> wrote: > > > > > > On Tue, Jun 25, 2024 at 3:12 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > > > > > > > On Mon, Jun 24, 2024 at 1:47 PM shveta malik <shveta.malik@gmail.com> wrote: > > > > > > > > > > On Thu, Jun 20, 2024 at 6:41 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > > > > > > > > > > > >> In the second patch, we can implement simple built-in resolution > > > > > > >> strategies like apply and skip (which can be named as remote_apply and > > > > > > >> keep_local, see [3][4] for details on these strategies) with ERROR or > > > > > > >> LOG being the default strategy. We can allow these strategies to be > > > > > > >> configured at the global and table level. > > > > > > > > > > Before we implement resolvers, we need a way to configure them. Please > > > > > find the patch002 which attempts to implement Global Level Conflict > > > > > Resolvers Configuration. Note that patch002 is dependent upon > > > > > Conflict-Detection patch001 which is reviewed in another thread [1]. > > > > > I have attached patch001 here for convenience and to avoid CFBot > > > > > failures. But please use [1] if you have any comments on patch001. > > > > > > > > > > New DDL commands in patch002 are: > > > > > > > > > > To set global resolver for given conflcit_type: > > > > > SET CONFLICT RESOLVER 'conflict_resolver' FOR 'conflict_type' > > > > > > > > > > To reset to default resolver: > > > > > RESET CONFLICT RESOLVER FOR 'conflict_type' > > > > > > > > > > > > > Does setting up resolvers have any meaning without subscriptions? I am > > > > wondering whether we should allow to set up the resolvers at the > > > > subscription level. One benefit is that users don't need to use a > > > > different DDL to set up resolvers. The first patch gives a conflict > > > > detection option at the subscription level, so it would be symmetrical > > > > to provide a resolver at the subscription level. Yet another benefit > > > > could be that it provides users facility to configure different > > > > resolvers for a set of tables belonging to a particular > > > > publication/node. > > > > > > There can be multiple tables included in a publication with varying > > > business use-cases and thus may need different resolvers set, even > > > though they all are part of the same publication. > > > > > > > Agreed but this is the reason we are planning to keep resolvers at the > > table level. Here, I am asking to set resolvers at the subscription > > level rather than at the global level. > > Okay, got it. I misunderstood earlier that we want to replace table > level resolvers with subscription ones. > Having global configuration has one benefit that if the user has no > requirement to set different resolvers for different subscriptions or > tables, he may always set one global configuration and be done with > it. OTOH, I also agree with benefits coming with subscription level > configuration. Setting resolvers at table-level and subscription-level sounds good to me. DDLs for setting resolvers at subscription-level would need the subscription name to be specified? And another question is: a table-level resolver setting is precedent over all subscriber-level resolver settings in the database? Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com
pgsql-hackers by date: