【问题标题】:Cassandra WriteTimeoutException during CAS write queryCAS写入查询期间的Cassandra WriteTimeoutException
【发布时间】:2021-05-26 11:25:14
【问题描述】:

我们有两个 CAS 查询。每个区域 2 个容器运行良好。我们将容器从 2 个增加到 3 个,然后我们开始看到 WriteTimeoutException。与正常营业时间相比,流量相同甚至更少。 Cassandra 分布在 3 个区域,每个集群有 3 台主机。

不确定这些错误的原因是什么,但应用程序容器中的变化是增加了一个。如果对进一步调试有任何帮助,请在此表示感谢。

UPDATE order_sequences USING TTL 10 set instance_name = ?  where id_name = ? IF instance_name = null", ConsistencyLevel.QUORUM)
UPDATE order_sequences SET next_id= ? where id_name= ? IF next_id= ? AND instance_name = ?", ConsistencyLevel.QUORUM),

错误堆栈:

com.datastax.driver.core.exceptions.WriteTimeoutException: Cassandra timeout during CAS write query at consistency SERIAL (7 replica were required but only 0 acknowledged the write) at
com.datastax.driver.core.exceptions.WriteTimeoutException.copy(WriteTimeoutException.java:85) at 
com.datastax.driver.core.exceptions.WriteTimeoutException.copy(WriteTimeoutException.java:23) at 
com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:35) at 
com.datastax.driver.core.ChainedResultSetFuture.getUninterruptibly(ChainedResultSetFuture.java:59) at 
com.datastax.driver.core.NewRelicChainedResultSetFuture.getUninterruptibly(NewRelicChainedResultSetFuture.java:11) at com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:58) at 

【问题讨论】:

    标签: cassandra datastax dse


    【解决方案1】:

    CAS 写入是一个专门的指标,在​​进行比较和设置时触发。 LWT 事务称为比较和设置 (CAS);比较副本数据,并将发现的任何过期数据设置为最一致的值。

    在 Cassandra 中,该过程将 Paxos 协议与正常的读写操作相结合,完成比较和设置操作。

    Paxos 协议被实现为一系列阶段:

    • 准备/承诺 • 阅读/结果 • 提议/接受 • 提交/确认

    这四个阶段需要在提出轻量级事务的节点和事务中涉及的任何集群副本之间进行四次往返。性能会受到影响。因此,为必须考虑并发的情况保留轻量级事务。

    例如,以下一系列操作可能会失败:

    删除 ... 插入 .... 如果不存在 选择 ....

    以下一系列操作将起作用:

    删除...如果存在 插入 .... 如果不存在 选择.....

    强烈建议您检查“CAS 写入延迟”统计信息 “nodetool proxyhistograms”命令,它提供了命令时网络统计的直方图。

    如果您仍然遇到此错误,请告诉我吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 2018-07-14
      • 2018-09-19
      • 2017-12-31
      • 1970-01-01
      • 2015-12-17
      相关资源
      最近更新 更多