【问题标题】:Cassandra writes consistency, what happens after “transaction” fails?Cassandra写一致性,“事务”失败后怎么办?
【发布时间】:2022-01-05 09:19:08
【问题描述】:

我没有从文档中得知节点在写入期间发生故障后会发生什么。 我得到了仲裁的想法,但是在“写事务”失败后会发生什么? 例如:

  1. 我插入了记录并选择了等于 QUORUM 的一致性级别。
  2. 假设 QUORUM = 3 个节点和 3 个节点中的 2 个,或者 3 个节点中只有 1 个节点写入了日期,但其余节点没有并且失败。
  3. 我遇到了一个错误。

写它的节点上的记录会发生什么?

Casandra 如何防止通过副本同步将此行传播到其他节点?

或者如果我在编写时遇到错误,这实际上意味着该行可能会在一段时间内出现在每个副本上?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    Cassandra 没有事务(轻量级事务除外,它们也是不同的事物)。当某个节点接收并写入数据时,其他节点没有 - 没有回滚或类似的东西。该数据被写入。但是协调器节点发现无法达到一致性级别,并向客户端应用程序报告错误,因此可以在必要时重试。如果不重试,则可以通过修复操作传播数据——读取修复或显式修复。但是由于数据在单个节点上,这意味着这个节点的邮件在修复之前就失败了,数据可能会丢失。

    【讨论】:

    • 如果我说如果保证选择正确并且在写入过程中没有发生错误,那么如果我说读取器将在写入后读取数据,但如果在写入过程中发生错误未定义,读取器以太可以读取数据,我是否正确还是不行?
    • 是的,这取决于将使用哪个一致性级别进行读取,以及哪些节点将参与读取
    猜你喜欢
    • 2015-08-08
    • 2020-07-05
    • 2021-11-06
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    相关资源
    最近更新 更多