对等计算中一种分布式哈希表的制作方法

文档序号:7622714阅读:131来源:国知局

专利名称::对等计算中一种分布式哈希表的制作方法
技术领域
:本发明是一种用于在开放的对等计算(Peer-to-peer,缩写为P2P)环境中,采用一种分布式哈希表(DistributedHashTable,缩写DHT)BChord(Bchord式该分布式哈希表的名称)为对等点(Peer)提供一种快速、有效、可靠的资源定位技术,从而推动对等计算的广泛应用。本技术属于计算机网络、分布式计算和算法设计与分析的交叉技术应用领域。
背景技术
:对等网络为一类利用Internet(因特网)边缘资源(存储、计算、内容等等)、非中心化的、自组织的、且所有的或大部分联系是对称的分布式系统。P2P环境下每个参与的节点既充当客户(dient),也充当服务器(server),通过提供自己的全部或部分资源,来获取分享P2P网络中的资源;没有集中的协调者和数据库,没有一个对等者拥有整个系统的视图,全局的行为特征来自于本地的交互,所有已存在的数据和服务对每个对等者都是开放的,且对等者是自治的,其连接是不可靠的。P2P技术弱化了集中服务器的功能,重视网络中所有个体的作用,强调的是个体之间、系统之间、计算机之间的直接通信和联系,每一个参与者既是客户又是服务方,这使人们在Internet上的共享行为被提升到了一个更广泛的层次,使人们以更主动的方式参与到网络中去。它与现行以中间件为主的分布式计算技术所采用的Client/Server模式有本质区别。从目前的应用来看,P2P的威力还主要体现在大范围的共享、搜索的优势上。在这方面主要引发了,或者是说更好的解决网络上四大类型的应用对等计算、协同工作、搜索引擎、文件交换。研究基于P2P的网格计算的最突出的问题大致有三种资源定位、安全性问题和可管理性问题。其中,可管理性问题是建立在前两种基础之上的。所以本质上讲,解决了资源定位和安全性问题,就可以使得P2P应用有革命性的发展。P2P需要解决的一个重要问题是在一个缺少集中化服务器的动态环境下,各个节点能够维持在一致的网络拓扑信息。由于P2P网络中节点的加入和离开非常频繁,传统路由扩散的方法难以解决这一问题,所以需要一个高效的一致性信息维护机制实现一些功能。例如,当网络拓扑变化时快速恢复网络的稳定性问题需要解决,但多个节点的并发加入和离开使得解决这一问题更具挑战性。另外,用户从大量分散的节点中找到需要的资源和服务也是一个挑战。在P2P中,资源查找模式主要有如下三种(1)集中式查找模式其特点是用于文件索引,所有查找工作在集中服务器中完成。优点是减少网络通信量、不需要广播;如果服务器不超载则响应快速。缺点是容易造成单点失败;潜在的拥塞;由于太多服务连接,难以保证服务质量;如果中心服务器坍塌,则服务中断。(2)分布式泛滥查找模式其特点是没有中心服务器;查询需要在一定范围内通过广播实现。优点是没有固定的网络拓扑;没有固定的数据和索引位置。缺点是广播查询会带来很中的网络通信量;不相关的计算机被迫执行查询。网络的可伸缩性不好;由于查询协商机制导致查询响应很慢。(3)分布式哈希查找模式其基本思路是应用系统通过安全散列算法SHA(SecureHashAlgorithm)把访问资源映射到某个标识空间(全局唯一标志符),在给定资源标志符后,系统利用分布式查询协议找对象所依附的节点,再进行资源的访问。该定位机制改变了现有网络中以服务器为中心的模型,使任意两个主机之间可以交换数据、共享信息,具有良好的扩展性、负载平衡。其特点是使用分布式哈希表;映射和查询文件通过哈希键;通过哈希键可以加速和减少信息传播。采用DHT模式具有以下优点负载平衡分布式哈希函数使得索引项均匀地分布在不同的节点上,因此它具有天然的负载平衡的特性。分散性它是完全分布式的。每个节点都是平等的,有效地改进了系统的健壮性。可伸缩性DHT查找的开销与节点的log对数函数成比例,因此即使很大的系统也是可行的。能够快速定位信息。其中,DHT是当前最有发展前途的一种P2P资源查找模式。
发明内容技术问题本发明的目的是提供对等计算中一种分布式哈希表,来解决P2P网络中资源定位这个瓶颈,通过使用本发明提出的方法可以在JXTA(SUN公司的一种P2P软件开发平台)开发系统中构建分布式哈希表从而达到大大减少P2P网络中资源查找时间这个目标。技术方案本发明的方法是一种改进性的方法,对分布式哈希表Chord(一种环型分布式哈希表)进行了一些改进。主要通过在哈希空间环上采用顺时和逆时两个方向进行一致映射,从而弥补Chord在一个方向上进行资源定位苦乐不均的不足之处。此外,让P2P网络中的集合点构成一个基于BChord分布式哈希表技术的环,每个集合点映射到数个普通的对等点。通过这种方式,可进一步减少资源定位的时间。扩大P2P网络的有效管理域。由对等网络中的集合点构成的分布式哈希环空间,且对分布式哈希环空间同时进行顺时针和逆时针方向搜索指针表的方案,包含在以下的步骤中对等组和集合域的创建步骤1)对等组创建完成P2P对等组创建、对等点加入到P2P网络,步骤2)集合域创建完成集合点的产生,联系紧密的对等点之间组成集合域,集合域内的所有对等点之间内部实现资源和消息共享;分布式哈希环创建步骤3)集合点哈希映射到对等网络的环空间上包括赋予集合点具有分布式哈希的权限,把集合点通过哈希映射到对等网络环空间上,步骤4)修改对等网络环空间其他集合点的信息包括通告对等网络环空间上的其他集合点,环空间上的其他集合点做出相应的反应;对等网络中对等点之间资源定位步骤5)保存资源定位信息包括集合域内的对等点发布资源,集合域内的集合点对资源关键信息进行哈希映射,资源定位信息依据分布式哈希算法保存到相应集合点上,步骤6)对等网络中对等点之间资源定位包括集合域内的对等点搜索资源,集合域内的集合点对资源关键信息进行哈希定位,步骤7)对等网络中对等点之间资源请求包括集合点依据分布式哈希算法从其他集合点中获取想要资源的关键信息,资源的请求者向资源的拥有者请求获取资源,步骤8)集合点的退出和失败处理集合点出现单点失败或正常退出分布式哈希环,分布式哈希环上的相关的集合点依据分布式哈希算法做出相应的调整子步骤。一、一致哈希(ConsistentHashing)BChord采用了一致哈希的一种变体计算方法为节点分配关键字。一致哈希有几个很好的特点,首先是散列函数可以做到负载平衡,也即是所有的节点都可以接收到基本相同数量的关键字。另外,当第N个节点加入或者离开系统时,只有1/N的关键字需要移动到另外的位置。BChord改善了一致哈希的可扩展性。在BChord中,节点并不需要知道所有其他节点的信息。每个BChord节点只需要知道其他节点的少量“路由”信息。在由N个节点组成的系统中,每个节点只需维护其他0(LogN)个节点的信息。同样,每次查找只需0(LogN)条消息。当节点加入或者离开系统时,BChord需要更新路由信息,每次加入或者离开需要传递0(Log2N)条消息。一致哈希函数为每个节点和关键字分配m位字节的标识符(identifier),此标识符可以用SHA1等散列函数产生。节点的标识符可以通过散列节点的IP地址产生,而关键字的标识符可以直接散列此关键字。例如IP地址为120.10.10.1的节点经过SHA1散列之后得到的标识符为54,而关键字“LifAtGo”散列之后的关键字为30。识符长度m必须足够长,这样才能保证两个节点或者关键字散列到同一个标识符上的概率小到可以忽略不计。在一致哈希中,每个关键字都保存在它的后继(successor)节点中,后继节点是节点标识符大于或等于关键字K标识符的第一个节点,可表示为successor(K)。如果标识符采用m位二进制数表示,并且将从0到2m-1的数排列成一个圆圈,那么successor(K)就是从K开始顺时针方向距离最近的节点,如图1中节点14。一致哈希的另一个特点就是当节点加入或者离开系统时对网络带来的冲击可以达到最小。当节点n加入网络时,为了保持一致哈希映射,某些原来分配给n的后继节点的关键字将分配给n。当节点n离开网络时,所有分配给它的关键字将重新分配给n的后继节点。除此之外,网络中不会发生其他的变化。二、BChord查找方式每个节点维护着少量的路由信息,通过这些路由信息,可以提高查找效率。如果m是关键字和节点标识符的位数(采用二进制表示),每个节点只需维护一张最多m个表项组成的路由表,称之为指针表(fingertable)。节点n的查找表中第i个表项包括的是s=success(n+2i-1),这里1<=i<=m并且所有的计算都要进行mod2m,s称为节点n的第i个指针,我们用n.finger[i].node表示,指针表中的其他项的含义如下所示(1)finger[k].start(n+2k-1)mod2m,1<=K<=m(2)finger[k].interval[finger[k].start,finger[k+1].start](3)finger[k].node第一个>=n.finger[k].start的node(4)finger[k].successor标识符环中的下一个节点finger[i].node(5)finger[k].predecessor标识符环中的前一个节点标识符(8+25)mod26=40,后继节点指向42。该方式有两个重要的特性首先,每个节点只需要知道一部分节点信息,而且离它越近的节点,它就知道越多的信息。其次,每个节点的指针表并不包含所有关键字的位置。例如,图2中的节点8就不知道关键字54的位置,因为节点8的后继节点信息并不直接指向关键字54的后继节点56。当节点n不知道关键字K的后继节点时怎么办?如果n能够找到一个节点,这个节点的标识符更接近K,那么这个节点将会知道该关键字的更多信息。根据这一特性,n将查找它的指针表,找到结点标识符大于K的第一个节点j,并询问节点j,看j是否知道哪个节点更靠近K。通过重复这个过程,n最终将会知道K的后继节点。三、BChord节点的加入和失效处理节点n的加入分为三个阶段(1)BChord查找方式初始化新节点的指针表假设节点n在加入网络之前通过某种机制知道网络中的某个节点n’。这时,为了初始化n的指针表,n将要求节点n’为它查找针表中的其他表项。(2)更新现有其他节点的指针表。节点加入网络后将调用其他节点的更新函数,让其他节点更新其指针表。(3)从后继节点把关键字传递到节点n。这一步是把所有后继节点是n的关键字转移到n上。整个加入操作的时间复杂度是0(Log2N)。在P2P网络中,某个对等节点随时可能退出系统或者发生失效,因此处理节点失效是一个重要的问题。在失效处理中,最关键的步骤是维护正确的后继指针。为了保证这一点,每个BChord节点都维护一张包括r个最近后继的后继列表。如果节点n注意到它的后继节点失效了,它就用后继列表中第一个正常节点替换失效节点。四、新型DHT结构(BChord)具体应用由于BChord模型中,每个节点都可能充当信息的中介者,而且节点的性能之间也千差万别。若某个节点通信失败,则导致查询资源查找的性能的下降。因此,可只让部分通信速度快、缓存容量大、运算速度快的节点来完成消息的传递工作。在JXTA中,集合点(RendezvousPeer)就具备这样的功能。一个集合点首先是一个Peer,而且是一个能够处理来自其他Peer请求的Peer。集合点也可以将请求委托给其他Peer,当然那些Peer也必须是集合点。使用集合点的一个主要目的就是为了方便在本地网络之外搜索广告。集合点通常拥有更多资源,并且可以存储大量的有关它周围Peer的信息。集合点也可以作为搜索的传递者。集合点可以转发发现请求到其他的集合点(原集合点通过与其他Peer的广告交互而得到了被转发集合点的信息)。每一个集合点如果本身没有被请求的信息它都会转发该请求。如图5的P2P网络中,一个集合点R和多个对等点P组成一个集合域RZ。在集合域之间,对等点之间(包括集合点)通信采用组播的方式,大家相互保持信息的局部一致性。而在集合域之外,则采用基于BChord的DHT消息路由技术,则实现信息的全局一致性。也就是说,在集合点之间保持P2P网络全局消息的一致性,而在普通对等点之间只须保持局部的一致性。通过这种方式,既可以提高通信速度,也能很好地保持消息一致性地传播。这种方式,既充分利用了BChord资源负载均衡的优点,又进一步不失灵活性地减少BChord中的资源查找时间。计算平台的peer集合之间是通过分布式哈希表的BChord协议连接而成的环状结构,如何保持这个BChord环的稳定性是这个Peer集合管理的关键,包括集合建立和集合退出的时候的前驱和后继的保持,定时的对BChord环进行稳定化。BChord协议中是单个节点上环,而且环上的节点的ID是通过将节点的IP地址通过哈希函数获得的,这里的是Peer集合上环,有多个节点,这也是我们在BChord协议上创新的地方,如何在这个多个节点内选出一个集合点来,并用唯一的Peer集合标识符来代替集合内的节点来处理集合之间的通信也是Peer集合管理的关键。节点的定位也是一个关键节点收集自身相关信息,如IP地址、在线时间、系统状况、可利用资源等,然后加入系统,根据节点信息映射到一维环上,得到节点的坐标信息,然后通过BChord环,找到物理位置相近的区间(亦即Peer集合),并加入该区间,进行集合动态调整。有益效果使用BChord技术有如下优点1.独立于编程语言和平台基于BChord的对等计算资源定位技术在JXTA平台上开发。JXTA被设计成独立于编程语言,独立于系统平台,独立于网络平台。而且JXTA被设计能在任何数字设备上实现,包括传感器、消费电子产品、网络路由器、桌面电脑、服务器和存储设备。2.具有分布式哈希表的共同优点(1)负载平衡分布式哈希函数使得索引项均匀地分布在不同的节点上,因此它具有天然的负载平衡的特性。(2)分散性它是完全分布式的。每个节点都是平等的,有效地改进了系统的健壮性。(3)可伸缩性好DHT查找的开销与节点的log函数成比例,因此即使很大的系统也是可行的。(4)能够快速定位信息。3.进一步减少了资源定位的时间。通过对Chord哈希表的改进,在哈希空间环上采用顺时和逆时两个方向进行一致映射,从而弥补Chord在一个方向上进行资源定位苦乐不均的不足之处。此外,让P2P网络中的集合点构成一个基于BChord分布式哈希表技术的环,每个集合点映射到数个普通的对等点。通过这种方式,可进一步减少资源定位的时间。图1是一致哈希示例图。其中,以N开头的表示节点标识符,而以K开头的表示资源关键字标识符。图2BChord数据组织实例。其中,以N开头的表示节点标识符,而以K开头的表示资源关键字标识符。图3Bchord在P2P网络中的应用模型。其中R为集合点,P为对等点,RZ为集合域,DHT为分布式哈希表。图4是关于在P2P网络中实现基于BChord的DHT资源定位的具体实施方式流程。具体实施例方式图1是一致哈希示例图。其中,以N开头的表示节点标识符,而以K开头的表示资源关键字标识符。例如图中IP地址为120.10.10.1的节点经过SHA1散列之后得到的标识符为K54,存储在其后继节点标识符N56上;而关键字“LifAtGo”散列之后的标识符为K30,存储在其后继节点标识符N32上。图2BChord数据组织实例。其中,以N开头的表示节点标识符,而以K开头的表示资源关键字标识符。每个节点只需维护一张最多m个表项组成的路由表,称之为指针表(fingertable)。若N8节点本可通过N(8+16)即N24操作查询信息,但是不存在N24节点,因此N8节点可通过N(8+16)操作查询N24的后继节点N32的信息。同理N8节点通过N(8+32)向N42获取查询信息。图3Bchord在P2P网络中的应用模型。其中R为集合点,P为对等点,RZ为集合域,DHT为分布式哈希表。图4是关于在P2P网络中实现基于BChord的DHT资源定位的具体实施方式流程,主要包括三个阶段方案P2P对等组创建和集合域创建方案;基于BChord的DHT环创建方案;P2P网络中对等点之间相互资源定位和搜索方案。具体方式为步骤1)P2P对等组创建完成P2P对等组创建(P2P网络)、对等点加入到P2P网络等。步骤2)集合域创建完成集合点的产生、联系紧密的对等点之间组成集合域、集合域内的所有对等点之间内部实现资源和消息共享等。步骤3)基于BChord的DHT环创建赋予集合点具有BChord分布式Hash的权限、把集合点通过Hash映射到P2P环空间上、通告P2P环空间上的其他集合点、环空间上的其他集合点作出相应的反应等。步骤4)保存资源定位信息包括集合域内的对等点发布资源、集合域内的集合点对资源关键信息进行Hash映射、资源定位信息依据BChord算法保存到相应的集合点上。步骤5)P2P网络中对等点之间资源定位与请求集合域内的对等点搜索资源、集合域内的集合点对资源关键信息进行Hash、集合点依据BChord算法从其他集合点中获取想要资源的关键信息、资源的请求者向资源的拥有者请求获取资源。步骤6)集合点的退出和失败处理集合点出现单点失败或正常退出BChord的DHT环、DHT环上的相关的集合点依据BChord算法作出相应的调整等子步骤。权利要求1.一种对等计算中一种分布式哈希表,其特征在于由对等网络中的集合点构成的分布式哈希环空间,且对分布式哈希环空间同时进行顺时针和逆时针方向搜索指针表的方案,包含在以下的步骤中对等组和集合域的创建步骤1)对等组创建完成P2P对等组创建、对等点加入到P2P网络,步骤2)集合域创建完成集合点的产生,联系紧密的对等点之间组成集合域,集合域内的所有对等点之间内部实现资源和消息共享;分布式哈希环创建步骤3)集合点哈希映射到对等网络的环空间上包括赋予集合点具有分布式哈希的权限,把集合点通过哈希映射到对等网络环空间上,步骤4)修改对等网络环空间其他集合点的信息包括通告对等网络环空间上的其他集合点,环空间上的其他集合点做出相应的反应;对等网络中对等点之间资源定位步骤5)保存资源定位信息包括集合域内的对等点发布资源,集合域内的集合点对资源关键信息进行哈希映射,资源定位信息依据分布式哈希算法保存到相应集合点上,步骤6)对等网络中对等点之间资源定位包括集合域内的对等点搜索资源,集合域内的集合点对资源关键信息进行哈希定位,步骤7)对等网络中对等点之间资源请求包括集合点依据分布式哈希算法从其他集合点中获取想要资源的关键信息,资源的请求者向资源的拥有者请求获取资源,步骤8)集合点的退出和失败处理集合点出现单点失败或正常退出分布式哈希环,分布式哈希环上的相关的集合点依据分布式哈希算法做出相应的调整子步骤。全文摘要对等计算中一种分布式哈希表是一种用于在开放的对等计算(Peer-to-peer,缩写为P2P)环境中,采用一种分布式哈希表BChord为对等点(Peer)提供一种快速、有效、可靠的资源定位技术,从而推动对等计算的广泛应用,对P2P(对等计算)网络中分布式哈希表Chord进行了一些改进。主要通过在哈希空间环上采用顺时和逆时两个方向进行一致映射,从而弥补Chord在一个方向上进行资源定位苦乐不均的不足之处。此外,让P2P网络中的集合点构成一个分布式哈希表技术的环,每个集合点映射到数个普通的对等点。通过这种方式,可进一步减少资源定位的时间,扩大P2P网络的有效管理域。文档编号H04L12/00GK1731742SQ200510094038公开日2006年2月8日申请日期2005年8月26日优先权日2005年8月26日发明者王汝传,陈宏伟申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1