cassandra中的故障检测和恢复机制如何工作?

时间:2015-04-09 07:17:14

标签: cassandra cql cassandra-2.0

致所有Cassandra专家,

我正在尝试了解cassandra故障检测和恢复。我对这是如何运作有点困惑。

来自Datastax Doc:

  

配置phi_convict_threshold属性可调整故障检测器的灵敏度。较低的值会增加无响应节点被标记为关闭的可能性,而较高的值会降低导致节点故障的瞬态故障的可能性。在不稳定的网络环境中(例如EC2有时),将值提高到10或12有助于防止错误的故障。

来自http://ljungblad.nu/post/44006928392/cassandra-and-its-accrual-failure-detector

  

Phi表示节点A关于节点B状态的错误的可能性.Phi越高,节点B失败的可信度越大。

有人可以详细解释我C *故障检测机制以及C *如何在不同情况下恢复它。

提前致谢

Chaity

1 个答案:

答案 0 :(得分:3)

我不认为自己是 Cassandra专家,但这是我对Cassandra 节点故障检测的看法:

  1. 每秒一次,每个节点与1-3个其他节点联系,询问节点状态和位置。这些带有时间戳的消息超过了 Gossip协议
  2. Snitch 会通知分区程序节点的机架和数据中心拓扑。动态分析可以检测节点是否在性能(读取和写入)性能较差的情况下运行,并且在正常运行之前不执行读取或写入操作。
  3. Hinted Handoff 是针对脱机节点的分区写入的恢复机制。协调器存储写路径上的每个节点是否确认写操作,并将提示存储在 system.hints 表中。如果目标节点重新联机,则重新尝试写入。
  4. 当节点脱机或性能不佳时,所有这些通信方法都可以协同工作,并且可以进行配置。据我所知,Cassandra不会在失败后恢复生命;这需要人工干预才能使节点重新联机并运行 nodetool 来修复故障节点上的数据。

    根据您的组织对读写操作的容错能力,您始终可以配置一致性级别

    用于管理节点故障的一些资源:

    1. (首先检查您的C *版本)DataStax Failure detection and recovery
    2. C* High Availability from Planet Cassandra
    3. Configuring Consistency Level