分布式哈希表及chord讲义.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分布式哈希表及chord;一致性哈希(Consistent Hash) ;一致性哈希(Consistent Hash) ;一致性哈希(Consistent Hash) ;一致性哈希(Consistent Hash) ;例:假定有一个分布式WEB缓存系统,那么其数据缓存的算法可以有两种。;2、一致性哈希(Consistent Hashing) 我们采用了一种新的方式来解决问题,处理服务器的选择不再仅仅依赖key的hash本身而是将服务实例(节点)的配置也进行hash运算。 1)首先求出每个服务节点的hash,并将其配置到一个0~232的圆环(continuum)区间上。 2)其次使用同样的方法求出所需要存储的key的hash,也将其配置到这个圆环(continuum)上。 3)然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务节点上。如果超过232仍然找不到服务节点,就会保存到第一个服务节点上。 ;一致性哈希(Consistent Hash) ;一致性哈希(Consistent Hash) ; 为了维护上述路由信息,在节点加入/退出系统时,相邻的节点必须及时更新路由信息。这就要求节点不仅存储直接相连的下行节点位置信息,还要知道一定深度 (n跳)的间接下行节点信息,并且动态地维护节点列表。当节点退出系统时,它的上行节点将尝试直接连接到最近的下行节点,连接成功后,从新的下行节点获得下行节点列表并更新自身的节点列表。同样的,当新的节点加入到系统中时,首先根据自身的ID找到下行节点并获得下行节点列表,然后要求上行节点修改其下行节点列表,这样就恢复了路由关系。 ;分布式哈希表(Distributed Hash Table,DHT);DHT 的主要思想:;1.将内容索引抽象为K, V对: K是内容关键字的Hash摘要 K = Hash(key) V是存放内容的实际位置,例如节点IP地址等 2. 所有的K, V对组成一张大的Hash表,因此该表存储了所有内容的信息 3.每个节点都随机生成一个标识(ID),把Hash表分割成许多小块,按特定规则(即K和节点ID之间的映射关系)分布到网络中去,节点按这个规则在应用层上形成一个结构化的重叠网络 4.给定查询内容的K值,可以根据K和节点ID之间的映射关系在重叠网络上找到相应的V值,从而获得存储文件的节点IP地址;DHT 的主要思想:;;插入 (K1,V1);定位(Locating) 节点ID和其存放的K, V对中的K存在着映射关系,因此可以由K获得存放该K, V对的节点ID 路由(Routing) 在重叠网上根据节点ID进行路由,将查询消息最终发送到目的节点。每个节点需要有到其邻近节点的路由信息,包括节点ID、IP等 网络拓扑 拓扑结构由节点ID和其存放的K, V对中的K之间的映射关系决定 拓扑动态变化,需要处理节点加入/退出/失效的情况;1. 哈希算法   Chord使用一致性哈希作为哈希算法。在一致性哈希协议中并没有定义具体的算法,在Chord协议中将其规定为SHA-1。 2. 路由算法   Chord在一致性哈希的基础上提供了优化的路由算法:   经过Chord的优化后,查询需要的跳数由O(N)减少到O(log(N))。这样即使在大规模的P2P网络中,查询的跳数也较少。   Chord还考虑到多个节点同时加入系统的情况并对节点加入/退出算法作了优化。 ;采用环形拓扑(Chord环) 应用程序接口 Insert(K, V) 将K, V对存放到节点ID为Successor(K)上 Lookup(K) 根据K查询相应的V Update(K, new_V) 根据K更新相应的V Join(NID) 节点加入 Leave() 节点主动退出;Chord:Hash表分布规则;Chord:简单查询过程;Chord:查询表(Finger Table) ;Chord:基于查找表的扩展查找过程;Churn由节点的加入、退出或者失效所引起。 每个节点都周期性地运行??测协议来检测新加入节点或退出/失效节点,从而更新自己的指针表和指向后继节点的指针。;新节点N事先知道某个或者某些结点,并且通过这些节点初始化自己的指针表。也就是说,新节点N将要求已知的系统中某节点为它查找指针表中的各个表项。 在其它节点运行探测协议后,新节点N将被反映到相关节点的指针表和后继节点指针中。 新结点N的第一个后继结点将其维护的小于N节点的ID的所有K交给该节点维护。;当Chord中某个结点M退出/失效时,所有在指针表中包含该结点的结点将相应指针指向大于M结点ID的第一个有效结点即节点M的后继节点。 为了保证节点M的退出/失效不影响系统中正在进行的查询过程,每个Chord节点都维护一张包括r个最近后继节点的后继列表。

文档评论(0)

1112111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档