2012-03-01 98 views
1

我的使用情况预计重读取负载 - 有两种可能的模型设计策略:卡桑德拉缓存模式与thiny和宽行

  1. 与行高速缓存微小行:在这种情况下排小到足以放入RAM和所有列正在缓存。阅读访问应该很快。

  2. 带键缓存的宽行。行数较多的宽行对于行缓存较大。访问列子集需要HDD查找。

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

哪种方法更好1或2?

回答

0

行缓存不必提高读取性能。

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

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

我的负载测试(3台服务器有8个核心氙,24GB RAM,卡桑德拉60GB数据)显示,行缓存和文件系统缓存具有相似性性能 - 操作系统缓存导致CPU负载较低