-1

我需要详细了解如何在 Cassandra 中设计高效的数据结构。是否有了解 Cassandra 数据结构的在线演示或教程?我需要能够设计列族及其列和有效负载,并查看一些具体的、有形的示例。如果有人能推荐一个允许我这样做的来源,我将不胜感激。

4

1 回答 1

0

在构成 Cassandra 代码库的数千个类中,我怀疑 C* 的性能可以归因于单个数据结构。这个主题对于单个在线演示来说有点复杂,但是......

有什么比源代码更好的源代码...开始查看代码并检查使用了哪些数据结构。内存中的数据存储在称为 memtable 的东西中,它是一个排序的字符串表 (sstable)。然后将内存中的数据刷新到磁盘并再次存储在 sstables 中。这个SO question在二进制尝试和 sstables 之间进行了比较,以在 dB 中索引列。

我发现另一个有趣的数据结构是 merkle 树,在修复过程中使用。这是一个散列二叉树。使用 merkle 树有许多优点和缺点,但主要优点(我猜是缺点)是它减少了需要通过线路传输多少数据以进行修复(也称为树同步),但需要牺牲本地 io用于计算树的哈希值。在这个SO 答案中阅读更多详细信息,并在wikipedia上阅读有关默克尔树的信息。在dynamo 论文的 4.6 和 4.7 节中也有很好的描述如何在修复过程中使用 merkle 树。

于 2013-07-31T05:46:10.530 回答