5

我正在阅读有关 Cassandra 修复的文档,它说

比较从 Merkle 树的顶部节点开始。如果没有检测到差异,则该过程进行到左子节点并比较,然后是右子节点。

但是,Merkle 树的非叶子节点表示:

树中较高的每个父节点都是其各自子节点的散列。因为 Merkle 树中较高的节点代表树下的数据,Casandra 可以独立检查每个分支,而不需要协调节点下载整个数据集。

据此,以及我发现的其他数据结构文章,它们都表明只有在两棵 Merkle 树的根不同时才进行比根更深的比较。我不确定文档是否正确描述了我可能理解错误,或者它实际上有错误?

4

1 回答 1

6

Datastax 文档中有一个错误。

Merkle 树的比较有一个很好的解释:

http://distributeddatastore.blogspot.co.il/2013/07/cassandra-using-merkle-trees-to-detect.html

许多最终一致性数据库使用 Merkle 树进行反熵。您可以在 Riak/DynamoDB 文档中查看文档及其解释。

于 2017-06-28T07:05:51.087 回答