假设只有一个节点有R行。基本Cassandra操作的理论时间复杂度是多少?
更具体地说,我想知道:
key = item
。我认为它是O(log(R))
是不是?key > item
,即切片。 C *会获取所有R行来判断条件是否满足,这会导致O(R)
?有序行怎么样?key > 10 AND key < 12
。 C *会先选择匹配key > 10
的所有匹配项,然后使用key < 12
进行过滤吗?或者C *会将它们组合成一个查询条件吗?答案 0 :(得分:0)
您没有说明您的意思是读取还是写入,尽管您似乎在谈论读取操作。 Cassandra 中的读取路径使用不同的读取缓存、布隆过滤器和不同的压缩策略(STCS、LTCS、TWCS)对磁盘上的数据结构进行了高度优化。数据以一个或多个 SSTable 写入磁盘,墓碑的存在会降低读取性能,有时会显着降低。
Cassandra 架构旨在随着数据量的增长提供线性可扩展性。随着行数 R 变大,只有单个节点的前提将成为读取延迟的主要限制因素。