Merging Bins during XDR?

xdr

#1

Hi, Looks like Bins in the record are quite isolated. Do I understand correctly that during XDR bins would be merged ? Or value integrity is supposed to be primary, and after XDR only one set of bins would be picked as final value base on generation ? let me clarify my question within example: D1: Key -> (Bin1 -> v1, Bin2 -> v2) (generation 100) D2: Key -> (Bin2 -> v22, Bin3 -> v3) (generation 200) What will be the result after XDR ? Option1: Key -> (Bin1 -> v1, Bin2 -> v22, Bin3 -> v3) (bin sets are merged) Option2: Key -> (Bin2 -> v22, Bin3 -> v3) (conflict detected and higher generation value for entire Key is picked as result)ю Thanks !


#2

For server ver 3.8.3+, see http://www.aerospike.com/docs/reference/configuration#xdr-ship-bins

Per FAQ - Some common questions on XDR

  1. If I see generation count to be the same in both the source cluster and destination cluster, who wins: XDR or local cluster?

XDR does not do the write with a generation check by default. So, whenever the XDR from a source does a write to it’s destination, it will overwrite the local copy (updating the meta-data of the record like TTL etc). XDR version 3.8.3 and above support a configuration to only ship the bins that have been updated. See xdr-ship-bins for more details. Older versions of XDR (prior to 3.8) had a configuration which would force XDR writes with generation check (xdr-forward-with-gencheck) when set to true. However, there are complications with using the gencheck in some scenarios including cases with deletes and re-creation of records so this configuration option has been deprecated.