Cassandra行缓存 - 它总是从ram提供数据吗?

时间:2012-09-18 09:14:59

标签: cassandra

行缓存在第一次访问单列时将整行加载到ram中。新列的更新和插入更新行缓存 - 可以看作是直写。

假设我有足够的RAM来缓存我的行,我可以确定读取访问将始终从ram提供,与缓存行上的更新/插入无关吗?

2 个答案:

答案 0 :(得分:2)

简短回答:是的。行缓存会让你陷入微秒,而不是毫秒。

更长的答案:从技术上讲,只有在第一次读取之后,写入才会被添加到缓存中,除非它有一个现有条目。 Cassandra确实支持定期保存其缓存,以便在下次重启时预热它们。

答案 1 :(得分:0)

是的,但我也读过它只能提高5%左右的性能,95%的情况下你永远不应该打开它。

在playOrm项目中,我们想知道它是否会将性能提高40%左右甚至100%,因为我们只会缓存索引表中的行,这些行在遍布集群时会加速我们的所有查询。使用S-SQL(可扩展SQL)对分区中1,000,000行的查询已经达到了60ms,并且可能会更快,并且一旦playOrm添加嵌套的先行循环连接,这可能比旧的DBMS嵌套块更快循环连接。