【问题标题】:Cassandra cache patterns with thiny and wide rowsCassandra 缓存模式与细而宽的行
【发布时间】:2012-03-28 16:31:24
【问题描述】:

我的用例预计读取负载很重 - 有两种可能的模型设计策略:

  1. 带有行缓存的小行:在这种情况下,行足够小以适合 RAM,并且所有列都被缓存。读取访问应该很快。

  2. 带有键缓存的宽行。具有大量列的宽行对于行缓存来说太大了。访问列子集需要 HDD 寻道。

据我了解,使用宽行是一种很好的设计模式。但是我们需要禁用行缓存 - 所以....这么宽的行有什么好处(至少对于读取访问)?

1 或 2 哪种方法更好?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    行缓存不需要提高读取性能。

    当禁用行缓存并启用键缓存时,Cassandra 将直接从 HDD 读取数据,直接跳转到右偏移量(基于键缓存)。在这种情况下,操作系统将缓存 HDD 访问。

    Cassandra 将文件作为虚拟文件打开 - 在这种情况下,文件被处理为“从内存读取”,实际上第一次读取进入 HDD,第二次读取从 RAM 提供。只有已经访问过的文件部分被加载到 RAM 中(加上预读 128kb)

    我的负载测试(3 台服务器,8 核氙气,24GB RAM,Cassandra 中的 60GB 数据)表明,行缓存和文件系统缓存具有相似的性能 - 操作系统缓存导致 CPU 负载较低

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 2017-01-29
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-24
      • 2014-08-06
      • 1970-01-01
      相关资源
      最近更新 更多