Details
-
Bug
-
Resolution: Fixed
-
Blocker
-
3.0.x, 3.1.x, 4.1, 4.5
-
*Location*: http://developer.couchbase.com/documentation/server/current/architecture/high-availability-replication-architecture.html
*User-Agent*: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
*Screen Resolution*: 2560 x 1440
*Location*: http://developer.couchbase.com/documentation/server/current/architecture/high-availability-replication-architecture.html *User-Agent*: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 *Screen Resolution*: 2560 x 1440
Description
By default XDCR fetches metadata twice from every document before it replicates the document at a destination cluster.
...
Once the document reaches the destination, this cluster will request metadata once again to confirm the document on the destination has not changed since the initial check.
This is not technically true, XDCR actually only fetches the metadata a single time to perform the conflict resolution (if necessary) on the source side of the replication.
It uses the command 'setWithMeta' to send the data to the remote cluster if it decides that it 'wins' the conflict resolution; this command has its own conflict resolution built-in.
A more suitable replacement for these sentences would be:
By default XDCR fetches metadata once for every document that it replicates, before it replicates the document to the destination cluster.
...
Once the replicated document reaches the destination, conflict resolution will be performed again by the remote cluster to ensure that the correct document 'wins'. This is to ensure that the correct version of the document 'wins' even if the document on the remote cluster has changed since the initial replication from the source cluster.