【发布时间】:2012-09-26 07:46:28
【问题描述】:
我的列族已启用行缓存。我有批处理,它遍历所有行以找到那些应该被删除的行。由于正在刷新结果行缓存 - 它不包含“真实数据”,而是我的批处理结果。
我可以执行 Thrift/CQL 查询来告诉 Cassandra 避免行缓存,即使它已启用?这对 Map-Reduce 算法很有用。
【问题讨论】:
标签: cassandra
我的列族已启用行缓存。我有批处理,它遍历所有行以找到那些应该被删除的行。由于正在刷新结果行缓存 - 它不包含“真实数据”,而是我的批处理结果。
我可以执行 Thrift/CQL 查询来告诉 Cassandra 避免行缓存,即使它已启用?这对 Map-Reduce 算法很有用。
【问题讨论】:
标签: cassandra
为什么要避免行缓存,因为它被设计为始终具有与磁盘上的数据相同的数据? (即,写入首先写入行缓存,然后磁盘和读取执行相同的操作)。避免使用具有最新数据的行缓存的用例是什么?
另外,我听说行缓存仅对 5% 的用例有帮助,通常应该不使用它。我认为 PlayOrm 使用行缓存的用例可能是 5% 的用例之一,它可以告诉 cassandra 缓存它使用的 3 个索引列族,以便 Scalable-SQL 查询快速进入它的分区,因此查询会快得多,但大多数用例通过行缓存减慢系统速度。
【讨论】: