2013-03-01 89 views
3

随Cassandra 1.2.2提供的示例配置文件的row_cache_size_in_mb为0,它完全关闭行缓存。鉴于那行缓存has been touted as giving read performance gains,我很惊讶地预留了没有任何行缓存,甚至几十MB。卡桑德拉行缓存不值得

对于大多数场景,实际上行缓存是不是不再是值得吗?或者对于大多数场景来说它是不值得的?它只是worthwhile as a replacement for memcached

+0

行缓存可以使用大量的内存:http://stackoverflow.com/q/7979696/545127 – Raedwald 2013-03-01 15:55:32

回答

3

行缓存可以帮助从相对较小的列系列进行多次读取。尽管数据可能会存储在操作系统文件系统缓存中,但是从行缓存对象构建响应的CPU比缓存的SSTable要少。在我做的一些测试中,它从行缓存读取速度提高了30%,尽管这取决于您的数据模型。

行高速缓存的另一个用例是,您希望优先将高速缓存列族固定在高速缓存中,而不是依赖操作系统高速缓存策略。

但是,对于无法访问的CF,行缓存可能会降低性能。这可能是为什么它默认关闭。因此,只有在获得合理的命中率时才应使用行缓存。您可以从nodetool信息输出中检查此信息。

+1

“这是快30%”不是一个很大的进步的东西,可以是非常渴望记忆。 – Raedwald 2013-03-04 11:04:23