行缓存和分区键缓存有什么区别?我是否需要同时使用两者才能获得良好的表现.
我已经从dataStax网站上阅读了基本定义
分区键高速缓存是Cassandra表的分区索引的高速缓存.使用密钥缓存而不是依赖OS页面缓存可以节省CPU时间和内存.但是,仅启用密钥缓存会导致磁盘(或OS页面缓存)活动实际读取请求的数据行.
行缓存类似于传统缓存,如memcached.访问行时,整行将被拉入内存,必要时从多个SSTable合并并缓存,以便可以满足对该行的进一步读取而无需访问磁盘.
任何人都可以详细说明使用领域.确实需要同时实现两者.?
Rus*_*ssS 11
TL; DR:你想使用密钥缓存,很可能不想要行缓存.
密钥缓存有助于C*知道特定分区在SStables中的起始位置.这意味着C*不必读取任何内容来确定在文件中寻找的正确位置以开始读取行.这几乎适用于所有用例,因为它可以通过在读取路径中消除对IOP的需求来显着加快读取速度.
行缓存具有更有限的用例.行缓存将整个分区拉入内存.如果已修改该分区的任何部分,则该行的整个缓存将失效.对于大型分区,这意味着缓存可以经常缓存并使大块内存无效.因为您确实需要大多数静态分区才有用,对于大多数用例,建议您不要使用行缓存.
| 归档时间: |
|
| 查看次数: |
4133 次 |
| 最近记录: |