Cassandra 3.0数据修复机制

本文详细介绍了Cassandra 3.0中的数据修复机制,包括Hinted Handoff(写修复)、Read Repair(读修复)和Manual Repair(反熵修复)。Hinted Handoff在节点失效时存储数据hint,待节点恢复后进行数据同步;Read Repair通过对比副本数据进行修复;Manual Repair利用Merkle Tree进行数据一致性检查,并通过nodetool工具执行修复操作。
摘要由CSDN通过智能技术生成

参考
https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsRepairNodesTOC.html

前提:
每个数据副本N,写一致性级别是W,读一致性级别是R

##Hinted Handoff(提示移交):写修复

写操作是会发送N个写请求,但是只统计W个。对于另外N-W个节点,如果写失败,则记录hint。

hint内容

  • target ID:目标节点
  • hint ID:数据时间戳
  • message ID:Cassandra版本
  • blob:数据

写时修复包括五种情况:

  • 一致性级别不满足
    当用户指定的一致性级别不满足,或协调者挂了,则抛出UnavailableException异常。

  • 一致性级别Any
    将hint写入协调者节点也当做写成功。

  • 失效检测机制已经标记节点挂掉

    当Cassandra配置中hinted handoff打开,丢失的写操作在协调者节点以hint的格式存储一段时间T,hint保存在协调者本地hints目录,每十秒更新一次。当节点恢复之后,将hints中的每个hint写到恢复的节点上。如果节点超过max_hint_window_in_ms(3小时)还没恢复,停止写新的hints。

  • 还未标记挂掉

    当节点还没来得及被标记挂掉,当写操作超过write_request_timeout_in_ms(10秒),协调者节点返回一个TimeOu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值