gpt4 book ai didi

cassandra - Cassandra nodetool repair 究竟做了什么?

转载 作者:行者123 更新时间:2023-12-04 00:14:16 25 4
gpt4 key购买 nike

来自 http://docs.datastax.com/en/cassandra/2.0/cassandra/operations/ops_repair_nodes_c.html这个我知道

The nodetool repair command repairs inconsistencies across all of the replicas for a given range of data.

  • 但是它是如何解决不一致的呢?它被写成使用 Merkle 树 - 但那是为了比较而不是为了修复“损坏的”数据。
  • 如何“破坏”数据?尽管有硬盘驱动器故障,但有任何常见情况吗?

撇开问题不谈:压实会驱逐墓碑,对吧?那么要求比 gc_grace 秒更频繁地运行 nodetool repair 只是为了确保所有数据都传播到适当的副本?这不应该是通常的情况吗?

最佳答案

无论出于何种原因,只要对副本的写入未完成,数据就会变得不一致。如果节点已关闭、节点已启动但网络连接已关闭、队列已满且写入被丢弃、磁盘故障等,都可能发生这种情况。

当通过比较 merkle 树检测到不一致的数据时,数据的坏部分将通过从具有较新数据的节点流出来修复。 Streaming 是 Cassandra 中的一种基 native 制,也用于将空节点引导到集群中。

您需要在 gc 宽限秒内运行修复的原因是墓碑将同步到所有节点。如果一个节点缺少墓碑,那么它不会在压缩过程中丢弃该数据。有墓碑的节点会在compaction过程中丢弃数据,然后在稍后运行修复时,删除的数据可以从丢失墓碑的节点上恢复。

关于cassandra - Cassandra nodetool repair 究竟做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32340429/

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