分布式系统原理_分布式系统原理 刘杰_分布式系统原理与范型(2)

电脑杂谈  发布时间:2017-02-23 18:38:34  来源:网络整理

2)一旦Lease被Client接收,后续Lease机制不再依赖于网络通信。

3)对宕机节点有很好的容错性

颁发Lease的节点宕机了,宕机的颁发者改变不了已经颁发出的Lease的约定,不会影响Lease的正确性。

拥有Lease的节点宕机了,颁发者也不需要做容错处理,只需要等待Lease到期了,就可以收回承诺进行下一步处理。

③租约机制确定节点的状态

在网络中,如何确定某个节点的状态呢?由于网络故障(网络分化)的存在,采用“心跳”机制确定节点的状态会有一些不足。

比如,A、B、C三个节点互为副本,A为primary,Q负责判断A、 B 、C的状态。如果A正常工作,但是A 、Q之间的网络异常,Q也会认为A出现了问题了,于是 Q 重新选择B作为primary,这里会导致“双主”问题。

这里的本质是:Q认为A异常了,但是A自己不认为自己异常。即,由于网络分化造成系统对于“节点状态”认知的不一致。

解决方法有两个:1)可以使用全体协商确定谁为primary(Paxos算法) ,这是一种去中心化协议

2)采用Lease机制

Q收到 A 、B 、C 的heart beat后,给它们颁发一个Lease,表示已经知道了它们的状态,这样 A 、B 、C 可以在有效期内正常工作。同时,Q 可以给 A一个特殊的Lease,表示A可以作为primary工作。当需要切换primary时,只需要等到A的Lease过期,Q给另外节点颁发表示 primary的Lease即可。

三,租约机制在 GFS 的写操作中的作用

为了减小 master 的负载,master 给某个chunk server 颁发lease,使之成为primary,然后由primary确定 mutation order。

这里也采用 “租约机制分析”中讲到的:①master可以在租约还未过期之前 try to revoke a lease。②也可以等到租约过期后,向其他chunk server颁发primary租约(更换primary)。

这句话表明,租约减少了master的负载,租约的有效期限是60s

写操作的步骤如下:

1)The client asks the master which chunkserver holds the current lease for the chunk and the locations of the other replicas.

Client向master 请求primary地址和其他chunk server地址

分布式系统原理 刘杰_分布式系统原理_分布式系统原理与范型

2)The master replies with the identity of the primary and the locations of the other (secondary) replicas.

master返回primary地址及其他chunk server地址。Client可在Lease的有效期内缓存这些信息。

3)The client pushes the data to all the replicas

Client把待修改的数据发给各个chunk server(replicas),这里实现了控制流与数据流的分离(Client在第二步时获得了控制信息)。

4)Once all the replicas have acknowledged receiving the data, the client sends a write request to the primary.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-34085-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 王鹏超
      王鹏超

      #吴亦凡1106生日快乐##吴亦凡##吴亦凡BadGirl#吴亦凡新歌首唱BadGirl

    • 张恩溥
      张恩溥

      若有信心击沉来舰

    • 吉祥祥
      吉祥祥

      福喜都不知道把肉送去检测太单纯了

    热点图片
    拼命载入中...