轻量级事务和普通插入同时执行时会发生什么?

时间:2015-12-03 17:02:48

标签: cassandra

我读过关于lightweight-transaction的Cassandra文章,我想我已经理解了Paxos是如何工作的。

我理解,使用Paxos,CAS(比较和设置)得到线性化; Paxos算法用于确定接受哪个CAS。 (CAS操作用作Paxos算法的“值”)

我的问题是,如果对同一个主键执行INSERT轻量级事务和普通INSERT语句会发生什么?

根据我的理解,正常的INSERT操作不会使用Paxos的功能,因此如果与LWT一起使用,会发生不希望的事情。

我说错了吗?如果是这样,会发生什么?如果没有,如何处理正常的INSERT?

1 个答案:

答案 0 :(得分:2)

不建议对同一个表使用常规插入和CAS操作。有可能会不按顺序执行常规插入,这是您尝试阻止使用paxos的原因。

读取也是如此。对使用CAS更新的表的任何读取都必须使用SERIAL一致性级别,以确保始终可以看到最后一次CAS操作的结果。使用SERIAL将使用paxos和任何更新协调查询执行,从而防止乱序执行。