When there are multiple primaries, remote updates should be designed so that they do not introduce errors resulting from simultaneous requests to update the same information from multiple remote sites.
If updates from two different sites conflict when they are applied at a primary site, one of the updates will be rejected, and the replicated data at the site where the update was rejected will be inconsistent with primary data.
To handle inter-site concurrency conflicts when there are multiple primaries, follow these guidelines:
When each row has an owner – design the application so that inter-site conflicts are impossible. For example, restrict the updates performed at one site to rows that cannot be updated by clients at other sites. This guarantees that updates will not conflict at the primary site.
When there is no segmentation of ownership – add version control information to function strings to allow conflicts to be detected and handled.