Thread: BDR Consistency in Insert/Update pkey conflicts
I'm curious to know what the expected behavior is for an insert / update conflict on a primary key field.
The wiki suggested "divergence conflicts" would be logged and replication would halt for the downstream master. There is a case where the databases "diverge" such that they are no longer consistent, and where no error is logged and replication continues.
The test case is summarized as inserting a record on a first node with pkey='x'. After this record propagates, then insert a record with a different node with pkey='y', and at the same time update the first node's record to change the key to 'y'. Depending on timing, the result is that the first node will only have a single record, while the other nodes will have an x and y record.
The full test case is at: https://github.com/no0p/bdrlab/blob/master/bdrsuite/tests/conflicts/insert_update_conflict.rb
Is this considered a divergence conflict and what is the expected behavior for this case?
Also is there is a published list of conditions where masters can become inconsistent and that is expected behavior -- or should that never happen?
Best Regards,
Robert