Appears in
Proceedings of the 23rd IEEE International Conference on
Distributed Computing Systems (ICDCS '03)
We introduce the hash history mechanism for capturing
dependencies among distributed replicas. Hash histories, consisting of
a directed graph of version hashes, are independent of the number of
active nodes but dependent on the rate and number of modifications. We
present the basic hash history scheme and discuss mechanisms for
trimming the history over time. We simulate the efficacy of hash
histories on several large CVS traces. Our results highlight a useful
property of the hash history: the ability to recognize when two
different non-commutative operations produce the same output, thereby
reducing false conflicts and increasing the rate of convergence. We
call these events coincidental equalities and demonstrate that
their recognition can greatly reduce the time to global convergence.