【发布时间】:2020-06-17 12:06:36
【问题描述】:
假设如下:
- 我的批处理语句属于单个分区
- 请求的写入一致性为 Quorum
- 复制因子为 3
问。这是否意味着在所有副本中确认写入之前,对于一致性为 1 的读取(即隔离)将不可见?
【问题讨论】:
标签: cassandra
假设如下:
问。这是否意味着在所有副本中确认写入之前,对于一致性为 1 的读取(即隔离)将不可见?
【问题讨论】:
标签: cassandra
发件人:https://docs.datastax.com/en/ddaccql/doc/cql/cql_using/useBatch.html
单个分区的所有副本都收到数据,协调器等待确认。
QUORUM 的写一致性在这里无关紧要。在确认写入(批处理完成)之前,数据将无法以 any 一致性级别进行读取。换句话说,不应该存在读取@一致性ONE 可能在 BATCH 操作后失败的时间段。
【讨论】:
batchStatement.setSerialConsistencyLevel(ConsistencyLevel.valueOf(serialConsistencyLevel)); 。那么它如何实现批处理的隔离,除非它锁定该分区的所有副本?
setQuorumConsistency 方法。实际上,它是一个隔离级别,通过 Paxos 得出完成共识。