卡桑德拉的指数结构是什么



Cassandra使用LSM树进行存储,但Cassandra的索引结构究竟是什么?例如Mongo和Couchbase都使用BTree。

这取决于您实际使用的Cassandra版本。

对于3.4之前的版本,索引被实现为隐藏的Cassandra表,其中包含您希望访问的数据的键值。这种策略的主要缺点是,由于SStables要进行压缩,所以您不能直接引用数据,相反,您会得到一个键,并且您必须再次通过读取路径。

在3.4版中,他们引入了SASI索引(SSTable Attached Secondary indexes)。基本上,索引的一部分与每个SStable相关,因此与之一起分发。这意味着你实际上可以使用引用来访问数据,而不是为另一个读取路径付费。就实现而言,它们是b-tree。

这是关于这个主题的一个非常有用的资源。

最新更新