不增加cassandra列系列对堆利用率的影响是什么?

时间:2012-06-22 06:57:27

标签: performance jvm cassandra

我们正在使用cassandra-1.1。

出于某些优化目的,我们决定在键空间中增加列族数。

它会对堆利用率产生什么影响吗?

Cassandra是否有可能耗尽内存?

2 个答案:

答案 0 :(得分:0)

最新版本的Cassandra为每个列族在堆上分配至少1MB,因此您可以将其视为堆消耗的下限。 Bloom过滤器也占用堆空间,这种方式不一定取决于您使用列族的数量。

您是在谈论从5到10个列系列?还是10到1000?你肯定可以用尽10或1000列系列的堆空间,它只取决于你插入数据的速度。

答案 1 :(得分:0)

根据Cassandra Wiki,“每个节点”消耗的堆大小定义为: memtable_throughput_in_mb * 3 *热门CF + 1G +内部缓存数量 (参考:MemtableThresholds

所以回答第一个问题: 它会对堆利用率产生影响吗? 是。

关于q2,我坚信OOM不可能有最新版本。正如您提到的Cassandra 1.1版,每个CF配置memtable_throughput_in_mb被全局内存配置 - memtable_total_space_in_mb取代。此配置相当于 - memtable_throughput_in_mb *热CF的数量,在上面提到的公式中。这可确保JVM堆大小不随CF的数量而扩展,并始终由全局配置保护。