Cassandra内存配置

时间:2013-01-14 14:34:02

标签: cassandra

我们目前正在评估使用Apache Cassandra 1.2作为大规模数据处理解决方案。由于我们的应用程序是读取密集型的,并且为用户提供尽可能快的响应时间,因此我们希望配置Apache Cassandra以将所有数据保存在内存中。

是否足以在所有列族上将存储选项缓存设置为rows_only并为每个Cassandra节点提供足够的内存来保存其数据部分?或者Cassandra还有其他可能性吗?

2 个答案:

答案 0 :(得分:9)

读取性能调优比写入复杂得多。根据我的经验,您可以考虑一些因素。某些观点与内存无关,但它们也有助于提高读取性能。

1. 行缓存:避免磁盘命中,但仅在不经常更新行时启用它。您还可以启用堆外行缓存以减少JVM堆的使用。

2. 密钥缓存:默认情况下启用,无需禁用它。当没有命中行缓存时,它可以避免磁盘搜索。

3. 降低memtable flush的频率:调整memtable_total_space_in_mb,commitlog_total_space_in_mb,flush_largest_memtables_at

4. 使用LeveledCompactionStrategy :避免跨多个SSTable传播一行。

答案 1 :(得分:1)

DataStax在最新版本的基于Apache Cassandra的NoSQL数据库中添加了内存计算功能,作为提高在线应用程序性能的一部分。

参考:

http://www.datastax.com/2014/02/welcome-to-datastax-enterprise-4-0-and-opscenter-4-1