Client先把待写入的数据发给各个 chunk server,等到所有的chunk server都收到这些数据后,向 primary 发起写请求。
5)The primary forwards the write request to all secondary replicas.
由primary制定写请求的顺序。分布式系统原理 刘杰所有的replicas都按照这个顺序写数据。看,采用“中心化”的方式制定写请求的顺序,这样很容易保证顺序的唯一性。
6)The secondaries all reply to the primary indicating that they have completed the operation
所有的replicas(secondaries)都按照相同的顺序写入数据后,向primary发送完成报告。
7)The primary replies to the client.
由primary向Client报告此次写操作的结果。
从上面的整个流程看,上面的操作很少涉及到master。大部分由master 颁发给Lease的primary来完成。
其实,个人感觉对于 mutation operation,这里的核心是两个:❶降低master的负载 ❷保证修改顺序的一致性。而通过Lease机制,解决了这两个问题。
master给某台chunk server颁发Lease,使之成为Primary。由Primary接收Client的写请求,由Primary负责其他replicas的写操作是否完成……这都有效地降低了master的负载;其次,由primary制定写操作的序列号,顺序的确定是由primary确定的,不是协商确定的,这种“中心化”的机制容易保证顺序的一致性。
四,参考资料
《分布式系统原理介绍》--刘杰
租约机制简介
租约机制简单介绍
Lease 机制在分布式系统中的应用
分布式系统概念--第一篇 一致性协议、一致性模型、拜占庭问题、租约、副本协议
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-34085-3.html