Astyanax:如果MutationBatch中途失败,我有什么保证?

时间:2013-03-27 15:25:29

标签: cassandra astyanax

我知道从0.8开始,Cassandra保证行更新是原子的。

但是,如果我准备(使用MutationBatch)对多个列族进行多次行修改或修改,是否可以保证行将按照我设置的顺序进行更新?例如如果我有

  • 更新CF 1,第1行
  • 更新CF 1,第2行
  • 更新CF 2,第3行

是否有可能更新CF 2而CF 1由于故障而保持不变?

如果我已经设置了会发生什么:

  • 更新CF 1,第1行,A列
  • 更新CF 1,第2行
  • 更新CF 2,第3行
  • 更新CF 1,第1行,B栏

或者,我应该准备三个MutationBatches并单独执行吗?

2 个答案:

答案 0 :(得分:2)

所有更新都是并行完成的,因此无法保证订购。部分成功将导致批处理日志接管并完成从1.2开始的批处理:http://www.datastax.com/dev/blog/atomic-batches-in-cassandra-1-2

答案 1 :(得分:1)

Playorm提供了刷新支持,可以一次性推送所有持久性因素,因此它可以将其作为一个工作单元发送(不是交易)

http://buffalosw.com/wiki/flush-support/