【问题标题】:What happens when lightweight transaction and normal insert were executed at the same time?当轻量级事务和普通插入同时执行时会发生什么?
【发布时间】:2016-03-08 10:01:52
【问题描述】:

我已阅读有关 lightweight-transaction 的 Cassandra 文章,并且我想我已经了解 Paxos 的工作原理。

我知道使用 Paxos,CAS(比较和设置)可以线性化; Paxos 算法用于确定接受哪个 CAS。 (CAS操作作为Paxos算法的一个“值”)

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

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

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

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    不建议对同一个表同时使用常规插入和 CAS 操作。常规插入很可能会乱序执行,这是您试图防止使用 paxos 的原因。

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

    【讨论】:

    猜你喜欢
    • 2010-10-14
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 2013-04-18
    • 2018-10-21
    相关资源
    最近更新 更多