Cassandra 如何处理 select 查询?

How Cassandra Handle a select query?

我正在设计 Cassandra 列系列。

在加载更高密度的数据后,我在 SELECTing 时遇到了更高 GC 的情况。也就是说,分区中的数据量增加了。同样对于低密度数据,它工作正常。

我想知道 Cassandra 如何进行 SELECT 查询(同时指定了分区键和簇键)?

我们执行的时候,一个分区的全部数据是不是都加载到内存了SELECT?

分区键数量多会影响性能吗?

Cassandra 不会将整个分区加载到内存中,但会加载 IndexInfo 对象,帮助 Cassandra 在分区中找到相关的 CQL 行。这些是短暂的 java 对象,它们会产生相当大的堆压力(GC 暂停)——这是一个设计问题,将在 CASSANDRA-9754(称为 Birch,索引的 b 树实现)中解决数据结构)。

在 cassandra-4.0 发布之前,您应该将最大分区大小设为 100MB,并将较大的分区分成较小的部分。