basho/riak_kv — pull request #814 by russelldb (2014-01-23 18:58:55+00:00)
Title: Fix DVV merge to handle "skewed dots"

A "skewed dot" is any pair of dots that have the same actor and
counter, but a different timestamp (technically, they can have the
same timestamp too) and a different riak object contents.

To ensure that we don't drop both dots we use only the {actor, count}
pair as a key for drop candidates, and keep _both_ dotted values if
the {actor, count} are the same. In the normal case the value will
be the same, and collection the dotted values in set de-dupes them.

NOTE: causality in Riak can be very odd, where vclocks with the
same actors, count, tinestamp entries can denote different
causal histories.