gpt4 book ai didi

cassandra - 使用 QUORUM CL 时,如果在 cassandra 集群中写入失败会发生什么?

转载 作者:行者123 更新时间:2023-12-04 13:38:19 25 4
gpt4 key购买 nike

假设我有 3 个节点,RF 为 3,并使用 QUORUM CL。当我向集群写入数据记录时,如果一个节点成功,一个节点失败。那么整个写请求都失败了,那么success节点会怎样呢?会自动回滚吗?否则它将通过八卦传播到其他节点。最后,即使原始请求失败,这 3 个节点都会有记录吗?

最佳答案

有一个 article about it . TL&DR 版本:

  • 查询协调器将根据 RF=3 尝试在所有节点上保留您的写入。如果其中 2 个失败,则认为 CL=QUORUM 写入失败。
  • 接受失败写入的单个节点将 不是 回滚它。由于没有发生任何可疑事件,它会将其保存在内存表/磁盘上。
  • Cassandra 是一个最终一致的数据库,所以它在一段时间内处于不一致状态是绝对没问题的,但在将来会收敛到一致状态。
  • 下次您读取 (CL=QUORUM) 之前未能写入的 key 时,如果仍然没有足够的节点在线,您将无法读取。如果其他 2 个节点恢复正常,它们将具有读取仲裁(即使该键的第三个节点数据不同)并且您将收到以前的值,不受写入失败的影响。
  • 如果 Cassandra 检测到单个 key 的此类冲突,它会执行 阅读修复过程中,当发生冲突的少数节点数据将被来自法定多数的数据覆盖。因此,接受失败写入的节点将在下一次成功的仲裁读取时自我修复不一致的行。
  • 关于cassandra - 使用 QUORUM CL 时,如果在 cassandra 集群中写入失败会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30935174/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com