2

我知道从 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 并分别执行它们吗?

4

2 回答 2

2

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

于 2013-04-02T04:24:27.193 回答
1

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

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

于 2013-04-03T07:40:59.303 回答