Context: I am trying to implement Amazon Dynamo's Replica Synchronisation which uses Merkel Trees to detect divergence amongst replicas.
As mentioned in the web version of the paper here,
Dynamo uses Merkle trees for anti-entropy as follows: Each node maintains a separate Merkle tree for each key range (the set of keys covered by a virtual node) it hosts. This allows nodes to compare whether the keys within a key range are up-to-date. In this scheme, two nodes exchange the root of the Merkle tree corresponding to the key ranges that they host in common. Subsequently, using the tree traversal scheme described above the nodes determine if they have any differences and perform the appropriate synchronization action.
I do not understand what is meant by "the appropriate synchronisation action". By using the appropriate traversal, assume we found a discrepancy between two Merkel tree's root node - how would we know which one is the correct one? Do we always take the more updated one according to its logical clock time stamp?