Chord算法实现具体】的更多相关文章

转自:http://blog.csdn.net/wangxiaoqin00007/article/details/7374833 虽然网上搜索CHord,一搜一大堆,但大多讲得不太清楚明白.今天发现一篇blog,图文并茂,逻辑清楚且易懂,特意转载收藏. P2P的一个常见问题是如何高效的定位节点,也就是说,一个节点怎样高效的知道在网络中的哪个节点包含它所寻找的数据,如下图: 对此,有三种比较典型的来解决这个问题. Napster:使用一个中心服务器接收所有的查询,服务器告知去哪下载其所需要的数据.…
Chrod算法是P2P中的四大算法之中的一个,是有MIT(麻省理工学院)于2001年提出,其它三大算法各自是: CAN Pastry Tapestry Chord的目的是提供一种能在P2P网络高速定位资源的的算法,Cord并不关心资源是怎样存储的,仅仅是从算法层面研究资源的取得,因此Chord的API就简单到仅仅有一个set.get. 1.Chord是什么? Chord是一个算法,也是一个协议.作为一个算法,Chord能够从数学的角度严格证明其正确性和收敛性:作为一个协议,Chord具体定义了每…
背景 Chord算法是DHT(Distributed Hash Table)的一种经典实现.下面从网上无节操盗了一段介绍性文字: Chord是最简单.最精确的环形P2P模型."Chord"这个单词在英文中是指"弦",在分布式系统中指"带弦环",在P2P领域则指基于带弦环拓扑结构的分布式散列表(DHT)或者构建与其上的P2P网络.尽管MIT和UC Berkeley的研究早在2001年之前就开发了Chord及其应用系统.但有关Chord的正式论文[S…
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用. 一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义: 1.平衡性(Balance):平衡性是指哈希的结果能够尽可能分布到所有的缓冲中去,这样可以使得所有的缓冲空间都得到利用.很多哈希算法都能够满足…
chord: A Scalable Peer-to-peer Lookup Service for Internet Application 在 P2P 系统中,有效地定位分布在网络中不同节点的数据资源一直是研究的重点. Chord 是麻省理工学院 (MIT) 提出的一种基于 DHT (分布式哈希方法)技术的结构化 P2P 路由协议,具有完全分布式.负载均衡.可用性及可扩展性好.命名方式灵活等特点.本文在研究 Chord 的结构.查找算法.节点的插入退出算法的基础上进一步分析了此算法的效率. 目…
一致性hash算法是,1097麻省理工提出的分布式hashDHT实现算法,极倔internet的热点问题 平衡性 hash结果尽可能的分布到所有的缓存中去,缓冲空间利用率最高 单调性 保持已有的缓存能映射到对应的位置,新加入的缓存能加入新的位置不会映射到旧的位置 分散性 尽量降低分散性的缓存不一致情况发生 负载 负载被粉丝降低负荷 一致性hash实现算法 chord算法 基本要素:节点ID(NID)  资源ID(KID)  常hash函数(sha-1)  chord环 (2^m的环) 因为对于h…
原文: http://juliashine.com/distributed-algorithms-in-nosql-databases/ NoSQL数据库的分布式算法 On 2012年11月9日 in 也为稻粱故, by Juliashine 本文译自 Distributed Algorithms in NoSQL Databases 系统的可扩展性是推动NoSQL运动发展的的主要理由,包含了分布式系统协调,故障转移,资源管理和许多其他特性.这么讲使得NoSQL听起来像是一个大筐,什么都能塞进去…
背景 背景是设计一个实时数据接入的模块,负责接收client的实时数据写入(如日志流,点击流),数据支持直接下沉到HBase上(兴许提供HBase上的查询),或先持久化到Kafka里.方便兴许进行一些计算和处理,再下沉到文件系统或做别的输出. 在设计中,对于client和服务端有这么些目标. client须要支持多语言(Java.C++),做得尽量轻量级.仅仅要连上服务端的ip:port.以RPC的形式调用简单的write就能够把数据写出去.client不承担不论什么逻辑的处理.服务端的负载均衡…
一致性 hash 分布式过程中我们将服务分散到若干的节点上,以此通过集体的力量提升服务的目的.然而,对于一个客户端来说,该由哪个节点服务呢?或者说对某个节点来说他分配到哪些任务呢? 强哈希 考虑到单服务器不能承载,因此使用了分布式架构,最初的算法为 hash() mod n, hash()通常取用户ID,n为节点数.此方法容易实现且能够满足运营要求.缺点是当单点发生故障时,系统无法自动恢复.同样不也不能进行动态增加节点. 弱哈希 为了解决单点故障,使用 hash() mod (n/m), 这样任…
本文译自 Distributed Algorithms in NoSQL Databases 系统的可扩展性是推动NoSQL运动发展的的主要理由,包含了分布式系统协调,故障转移,资源管理和许多其他特性.这么讲使得NoSQL听起来像是一个大筐,什么都能塞进去.尽管NoSQL运动并没有给分布式数据处理带来根本性的技术变革,但是依然引发了铺天盖地的关于各种协议和算法的研究以及实践.正是通过这些尝试逐渐总结出了一些行之有效的数据库构建方法.在这篇文章里,我将针对NoSQL数据库的分布式特点进行一些系统化…