


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分布式系统原理(4)-Lease机制Lease机制是最重要的分布式协议,其最重要的应用:判定节点状态(1)基于lease的分布式cache系统l设计原因:分布式系统中各种操作都依赖于元数据,若仅由中心服务器节点存储维护,则该节点的性能会成为系统的瓶颈。l设计思路:元数据cache,在各个节点上cache元数据信息,减少对中心服务器节点的访问,提高性能。l设计要求:各个节点上cache的数据要始终与中心服务器上的数据阈值,不能是旧的脏数据;cache系统要能最大可能的处理节点宕机、网络中断等异常,最大程度的提高系统的可用性。l基本原理:中心服务器在向各节点发送数据的同时向节点颁发一个lease,
2、每个lease有一个有效期。n基于lease的cache,客户端节点读取元数据的流程判断元数据是否已经处于本地cache且lease处于有效期内1.1是:直接返回cache中的元数据1.2否:向中心服务器节点请求读取元数据信息1.2.1服务器收到读取请求后,返回元数据及一个对应的lease1.2.2客户端是否成功收到服务器返回的数据1.2.2.1失败或超时:退出流程,读取失败,可重试1.2.2.2成功:将元数据与对应lease记录到内存中,返回元数据n基于lease的cache,客户端节点修改数据流程节点向服务器发起修改元数据请求服务器收到修改请求后,阻塞所有新的读请求,即接收读请求,但不返回
3、数据服务器等待所有与该元数据相关的lease超时服务器修改元数据并向客户端节点返回修改成功l容错关键:客户端cache元数据的唯一标准时lease超时,服务器只要等待lease超时就可以修改数据,而不破坏cache的一致性l优化改进:对修改数据中的步骤2,服务器进入修改元数据流程后,一旦收到读请求,则只返回数据但不颁发lease,即用户只能读不能缓存;或lease有效期选已发出lease的最大有效期,用户既可以读,服务器也不用延长cache更新时间针对步骤2带来的时延,可服务器主动通知各个持有lease的节点放弃lease并清除cache中的数据,若服务器收到确认放弃lease的消息,则不需等
4、待该lease超时,若未收到,则继续等到即可,不影响正确性。lcache机制与多副本机制的区别相同点:都是将一份数据保存在多个节点上不同点:cache机制简单,可随时丢弃,其后果仅是需访问数据源读取数据副本不能随意丢弃,每是去一个副本,服务质量都在下降,副本数下降到一定程度,服务将不再可用lease机制的分析Ilease定义:lease是由颁发者授予的在某一有效期内的承诺,颁发者一旦发出lease,则无论接收方是否收到,也无论后续接收方处于何种状态,只要lease不过期,颁发者一定严守承诺,另一方面,接收方在lease有效期内可以使用颁发者的承诺,但一旦lease过期,接收方定不能继续使用颁发
5、者的承诺l优点n有很咼的容错能力可容错网络异常,lease颁发是单向通信,可通过重发解决接收失败问题,一旦接受,后续不依赖网络通信,即使网络中断也无影响。可容错节点宕机,宕机颁发者也无法改变之前承诺,恢复后可继续遵守,接收方宕机,只需等lease超时,收回承诺即可n不依赖于存储,持久化颁发的lease信息,可在宕机恢复后使有效期内lease继续有效,但这只是优化,继续不保存,也可通过等待最大lease时间使得所有lease失效,保证机制继续有效l缺点lease机制依赖于有效期,要求颁发者和接收者时钟同步。若颁发者时钟慢于接收者,则当接收者认为已过期时,颁发者认为依旧有效。改进:接收者可在lea
6、se到期前申请新的lease若颁发者时钟快于接收者,则当颁发者认为已过期时,接收者认为依旧有效。颁发者可能将lease发给其他节点,造成承诺失效,影响系统正确性。改进:将颁发者有效期设的比接收者略大,只需大过时钟误差即可。基于lease机制确定节点状态存在问题:由于可能存在网络分化,拥塞,延迟,节点状态无法通过网络通信来确定,如监控节点确定primary节点故障,从而选新primary过程,就可能造成“双主”问题。解决思路:设计的分布式协议可以容忍“双主”错误,即不依赖于对节点状态的全局致性认识,或者全局致性状态是全体协商后的结果,改用去中心化设计。利用lease机制,由中心节点向其他节点发送
7、lease,若某个节点持有有效的lease,则认为该节点正常可以提供服务。举例:如A/B/C周期发送heartbeat报告自身装入,Q接收到heartbeat后发一个lease,表示确定了A/B/C状态,并允许节点在lease有效期内正常工作,Q可以给primary节点一个特殊的lease,表示节点可以作为primary工作,一旦Q希望切换新的primary,只需等前一个primary的lease过期,则可安全颁发新的lease给新的primary节点,避免双主问题。改进:中心节点不应该是一个,一旦宕机或网络异常,则所有节点没有lease,系统高度不可用,实际系统总是使用多个中心节点互为副本,
8、成为一个小集群,具有高可用性,对外颁发lease功能,chubby和zookeeper都是这样设计的。lease的有效期时间选择l太短:女Q1s,旦出现网络抖动lease很容易丢失,造成依赖lease的服务不稳定l太长:女Q1min,旦某节点宕机,需要较大时间等待lease过期才能发现节点异常l工程:一般时长10s级别,经验值5)工程投影GFS中的LeaseGFS中使用Lease确定Chuck的Primary副本Lease由Master节点颁发给primary副本,持有Lease的副本成为primary副本,控制该chuck的数据更新流量,确定并发更新操作在chuck上的执行顺序GFS中的Le
9、ase信息由Master在响应各个节点的HeartBeat时附带传递(piggyback)。当GFS的master失去某节点的HeartBeat时,只需待该节点上的primarychuck的Iease超时,就可以为这些chuck重新选择primary副本并颁发leaseNiobe中的LeaseINiobe中也是通过lease机制维持primary副本的选择,不同的是Niobe中的Iease是由secondary节点向primary发送。INiobe中有一个高可用的全局元数据服务节点称为GSM(gIobaIstatemanager),其上的元信息有唯一地址的版本号(称为epoch),每次更新该元
10、信息都必须附带提交之前读取到的版本号,并进行condition-write,即GSM会检验客户节点提交的版本号是否与当前的版本号相同,若相同则允许提交更新操作,并递增版本号,否则更新失败,从而实现了元信息更新的全局顺序一致I在Niobe协议中,每个Sencondary副本都会给Primary副本发Lease,含义是,在Lease时间内,本副本承认你是Primary节点。一旦出现primary失去某个secondary的Iease,primary和secondary都尝试kiII对方,secondary在kiII对方的同时还尝试成为新的primary。当primary失去某secondary的I
11、ease后,primary会立刻尝试修改GSM中的元信息,将该secondary在元信息中标记为不可用,从而kiII掉secondary,被kiII掉的secondary只有重新与primary同步后才会被重新标记为可用并提供服务。而当某个secondary因不能与primary通信,造成无法给primary发送Iease后,在Iease超时后,也会尝试修改GSM,将primary标记为不可用且将primary设置为自己。由于在GSM上更新操作靠epoch实现全局一致。primary与secondary相互kiII对方的操作有且只有一个会成功,失败的那个副本需重新读取GSM的元数据后才能发起新
12、的更新元数据操作,如果被对方kiII,那么重新读取元数据时会发现自己已经被设置为“不可用”从而无法再kiII对方。Chubby与Zookeeper中的LeaseIChubby中有两处使用到Lease机制chubby通过paxos协议实现去中心化的选择primary节点,一旦某节点获得了超过半数的节点认可,该节点成为primary节点,其余节点成为secondary节点secondary节点向primary节点发送Iease,含义是“承诺在Iease时间内,不选举其他节点成为primary节点。只要primary节点持有超过半数节点的Iease,那么剩余的节点就不能选举出新的primary。一旦
13、primary宕机,剩余的secondary节点由于不能向primary节点发送Iease,将发起新的一轮paxos选举,选举出新的primary节点。这种由secondary向primary发送Iease的形式与niobe的Iease形式有些类似。primary节点也会向每个cIient节点办法Iease,含义是“确定cIient的死活状态,一个cIient只有具有合法的Iease,才能与chubby中的primary进行读写操作。一个cIient如果占有chubby中的一个节点锁后Iease超时,那么这个cIient占有的chubby锁会被自动释放,从而实现了利用chubby对节点状态进行
14、监控的功能。另外,chubby中cIient中保存有数据的cache,故此chubby的primary为cache的数据颁发cacheIease,上两个Iease可合并为一个。IZookeeper中的Lease机制secondary不向primary发送Iease,当发现没有primary时,secondary会发起新的paxos选举,只要primary和secondary工作正常,新选举由于缺少多数secondary参加而不会成功。primary节点会向cIient颁发Iease,时间正是zookeeper中的session时间。在zookeep中,临时节点是与session的生命期绑定的,当一个cIient的session超时,那么这个cIi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年新疆泽普县事业单位公开招聘工作人员考试题含答案
- 徐州投资管理办法
- 政务效能管理办法
- 投资确认管理办法
- 护士收费管理办法
- 成型胶块管理办法
- 新闻直播管理办法
- 林权日常管理办法
- 日常保养管理办法
- 成品发货管理办法
- (完整)供应商管理程序
- 《谈课堂教学改革》课件
- 压力分散型锚索方案
- 中西医治疗脾胃病
- 安全风险分级管控实施方案(5篇)
- DB22T 5169-2024 建筑施工高处作业吊篮应用标准
- 北师大版八年级数学上册第一单元勾股定理单元测试题
- 动火作业施工方案5篇
- 购货大米合同模板
- 2025年高考地理总复习知识梳理+训练:城市、产业与区域发展
- 四川大学附中2025届数学高一下期末考试试题含解析
评论
0/150
提交评论