我在读一篇关于卡桑德拉修缮的文章,上面说
比较从merkle树的顶部节点开始。如果未检测到差异,则进程前进到左侧子节点并进行比较,然后是右侧子节点。
但是,merkle树的非叶节点表示:
树中较高的每个父节点是其各自子节点的散列。由于merkle树中较高的节点表示树下更远的数据,casandra可以独立检查每个分支,而不需要协调节点下载整个数据集。
根据这一点,以及我发现的其他数据结构文章,它们都表明只有当两个merkle树的根不同时,才能进行比根更深的以下比较。我不确定文档是否正确地描述了它,我可能理解了一些错误,或者它确实有错误?
最佳答案
数据税文档中存在错误。
有一个很好的解释可以解释merkle tree的比较:
http://distributeddatastore.blogspot.co.il/2013/07/cassandra-using-merkle-trees-to-detect.html
许多最终一致性数据库使用merkle树进行反熵。您可以在riak/dynamodb文档中查看文档并对其进行解释。