Cassandra集群密钥的访问算法(和成本)

时间:2018-07-09 07:26:58

标签: cassandra

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

Map<PrimaryKey, SortedMap<ClusteringKey>>

因此,我希望PrimaryKey进行的访问类似于O(log n)。 但是ClustringKey呢(很明显,在查询中还指定了PrimaryKey时)?

我的意思是:搜索

where primarykey=someval and clusteringkey=some_clustering_val 

无论“ anotherval”值是基于聚类键排序的行的结尾还是开头,都将是O(log n)+ O(log n)之类的东西吗?

我找不到有关如何实际从行中获取数据的适当文档...

1 个答案:

答案 0 :(得分:2)

例如,在DSE's Architecture guide中描述了读取路径。

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

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