Cassandra使用LSM树进行存储,但是cassandra的索引结构到底是什么?例如,Mongo和Couchbase都使用BTree。
发布于 2017-01-20 15:57:45
这取决于你实际使用的卡桑德拉版本。
对于3.4之前的版本,索引是作为隐藏的Cassandra表实现的,该表保存希望访问的数据的键值。这种策略的主要缺点是,由于SStables受到压缩,您不能直接引用数据,而是给您一个键,并且您必须再次遍历读取路径。
在3.4版中,他们引入了SASI索引(SSTable附加辅助索引)。基本上,索引的一部分与每个SStable相关联,因此与它一起分布。这意味着您可以实际使用引用来访问数据,而不是为另一个读取路径付费。在实现方面,它们是b-树。
这里是关于这个主题的一个非常有用的资源。
https://stackoverflow.com/questions/41759807
复制相似问题