Cassandra用于行缓存的内存是什么?

时间:2013-07-26 14:39:59

标签: java configuration cassandra heap-memory

它是使用堆内存还是剩余的服务器内存?

我有一台32 GB RAM的服务器,我使用25 GB MAX_HEAP_SIZE初始化了Cassandra,并指定了20 GB的行缓存容量。

我是否正确地假设行缓存使用堆内存我初始化了进程?或者我的配置是否期望服务器至少有45 GB的内存?

2 个答案:

答案 0 :(得分:3)

This row key documentation表示有两个实际的row_cache_provider实现:

  

SerializingCacheProvider:序列化行的内容和   将其存储在本机内存中,即关闭JVM堆

  

ConcurrentLinkedHashCacheProvider:使用JVM堆缓存行 ,   提供与0.8之前的Cassandra版本相同的行缓存行为。

默认为 SerializingCacheProvider ,因此如果您不更改它,行缓存不会使用JVM堆内存。

答案 1 :(得分:0)

查看源代码,行缓存是一个ICache,根据它作为一个对象放在堆上而无需特殊处理。

您可以执行进一步的测试以确定真实的性能和内存处理。