[Bucardo-general] Specific code or trigger to avoid race condition during row deletion in multimaster mode

sym39 marechal.sylvain2 at gmail.com
Thu Jan 22 17:09:34 UTC 2015


Le 22/01/2015 15:59, Greg Sabino Mullane a écrit :
>> - All tables are updated by A, and no table are updated by B
>> *except* the field "state" of the table "Events" that may be written
>> by B too.
> ...
>> I see the following solution to avoid the line "re"creation:
>> 1) Change the application design to avoid machine B updating the
>> Event table. But this is hard to change.
>> 2) Instruct bucardo not to consider the "state"field when filling
>> the delta table
> It's not perfectly clear what your requirements are. When A goes down,
> do you want B to start recording all rows, including "state" changes?

Yes this it the case.

The problem is really that the table Events mixes static information 
that does not change over time and dynamic information that often changes.
In fact, only static information matters (from 'replication' point of 
view), so it is finally better to break the table in two parts, where 
the dynamic part does not need to be replicated.

As a consequence, there is no need to create custom trigger and / or to 
change/switch the sync configuration from source to target and vice 
versa, no more race condition.

So even if harder, after reflexion, the 1) solution is finally the 
cleaner solution for me.

Thanks and regards
Sylvain


More information about the Bucardo-general mailing list