1.Merkle Tree原理
Merkle Tree是Dynamo中用来在多个节点之间同步数据集合一致性的算法,Merkle Tree是基于数据Hash构建的一个树。它具有以下几个特点:
(1)数据结构是一个树,可以是二叉树,也可以是多叉树。
(2)Merkle Tree的叶子节点的值是自己制定的,可以是数据集合的单元数据或者单元数据的hash。
(3)Merkle Tree非叶子节点的值是其所有子节点值的hash值。
为了更好的理解,我们假设有A和B两台机器,A与B相同目录下有8个文件,分别是f1,f2,f3...f8。这时候我们可以通过Merkle Tree来快速比较。假设在文件创建的时候每个机器都构建了一个Merkle Tree。