我们目前评估了ApacheCassandra1.2作为大规模数据处理解决方案的使用情况。由于我们的应用程序是读密集型的,并且为了给用户提供最快的响应时间,我们希望配置Apache来将所有数据保存在内存中。
是否足以在所有列家族中将存储选项缓存设置为rows_only,并为每个Cassandra节点提供足够的内存来保存其数据部分?还是卡桑德拉还有其他的可能性?
发布于 2013-04-25 08:35:29
读性能调优比写要复杂得多。根据我的经验,有一些因素你可以考虑。有些观点与内存无关,但它们也有助于提高读取性能。
1.行缓存:避免磁盘命中,但只有在不频繁更新行时才启用它。您还可以启用离堆行缓存,以减少JVM堆的使用。
2.密钥缓存:默认启用,不需要禁用它。它避免在未命中行缓存时进行磁盘搜索。
3.降低可记忆刷新的频率:调整memtable_total_space_in_mb,commitlog_total_space_in_mb,flush_largest_memtables_at
4.使用 LeveledCompactionStrategy:避免跨多个SSTables分散一行。
发布于 2014-02-27 05:19:46
DataStax在其基于Apache Cassandra的NoSQL数据库的最新版本中增加了内存中的计算功能,作为提高在线应用程序性能的努力的一部分。
参考:
http://www.datastax.com/2014/02/welcome-to-datastax-enterprise-4-0-and-opscenter-4-1
https://stackoverflow.com/questions/14320438
复制相似问题