【问题标题】:Methods to Verify Cassandra Node Sync验证 Cassandra 节点同步的方法
【发布时间】:2012-04-10 17:35:41
【问题描述】:

我有一个复制因子为 2 的 3 节点 Cassandra 集群。 因为其中一个节点已更换为新节点。 我已经使用“nodetool repair”来修复所有的键空间。 但不知道如何验证所有键空间是否已同步。

之前,刚刚发现这篇文章会有所帮助,但有点。 Cassandra Data Replication problem

有没有办法在 Cassandra 中验证复制因子 > 1 的键空间?

非常感谢。

斯蒂芬

【问题讨论】:

    标签: cassandra replication


    【解决方案1】:

    一种检查方法是使用nodetool getendpoints。传递一些随机密钥并检查哪些端点持有该密钥。这应该显示副本是否放置在两个节点中。

    【讨论】:

      【解决方案2】:

      首先,如果您再次运行 nodetool repair 并且传输的数据很少(假设自上次运行以来所有节点都已启动),则您知道数据几乎完全同步。您可以查看日志以了解在此过程中传输了多少数据。

      其次,您可以通过使用 nodetool cfstats 查看写入计数来验证所有节点是否获得了相似数量的写入。请注意,每次 Cassandra 重新启动时都会重置写入计数值,因此如果它们没有在同一时间重新启动,您必须查看它们随着时间的推移增加的速度。

      最后,如果您只想抽查一些最近更新的值,您可以尝试以一致性级别 ONE 读取这些值。如果您始终获得最新版本的数据,您就会知道副本很可能是同步的。

      作为一般说明,复制是 Cassandra 根深蒂固的一部分,它极不可能在您没有注意到的情况下自行失败。通常,一个节点会在问题开始后不久被标记。另外,我假设您正在以一致性级别 ONE 或 ANY 编写;如果有更高的值,您肯定知道两个副本都已收到写入。

      【讨论】:

        猜你喜欢
        • 2020-12-22
        • 1970-01-01
        • 2016-03-27
        • 2020-07-11
        • 1970-01-01
        • 2017-12-01
        • 1970-01-01
        • 2015-09-04
        • 1970-01-01
        相关资源
        最近更新 更多