This improvement will add an option to optimistically send mutations to the destination without first doing a look-up to see if the mutation is needed on the other side. (without issuing a getwithmeta() ) . This aims to improve XDCR latency by removing the first metadata lookup. getwithmeta() can be a fairly expensive operation given that it may need a disk fetch.
Users can turn on this optimization using a REST API. We can also have a setting on the UI. Based on performance tests and amount of additional bandwidth required, "latency-optimized XDCR" can be the default setting.
New REST API will be added as an ns_server parameter. The UI group will work to expose this parameter as a selection "latency-optimized XDCR" or "bandwidth-optimized XDCR" to UI so users can choose appropriate mode when creating replication on UI.
Today source need ask destination a question "do you really need this document" before indeed sending the doc, resulting in getMeta() op to remote cluster.
Conflict resolution will still be performed on the destination node when the document arrives. There are a couple of downsides of this feature, if it is used incorrectly. For example it may waste some bandwidth/CPU cycles. You may send a big chunk of document to remote cluster even when it is not needed.