taoCMS是基于php+sqlite/mysql的国内最小(100Kb左右)的功能完善的CMS管理系统

分布式存储系统设计 - Hinted handoff

2011-09-14

 

Anti-Entropy 机制只用于永久性的错误恢复,相反,Hinted handoff 应用在节点的故障率比较低且短暂失效的情况。

如果严格遵守 W + R > N且 (W>=1)的策略,那么意味着系统至少要一个首选列表中的主机活着,写操作才能成功。为了提高可用性,在有些特定的情况下,如,碰巧对于某个 key,其所有主要责任的所有节点都短暂失效,但其他的其他部分都正常,如 Data Center间的网络分割。放松这一要求,能提高系统的可用性。

Hinted handoff是用来处理系统短暂的失效的方法,当所有主要负责的 N个节点均失效的情况下,它试图将信息存放在非主要责任节点的一个特殊的位置,并记下一个 hint,其包含这次写操作的真正目标节点信息。当消息服务收到一个Gossip信号得知有新的节点从失败中恢复过来时,它查看该节点该节点有没有需要移交 (handoff)的数据。通过检查它是否是那个 hint提到的节点,如果是,包含 hint的那个节点将向它移交 (handoff) replica.

处理流程

Hinted Handoff实现为一个后台线程,并用一个队列来记录所有要移交的 hint信息。

    - 从队列中取出一个代处理的 hinted-handoff

    - 进行移交工作的节点,通过上面提到的特殊的位置得hint相关信息

    - 基于上述hint 中的目标接收信息,通过消息中心发给目标接收的节点(即恢复的节点)

    - 接收节点收到消息后,应用这个hint 到本地

类别:技术文章 | 阅读:229875 | 评论:0 | 标签:分布式

想收藏或者和大家分享这篇好文章→

“分布式存储系统设计 - Hinted handoff”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

taoCMS发布taoCMS 3.0.2(最后更新21年03月15日),请大家速速升级,欢迎大家试用和提出您宝贵的意见建议。

捐助与联系

☟请使用新浪微博联系我☟

☟在github上follow我☟

标签云