Cassandra访问算法(和代价)的聚类密钥



在大多数关于Cassandra的文档中,我读到这些表可以被认为是:

Map<PrimaryKey, SortedMap<ClusteringKey>>

因此,我希望PrimaryKey的访问类似于O(logn(。但是ClustringKey呢(很明显,当在查询中也指定了PrimaryKey时(?

我的意思是:搜索

where primarykey=someval and clusteringkey=some_clustering_val 

无论"anotherval"值是在基于clusteringkey排序的行的末尾还是开头,它都会是O(logn(+O(log n(吗?

我找不到关于如何从行中实际提取数据的适当文档。。。

读取路径在DSE的体系结构指南中有描述。

这里有多种因素会影响数据访问成本(仅列出其中一些(:

  • 分区通常在多个SSTables之间划分-当您执行更新、插入不同的聚类键等时。只有当压缩过程将数据移动到单个SSTables中时,它才会变成您所描述的结构
  • 数据以压缩的形式存储——您需要解压缩整个数据块以访问特定集群列的数据

最新更新