加入收藏 | 设为首页 | 会员中心 | 我要投稿 淮安站长网 (https://www.0517zz.cn/)- 运营、云管理、经验、智能边缘、云硬盘!
当前位置: 首页 > 教程 > 正文

带着问题学习分布式系统之数据分片

发布时间:2018-09-02 04:24:13 所属栏目:教程 来源:xybaby
导读:副标题#e# 正文 在前文中,提出了分布式系统(尤其是分布式存储系统)需要解决的两个最主要的问题,即数据分片和数据冗余,下面这个图片(来源)形象生动的解释了其概念和区别: 其中数据即A、B属于数据分片,原始数据被拆分成两个正交子集分布在两个节点上。而

在Lease论文的标题中,提到了“Fault-Tolerant”,那么lease是怎么做到容错的呢。关键在于,只要服务器一旦发出数据和lease,不关心客户端是否收到数据,只要等待lease过期,就可以修改元数据;另外,lease的有效期通过过期时间(一个时间戳)来标识,因此即使从服务器到客户端的消息延时到达、或者重复发送都是没有关系的。

不难发现,容错的前提是服务器与客户端的时间要一致。如果服务器的时间比客户端的时间慢,那么客户端收到lease之后很快就过期了,lease机制就发挥不了作用;如果服务器的时间比客户端的时间快,那么就比较危险,因为客户端会在服务器已经开始更新元数据的时候继续使用缓存,工程中,通常将服务器的过期时间设置得比客户端的略大,来解决这个问题。为了保持时间的一致,最好的办法是使用NTP(Network Time Protocol)来保证时钟同步。

Lease机制的本质是颁发者授予的在某一有效期内的承诺,承诺的范围是非常广泛的:比如上面提到的cache;比如做权限控制,例如当需要做并发控制时,同一时刻只给某一个节点颁发lease,只有持有lease的节点才可以修改数据;比如身份验证,例如在primary-secondary架构中,给节点颁发lease,只有持有lease的节点才具有primary身份;比如节点的状态监测,例如在primary-secondary架构中监测primary是否正常,这个后文再详细介绍。

工程中,lease机制也有大量的应用:GFS中使用Lease确定Chuck的Primary副本, Lease由Master节点颁发给primary副本,持有Lease的副本成为primary副本。chubby通过paxos协议实现去中心化的选择primary节点,然后Secondary节点向primary节点发送lease,该lease的含义是:“承诺在lease时间内,不选举其他节点成为primary节点”。chubby中,primary节点也会向每个client节点颁发lease。该lease的含义是用来判断client的死活状态,一个client节点只有只有合法的lease,才能与chubby中的primary进行读写操作。

总结

(编辑:淮安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读