【云盘算 复习】第2节 分布式锁服务Chubby和Paxos算法(含大题) ...

打印 上一主题 下一主题

主题 709|帖子 709|积分 2127

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、Chubby

1、概述

   
(1)Chubby :Google设计的提供粗粒度锁服务的一个文件系统,全部操作都是在文件的基础上完成的。

  
(粗粒度就是不精细的意思)

  
(2)它基于松耦合分布式系统,解决了分布的同等性题目,是一种发起性的锁。

  
a.松耦合分布式系统: 各个组件之间耦合性很小,接洽不紧密

  
b.发起性锁:每个使用上锁文件的进程都要检查是否有锁存在,如果有,则恭敬现 有的锁。

  
(3)Chubby存储大量小文件,每个文件就代表一个锁。

  
(4)在GFS中,创建文件就是举行“加锁”操作,创建  文件乐成的那个server着实就是抢占到了“锁”。

  
(5)Google没有直接实现一个包罗Paxos算法的函数库,而是在Paxos算法的基础上设计了一个全新的锁服务Chubby。

  

2.选取Master服务器:

   
(1)一群机器需要选举Master时,这些机器同时申请某个锁文件。

  
(2)乐成获取锁的服务器当选主服务器,并在文件中写入本身的地址。

  
(3)之后,其他服务器通过读取文件中的数据获取Master的地址。

  

3.Chubby的基本架构

   
(1)客户端:在客户这一端每个客户应用步伐都有一个Chubby步伐库(ChubbyLibrary),客户端的全部应用都是通过调用这个库中的相关函数来完成的。

  
(2)服务器端:服务器一端称为Chubby单位,一般是由五个称为副本(Replica)的服务器组成的,这五个副本在配置上完全同等,并且在系统刚开始时处于对等职位。

  

4.主服务器和租约器

   
(1)为了提高系统的服从,Chubby做了一个紧张的优化,那就是在选择某一个副本作为协调者之后就长期不变。

  
(2)租约期内全部的客户哀求都由主服务器处理。

  
(3)一定时间内有且仅有一个主服务器。

  
(4)如果某个服务器被连续推选为主服务器的话,这个租约期就会不停地被更新。

  

5.可能出现的两种故障(了解)

   
(1)客户端租约过期

  
(2)主服务器出错

  

  

二、Paxos算法(用于Chubby)

1.概述

   
(1)基于消息传递的同等性算法,用于解决分布式系统中的同等性题目。

  
(2)同等性算法中,该算法最常用、公认最有效。

  
(3)分布式系统的同等性题目, 就是如何保证系统中初始状态类似的各个节点在实行类似的操作序列时,看到的指令序列是完全同等的,并且终极得到完全同等的结果。

  

2.算法(重点,熟记三个节点,三个条件)



3.系统的约束条件

   
(1)约束1:每个acceptor只担当它得到的第一个决议。(不完备)

  

  
(2)约束2:一旦某个决议得到通过,之后通过的决议必须和该决议保持同等。

  
a:一旦某个决议x得到通过,之后任何acceptor再批准的决议必须是x。

  
b:一旦某个决议x得到通过,之后任何proposer再提出的决议必须是x。

  
c:如果一个编号为n的提案具有值v,那么存在一个“多数派”,要么它们中没有谁批 准过编号小于n的任何提案,要么它们举行的最近一次批准具有值v。

  
这个编号似乎提案的顺序,顺序靠后的2提案批准了,但是原来1提案已经批准过了,这个2就不做数,先到先得原则。

  

  
(3)为了保证决议的唯一性,acceptors也要满意一个约束条件:当且仅当 acceptors没有收到编号大于n的哀求时,acceptors 才批准编号为n的提案。

  
批准2提案之前,一定不能收到3提案,不然无效,喜新厌旧原则。

  

4.一个决议分为两个阶段(考大题,熟记图中的判定公式)

   
1.预备阶段

  

  
2.批准阶段

   
(1)先确定你能不能发送,预备好参加议会了吗。

  

  
(2)然后确定可以开始选举之后,开始收集并统计票数。

  

  

(3)为了确保编号唯一,规定编号盘算规则 :

   
n个proposer,每个编号为ir (0<=ir <n) ,则proposer的编号值可以取为        

  
s = m*n + ir( m≥0 )

  
以3个proposer P1、 P2、 P3为例,编号分别为0 ,1 ,2  ,开始m=0

  
① P1提交的时间发现了P2已经提交, P2编号为1> P1的0 ,因此P1重新盘算编号: new P1 = 1*3+0 = 4

  
② P3以编号2提交,发现小于P1的4 ,因此P3重新编号:

  
 new P3 = 1*3+2 = 5

  


三、习题(重点)

大题

1.试分析:终极选取出的Master是哪台服务器?写出分析过程。


   
答:看ppt最后,有图教程:https://wwf.lanzouo.com/iIT5k22hmkji
密码:7qzq

  
但可能会遇到看不懂,为什么第一题是这样,但是第二题就变了,那就仔细看看三个判定条件,看看到底是该用哪个判定条件,要想拿分,估计得多看几遍,如果不想拿分,还是趁早跳,预计要花20-30分钟左右弄明确两道题,分值估计在10分左右。

  

  
(1)注意顺序永久都是按照标题给的顺序来的,但是每个proposer不一定在同一个阶段,可能一个已经到选举阶段,有的第二轮了还在预备阶段。

  

  
(2)同一阶段的发消息和收消息可以看做同时发生,但是差别阶段的就要等待本身的下一回合了。其中s2a,和s2b不能视作一个阶段,因为他们不是同时发生的。

  

  
(3)预备阶段是改编号的,但是预备阶段不能改有值的accepter的编号。

  

  
(4)最最最紧张的是,如何判定结束?着实就是满意s2c的第一种判定形式,如果一直不满意,就一直按顺序继承,如果满意,直接克制,例如标题2一直选不出,所以一直运行好久。

  

  
(5)标题2最后算的就是个死循环,死循环的情况选取一个主Proposer,只有主Proposer才   能提出提案——主Proposer也是由paxos先选出来。

  

单选题:

   
第4题 1分
Paxos算法是为了解决分布式系统的( )题目。
A 同等性
B 排序
C 容错
D 监控

  
答案:A

  

  
第12题 1分
Chubby是一种( )锁。
A 粗粒度强制性
B 细粒度发起性
C 粗粒度发起性
D 细粒度强制性

  
答案:C

  

  
第15题 1分
Paxos算法中有三种范例的节点,其中( )节点负责提出决议。
A proposers
B acceptors
C learners
D masters

  
答案:A

  

  
第17题 1分
以下条件中,满意( )三个条件可以保证Paxos算法中数据的同等性。
① 决议只有在被proposers提出后才能批准。

  
② 必须由acceptors节点批准决议。

  
③ 只有决议确定被批准后learners才能获取这个决议。

  
④ 每次只批准一个决议。

  

A ①②③
B ①②④

  
C ②③④
D ①③④

  
答案:D

  

  
第18题 1分
Paxos算法中,负责批准决议的节点是( )。
A proposers
B acceptors
C learners
D others

  
答案:B

  

  
第24题 3分
Paxos算法中有三种范例的节点,其中[填空1]节点提出决议,[填空2]节点批准决议,[填空3]节点获取并使用已经通过的决议。

  
答案:proposers、acceptors、learners

  

  
第3题 1分
以下形貌中,Bigtable中Chubby的重要作用不包括( )。
A 选取并保证同一时间内只有一个主服务器
B 获取子表的位置信息
C 保存Bigtable的模式信息及访问控制列表
D 创建访问控制列表

  
答案:D

  

  
第1题 1分
GFS使用Chubby重要用来()。

  
A. 选取一个GFS主服务器
B. 控制GFS主服务器
C. 选取子表服务器
D. 控制子表服务器

  
答案:A


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦应逍遥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表