【问题标题】:Meaning of "Cassandra provides atomicity and isolation when targeting a single partition for batch mutations"“Cassandra 在针对单个分区进行批量突变时提供原子性和隔离性”的含义
【发布时间】:2020-06-17 12:06:36
【问题描述】:

假设如下:

  1. 我的批处理语句属于单个分区
  2. 请求的写入一致性为 Quorum
  3. 复制因子为 3

问。这是否意味着在所有副本中确认写入之前,对于一致性为 1 的读取(即隔离)将不可见?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    发件人:https://docs.datastax.com/en/ddaccql/doc/cql/cql_using/useBatch.html

    单个分区的所有副本都收到数据,协调器等待确认。

    QUORUM 的写一致性在这里无关紧要。在确认写入(批处理完成)之前,数据将无法以 any 一致性级别进行读取。换句话说,不应该存在读取@一致性ONE 可能在 BATCH 操作后失败的时间段。

    【讨论】:

    • 好吧。我在其中将一致性级别设置为批处理语句时发现了这一点。 batchStatement.setSerialConsistencyLevel(ConsistencyLevel.valueOf(serialConsistencyLevel)); 。那么它如何实现批处理的隔离,除非它锁定该分区的所有副本?
    • @KavithakaranKanapathippillai BATCH 语句的串行一致性不是真正的写入一致性级别。请注意,没有 setQuorumConsistency 方法。实际上,它是一个隔离级别,通过 Paxos 得出完成共识。
    猜你喜欢
    • 2011-08-27
    • 2011-02-22
    • 2018-03-17
    • 2011-07-28
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多