P2p系统元数据收集、分发方法及其装置和系统的制作方法

文档序号:7665964阅读:141来源:国知局
专利名称:P2p系统元数据收集、分发方法及其装置和系统的制作方法
技术领域
本发明涉及通信领域中的计算机网络技术,尤其涉及一种P2P系统元数据 收集方法和分发方法及其装置和系统。
背景技术
近来,基于P2P (Peer-to-Peer,表示一种对等关系)技术的网络应用得到 了飞速地发展,这些应用包括文件共享应用、实时流媒体应用以及分布式文件 系统等应用。
P2P系统改变了传统文件和服务共享的客户机/服务器模式。在P2P系统 中,文件存储于各节点(这些节点在系统中的地位是对等的),文件直接在节 点间进行传输,系统中的每一个节点既可以给其他节点提供服务,又可以接受 其他节点提供的服务。这种分布式、自组织的特点使得对P2P系统的监测和管 理处于自组织发展状态,缺乏统一的监测和管理,无法对整个系统有一个整体 的理解,所以,不能有效地利用现有的网络资源,比如,可能使某些节点的负 载过高,而有些节点的负载则过低。
目前,对P2P系统的监测管理主要是借助传统的客户机/服务器模式,每 个节点周期性向某个固定的监测节点发送元数据信息和获取系统的状态信息。 比如BitTorrent中,节点周期性地向Tracker汇报已经获取到的数据分片等信息。 这种集中式的方法实现简单,但是容易造成单点失效问题而且不易扩展,维护 开销较大,不适合在大规模P2P系统中使用。
在P2P数据分发方面,基于流言传播模式也被提出。在流言传播方法中, 节点在第一次收到数据时,随机地从系统中选择若干个节点转发数据。该方法 具有良好的扩展性和容错能力,但是其容错性是由其冗余度来提供的,所以会有大量的冗余数据。
综上,P2P系统的分布式、自组织特征使得P2P系统的监测和管理异常困
难,而目前所使用的监测和管理方法在大规模P2P系统中不适用。

发明内容
本发明的目的之一在于提供一种P2P系统元数据收集方法,以达到元数据 动态收集并减少所需开销的目的,所述P2P系统中的节点形成DHT环状结构, 该方法包括以下步骤
将所述环状结构代表的标识空间分割为多层标识空间,根据所述多层标识 空间之间的父子关系建立元数据收集树;
所述元数据收集树的根节点发送元数据收集请求,所述请求沿所述元数据 收集树发送到元数据收集树的各节点;
各节点根据所述请求发送元数据信息,所述元数据信息沿所述元数据收集 树发送到根节点;并且,当所述元数据收集树中具有孩子节点的节点收集到其 所有孩子节点的元数据信息后,销毁该节点以下的树结构。
本发明的目的之二在于提供一种节点设备,以达到将该节点设备应用于 P2P系统时,与其它具有相同结构的节点设备一起实现元数据动态收集并减少 所需开销的目的,所述节点设备包括
元数据收集树建立模块,用于将所述节点设备所在的P2P系统中的DHT 环状结构代表的标识空间分割为下一层标识空间,根据被分割的标识空间以及 分割得到的标识空间的父子关系建立元数据收集树中所述节点设备与其孩子 节点设备的关系;
请求分发模块,用于接收所述节点设备的父节点发送的元数据收集请求, 将所述收集请求发送给所述节点设备的孩子节点设备;
10元数据收集模块,用于根据所述元数据收集请求,收集所述节点设备及其 孩子节点设备的元数据信息,并将收集到的元数据信息发送到其父节点设备;
元数据收集树销毁模块,用于当所述节点设备收集到其所有孩子节点设备 的元数据信息后,删除所述节点设备保存的所有孩子节点设备的信息。
本发明的目的之三在于提供一种元数据收集系统,以达到将该节点设备应 用于P2P系统时,实现元数据动态收集并减少所需开销的目的。所述元数据收
集系统包括多个节点,所述多个节点形成DHT环状结构;所述元数据收集系 统中建立有代表节点间逻辑关系的元数据收集树,所述元数据收集树是将所述 环状结构代表的标识空间分割为多层标识空间,根据所述多层标识空间之间的 父子关系形成的;其中,所述元数据收集树的根节点发送元数据收集请求,所 述请求沿所述元数据收集树发送到所述元数据收集树的其它各节点;所述元数 据收集树的其它各节点根据所述元数据收集请求发送元数据信息,所述元数据 信息沿所述元数据收集树发送到所述元数据收集树的^f艮节点,并且,所述元数 据收集树上具有孩子节点的节点在收集到其所有孩子节点的元数据信息后,销 毁该节点以下的树结构。
本发明通过将DHT环状结构代表的标识空间分割为多层标识空间,建立 元数据收集树,并在树中的节点完成元数据收集任务时,将该节点以下的树结 构进行销毁,随着元数据收集任务的逐步完成,该元数据收集树也随之逐步销 毁,直到根节点收集到元数据收集树中所有节点的^t数据信息后,该元数据收 集树也随之销毁,从而可在需要收集元数据时建立元数据收集树,在完成元数 据收集后销毁元数据收集树,即,实现了动态收集元数据,并且在元数据收集 任务完成后不必付出额外的元数据收集树的维护开销。
本发明的目的之四在于提供一种P2P系统元数据分发方法,以达到元数据 动态分发并减少所需开销的目的,所述P2P系统中的节点形成DHT环状结构, 该方法包括以下步骤
将所述环状结构代表的标识空间分割为多层标识空间,根据所述多层标识空间之间的父子关系建立元数据分发树;
所述元数据分发树的根节点发送元数据信息,所述元数据信息沿所述元数 据分发树发送到所述元数据分发树的各节点;
各节点收到元数据信息后发送确认信息,所述确认信息沿所述元数据分发 树发送到根节点;并且,当所述元数据分发树中具有孩子节点的节点接收到其 所有孩子节点发送的确认信息后,销毁该节点以下的树结构。
本发明的目的之五在于提供一种节点设备,以达到将该节点设备应用于 P2P系统时,与其它具有相同结构的节点设备一起实现元数据动态分发并减少 所需开销的目的,所述节点设备包括
元数据分发树建立模块,用于将所述节点设备所在的P2P系统中的DHT 环状结构代表的标识空间分割为下一层标识空间,根据被分割的标识空间以及 分割得到的标识空间的父子关系建立元数据分发树中所述节点设备与其孩子 节点设备的关系;
元数据分发模块,用于接收所述节点设备的父节点设备发送的元数据信 息,并将接收到的元数据信息发送到所述节点设备的所有孩子节点设备;
确认信息收集模块,用于接收所述节点设备的孩子节点设备返回的确认信 息,并连同所述节点设备的确认消息一起发送到其父节点设备;
元数据分发树销毁模块,用于当所述节点设备接收到其所有孩子节点返回 的确认信息后,删除所述节点设备保存的所有孩子节点设备的信息。
本发明的目的之六在于提供一种元数据分发系统,以达到将该节点设备应 用于P2P系统时,实现元数据动态收集并减少所需开销的目的。所述元数据分 发系统包括多个节点,所述多个节点形成DHT环状结构;所述元数据分发系 统中建立有代表节点间逻辑关系的元数据分发树,所述元数据分发树是将所述 环状结构代表的标识空间分割为多层标识空间,根据所述多层标识空间之间的 父子关系形成的;其中,所述元数据分发树的^^艮节点发送元数据信息,所述元 数据信息沿所述元数据分发树发送到所述元数据分发树的其它各节点;所述元
12数据分发树的其它各节点发送接收到所述元数据信息的确认信息,所述确认信 息沿所述元数据分发树发送到所述元数据分发树的根节点,并且,所述元数据
分发树上具有孩子节点的节点在接收到其所有孩子节点的确i人信息后,销毁该
节点以下的树结构。
本发明通过将DHT环状结构代表的标识空间分割为多层标识空间,建立 元数据分发树,并在树中的节点完成元数据分发任务时,将该节点以下的树结 构进行销毁,随着元数据分发任务的逐步完成,该元数据分发树也随之逐步销 毁,直到根节点收到元数据分发树中所有节点的返回的确认信息后,该元数据 分发树也随之销毁,从而可在需要分发元数据时建立元数据分发树,在完成元 数据分发后销毁元数据分发树,即,实现了动态分发元数据,并且在元数据分 发任务完成后不必付出额外的元数据分发树的维护开销。


图1为本发明实施例的基于动态树的P2P系统元数据收集流程的示意图; 图2为本发明实施例的基于动态树的P2P系统元数据分发流程的示意图3为本发明实施例的d-叉树的建立流程示意图4为本发明实施例的Chord环示意图5为基于图4所示的Chord环得到的元数据收集和分发树;
图6a为本发明实施例的元数据收集和分发树的高度示意图6b和图6c为本发明实施例负载均衡的前后对比图7为本发明实施例的节点设备结构图之一;
图8为本发明实施例的节点设备结构图之二。
具体实施例方式
本发明实施例提出了一种基于动态树的P2P系统元数据收集和分发方法 DTMAD ( Dynamic Tree-based Meta画data Aggregation and Dissemination )。参见图1,为本发明实施例提供的基于动态树的P2P系统元数据收集流程
的示意图。本实施例中,将P2P系统中的节点组成基于DHT ( Distributed HashTable,分布式哈希表)的环状结构,当该环状结构中的监控节点(基于 DHT的环状结构中的任何一个节点都可以是监控节点)需要收集所属环状结构 中的其它节点的元数据时,元数据收集流程包括步骤
步骤IOI、从监控节点开始,动态分割环状结构代表的标识空间,将该环 状结构代表的标识空间经多次分割后得到多层标识空间,根据得到的多层标识 空间之间的父子关系,建立起以该监控节点为根节点的元数据收集树。该元数 据收集树为逻辑结构,其中的节点保存有其父节点和其所有孩子节点的节点信 息(叶子节点为元lt据收集树的末端节点,即叶子节点没有属于它的孩子节点, 叶子节点保存有其父节点的节点信息);
步骤102、监控节点发送元数据收集请求,该请求沿建立起来的元数据收 集树自顶向下传输到元数据收集树中的所有节点;
步骤103、接收到元数据收集请求后,各节点发送元数据信息,元数据信 息从叶子节点开始沿元数据收集树自底向上发送到监控节点,在此过程中元数 据收集树逐步被销毁。
此步骤中,当叶子节点收到请求后,根据请求的类型,向其父节点发送相 应的元数据。该父节点收到其所有孩子节点的元数据后,进行适当的处理,然 后连同自己的元数据一起向该父节点的父节点发送,并删除保存的所有孩子节 点的信息,直到将元数据发送到根节点。根节点同样在确认接收到其所有孩子 节点发送的元数据后,删除其保存的所有孩子节点的信息。这样,随着元数据 的收集过程,完成元数据收集任务的树结构部分将被销毁,在元数据收集完成 后,整个元数据收集树被销毁。
这是一个递归过程。为了提高可靠性,本实施例使用了确认反馈 (acknowledgement)机制。每个节点在转发元数据收集请求后,启动一个计时 器,如果计时器超时,仍然不能收到该节点的某个孩子节点的元数据,则重新建立以该孩子节点为根节点的子树,并在建立起的子树中重传元数据请求消 息,通过建立起来的子树的根节点收集元数据。为了把错误限制在一个相对较 小的范围,可将节点计时器的超时时间设置为与节点在树中所处层成指数反比 关系,即
"画《 = r0 x ,ln , 0 S /ev《S /z
其中,h是树的高度,而leveln是节点在元数据收集树中所在的层。
监控节点收到所有节点的元数据信息后,可进一步进行汇总、分析。如果 需要将汇总信息发送到每个节点,则按照同样的方法建立元数据分发树进行数 据分发。元数据的分发过程是元数据收集过程的逆过程。
参见图2,为本发明实施例提供的基于动态树的P2P系统元数据分发流程 的示意图,包括步骤
步骤201、从监控节点开始,动态分割环状结构代表的标识空间,将该环 状结构代表的标识空间经多次分割后得到多层标识空间,#4居得到的多层标识 空间之间的父子关系(如标识空间region[3]与从region[3]分割得到的region[4] 和region[5]视为存在父子关系),建立起以该监控节点为根节点的元数据分发 树;该元数据分发树为逻辑结构,其中的节点保存有其父节点和其所有孩子节 点的节点信息(叶子节点保存有其父节点的节点信息);
步骤202、监控节点发送元数据信息,该元数据信息沿建立起来的元数据 分发树自顶向下传输到所有元数据分发树中的所有节点;
步骤203、各节点接收到元数据信息后返回确认信息,确认信息从叶子节 点开始沿元数据分发树自底向上发送到监控节点,在此过程中元数据分发树被 逐步销毁。
此步骤中,当叶子节点收到元数据信息后,向其父节点发送确认消息。该 父节点收到其所有孩子节点的确认信息后,向自己的父节点发送确认信息,并 删除其保存的所有孩子节点的信息,直到将确认消息发送到根节点。根节点收 到其所有孩子节点发送的确认消息后,删除该根节点保存的其所有孩子节点的
15信息。这样,随着元数据的分发过程,确认接收到元数据的树结构部分被销毁,在元数据分发完成后,元数据分发树被销毁。
同样,为了提高可靠性,数据分发过程中,每个节点在转发元数据后,启动一个计时器,如果计时器超时,仍然不能收到该节点的某个孩子节点反馈的确认信息,则重新建立以该孩子节点为根节点的子树,并在建立起的子树中重传元数据信息。
这里,元数据信息是指节点数据的描述信息,这些数据可包括节点的状态
信息,比如CPU利用率、内存利用率等;或者是节点共享文件的信息,比如收到了的数据分片的描述、共享的文件名和大小等信息。
在本发明实施例中,P2P系统的节点被组成一个基于DHT的环状结构r。该结构中,节点被映射到一维环状连续标识空间上,节点标识之间的距离使用这些节点在环状结构沿顺时针方向的距离表示,且任意两个节点可在O(logAO
跳内互达(即路由复杂度为O(logAO,其中N为环状结构中节点的个数)。基于DHT的环状结构可包括Chord、 Pastry或Viceroy协议形成的覆盖网络结构。当需要收集或分发系统信息时,DHT的环状结构r中的任何节点都可以作为监控节点进行系统信息的收集或分发。在监控节点收集或分发系统信息的过程中,以该监控节点为根节点,通过逐步分割环r代表的ID空间建立节点树(元数据收集树或元数据分发树),该节点树称为d-叉树。
下面以基于Chord协议的P2P系统为例,描述d-叉树的建立过程。Chord环的设计原理是Chord环中每个关4定字和节点都分别拥有一个m比特的标识符。关键字标识符K通过哈希关键字本身得到,而节点标识符N则通过哈希节点的IP地址得到。所有节点按照其节点标识符从小到大(取模2m后)沿着顺时针方向排列在一个逻辑的标识圆环上(称为Chord环)。Chord的映射规则是关键字标识为K的(K,V)对存储在这样的节点上,该节点的节点标识等于K或者在Chord环上紧跟在K之后,这个节点被称为K的后继节点,表示为successor(K)。在基于Chord协议的P2P系统的Chord环上,监控节点拥有整个Chord环的ID空间,将该监控节点作为整个ID空间的代表节点,监控节点把整个Chord环的ID空间分割为大小相等的d个ID空间(即d个区域);选取每个区域沿顺时针方向的第 一 个节点作为这个区域的代表节点(Representative Node,RPN),这些代表节点组成监控节点的孩子节点集合。然后,每个代表节点将自己所代表的区域继续分割。以此类推,将整个Chord环的ID空间逐层进行分割,得到各层ID空间,直到分割得到的ID空间只有一个节点时停止分割。
为了使每个节点在节点树中仅出现一次,在区域分割的过程中,把区域的代表节点排除在进一步分割之外。分割所得区域的代表节点组成其上一层区域代表节点的孩子节点集合,接着由这些代表节点继续分割区域。当分割所得区域内一个节点也没有或者只有一个节点时,该区域不再被分割。根据区域分割过程中得到的节点之间的隶属关系,建立起元数据收集树。
上述区域分割流程可由以下代码实现,其中X.foo()表示函数foo()由节点X调用并在节点X上执行,而Get(id)函数是用来获取ID对应的后继节点(successor node ),该函数可由Chord协议提供,该流程的代码为
X.region_partition(region—x)
1: if (X.id + 1 > region一x.end)
2:return; /*如果区域内仅有一个节点,则该区域不再分割*/3: region—(X.id + 1, region—x.end); /*将区域内的代表节点排除在进一步区域分割之外*/
4: Split region into d partitions with equal size /*将区,或分割为d个大小相等的区域*/
5: for i=l to d{
6:region[i]—the i陽th partition;
7: ^^鄉。则=I.g"_ rp"Oeg/o"[/]); /*取分割所得的每个区域中的代表节点*/8: if"H皿丄)(
9: Xc/^/Aw^Xc/z/WrewuieiW^—,]; /*将分割所得区域中的代
表节点组成其上一层区域的代表节点的孩子节点集合*/
10: ^PWreg,。 [,] .region_partition (reg/朋[/]); /*由这些代表节点继续分割各自代表的区域*/
11: }12:}
X.get—rpn(region)
1: id—first ID of this region;
2: node—X.Get(id);
/*如果分割所得区域内已没有节点,则该区域不再分割*/3: if (node.id g region)4: return NULL;5: return node;
上述代码所实现的流程可如图3所示。
参见图3,为本发明实施例提供的d-叉树的建立流程示意图。在图3所示的流程中,对区域进行分割,得到d-叉树,其过程包括步骤
步骤301、判断当前层的区域(初始为Chord环的整个ID空间)内的节点数目,若为l,则结束区域分割流程;否则,执行步骤302;
步骤302、将当前层的区域内的代表节点排除在进一步区域分割之外;
步骤303、将当前层的区域分成d个大小相等的下一层区域,表示为region[i](lSiSd);
步骤304、将分割得到的下一层区域region[i](lSiSd)内的代表节点作为当前层区域的代表节点的孩子节点集合;
步骤305 、判断区域region[i](lS^d)内是否还有节点,若有,则将region[i](l^Kd)作为当前区域,返回步骤301;否则,结束区域分割流程,从而
18可根据得到的节点之间的隶属关系,建立节点树(元数据收集树或元数据分发 树)。
在Chord环覆盖网络上需要多跳才能查询到ID对应的后继节点,这将带 来时间开销。为了缩短建立d-叉树所需时间,在分割区域时开启d个线程,每 个线程分别负责获取分割出的d个区域中的一个区域的代表节点,从而可使分 别获取d个区域的代表节点的过程并行进行。
通过上述流程,建立了一个d-叉的节点树(元数据收集树或分发树),该 树的高度为O(logA0。
图4给出了一个P2P系统中节点组成的Chord环,其中,实心圓点代表节 点存在,空心圓点代表节点不存在。图5给出了按照上述流程对图4所示的 Chord环进行分割,最终得到的2-叉树。初始时,监控节点0拥有整个区域, 监控节点0将该区域分成两部分[1,8]和[9,15]。节点1和IO分别是这两个区 域的代表节点,它们继续分别将所代表的区域分为两部分,然后再由分割得到 的各区域的代表节点分别继续将各自的区域分割为两部分,直到分割得到的区 域中仅有1个节点或已没有节点。在分割区域过程中,将每次分割得到的区域 的代表节点作为其上一层区域的代表节点的孩子节点集合。由于在区域[14,15] 内没有节点,所以节点IO的右孩子节点为空。
可以证明,建立一个d-叉元数据收集树或分发树,每个节点平均产生 O(logtZ)个Chord查询消息。
动态建立元数据收集和分发树, 一方面可以减少元数据收集和分发树的维 护开销,另一方面以一种简单的方式支持任意一个节点都可以是监控点的操 作。
结构化P2P系统中某些节点负责的关键字可能是其他节点的O(logAO倍。 同时,测量结果显示P2P系统中节点能力(CPU、存储空间、带宽等)差异很 大。这导致节点负载不均衡问题,即部分节点负载超过处理能力,而部分节点 负载远远低于处理能力。这不仅意味着没有充分和合理的利用系统中节点的资源,而且意味着当数据消息在过载节点可能被丢失。所以,有必要对结构化P2P 系统进行负载均衡,其目的是使得节点的负载水平和其能力成正比。采用本发 明实施例所提供的基于动态树的P2P系统元数据收集和分发方法,将可简单而 高效地实现负载均衡过程。
以基于Chord协议的结构化P2P系统为例,节点已经组成Chord环,当需 要进行负载均衡时,监控节点以本发明实施例提供的方法建立元数据收集树, 自顶向下发送负载信息请求消息。当叶子节点收到该消息后,向父节点发送其 负载信息(负载水平和其能力)。在此过程中,节点树中的中间节点收到其所 有孩子节点的负载信息后,汇总这些消息并连同自己的负载信息发送给其父节 点,以此类推,直到将负责信息发送到元数据收集树的根节点(即监控节点)。 至此,负载信息收集过程结束。
监控节点根据收集到的所有负载信息,计算系统利用率,以本发明实施例 提供的方法建立元数据分发树,把负载信息传递给分发树中的所有节点。每个 节点根据系统利用率判断是否过载,如果过载,则计算需要转移多少负载后不 再过载,如果不过载,则计算还可以接收多少负载。
监控节点再次建立元数据收集树,叶子节点向父节点发送是否过载及需要 转移或接收多少负载的信息,父节点收到足够多的信息后,形成负载转移策略 (确定参与负载转移的节点以及转移的负载多少)并发给相应的节点执行。如 果在该节点本地不能完成负载转移,则把信息向上层节点发送,直到发送到能 够完成负责转移的节点。
需要指出的是,如果负载信息收集、利用率信息分发以及负载均衡过程之 间时间间隔短,则可以只建立一次节点树,利用该树完成元数据收集和负载信 息分发,在负载均衡结束后销毁建立的节点树。
图6a、图6b和图6c显示了负载均衡的效果。
图6a显示了元数据收集和分发树的高度,其中,横坐标是对数坐标,显 示了节点的个数;纵坐标是树的平均高度,3条曲线分别对应的树的出度(Outdegree)分别为4、 6、 8。从图6a中可以看出树的高度和节点个数成对数关系, 而和节点的出度成对数反比关系。
图6b显示了负载均衡前的情况;图6c显示了负载均衡后的情况,其中, 系统利用率是0.82,节点个数是2048,节点能力(node capacity)服从shape 是2、 scale是16的Pareto分布,数据对象个数为1,000,000,数据对象的负载 (node load )服从shape是2、 scale是0.3125的Pareto分布。可以看出,利用 DTMAD (基于动态树的P2P系统元数据收集和分发方法)可以达到理想的负 载均衡效果。
本发明的实施例还提供了一种节点设备,该节点设备可应用于P2P系统, 可与其它具有相同结构的节点设备一起实现元数据动态收集过程。
参见图7,为本发明实施例提供的节点设备示意图,该节点设备包括元 数据收集树建立模块、请求分发模块、元数据收集模块和元数据收集树销毁模 块,其中,请求分发模块、元数据收集模块和元数据收集树销毁模块都与元数 据收集树建立模块进行交互,以获取相关的父节点设备或孩子节点设备的信 息;
元数据收集树建立模块,用于将节点设备所在的P2P系统中的DHT环状 结构代表的标识空间分割为下一层标识空间,根据被分割的标识空间以及分割 得到的标识空间的父子关系建立元数据收集树中该节点设备与其孩子节点设 备的关系;
请求分发模块,用于接收所述节点设备的父节点发送的元数据收集请求, 将所述收集请求发送给所述节点设备的孩子节点设备;当该节点设备为元数据 收集树的根节点设备时,向其孩子节点发送元数据收集请求;当该节点设备为 元数据收集树的叶子节点时,接收其父节点发送的元数据收集请求;
元数据收集模块,用于根据该元数据收集请求,收集该节点设备及其孩子 节点设备的元数据信息,并将收集到的元数据信息发送到其父节点设备;当该 节点设备为元数据收集树的根节点设备时,接收其孩子节点发送元数据;当该节点设备为元数据收集树的叶子节点时,向其父节点发送该叶子节点设备的元
数据;
元数据收集树销毁模块,用于当该节点设备收集到其所有孩子节点设备的 元数据信息后,删除该节点设备保存的所有孩子节点设备的信息。
上述元数据收集树建立模块,可包括分割子模块和存储子模块,其中, 分割子模块,用于当该节点设备为该节点设备所在的标识空间的代表节点
设备时,将该标识空间进行分割,得到该标识空间的下一层标识空间;当分割 得到的标识空间中的节点树小于等于1时停止分割;
存储子模块,用于将所述下一层标识空间的代表节点设备作为所述节点设 备的孩子节点,存储所述孩子节点设备的信息。
当P2P系统中的DHT结构中的节点设备都具备上述功能模块时,各节点 设备相互配合可建立起元数据收集树,通过该树收集树中各节点设备的元数据 信息,并在某个节点设备完成元数据收集任务时,销毁该节点设备以下的树结 构。当根节点设备收集到树中所有节点设备的元数据信息后,该元数据收集树 被销毁。
本发明的实施例还提供了一种节点设备,该节点设备可应用于P2P系统, 可与其它具有相同结构的节点设备一起实现元数据动态分发过程。
参见图8,为本发明实施例提供的节点设备示意图,该节点设备包括元 数据分发树建立模块、元数据分发模块、确认信息收集模块和元数据分发树销 毁模块,其中,元数据分发模块、确认信息收集模块和元数据分发树销毁模块 都与元数据分发树建立模块进行交互,以获取相关的父节点设备或孩子节点设 备的信息;
元数据分发树建立模块,用于将节点设备所在的P2P系统中的DHT环状 结构代表的标识空间分割为下一层标识空间,根据被分割的标识空间以及分割 得到的标识空间的父子关系建立元数据分发树中该节点设备与其孩子节点设 备的关系元数据分发模块,用于接收该节点设备的父节点设备发送的元数据信息,
并将接收到的元数据信息发送到该节点设备的所有孩子节点设备;当该节点设 备为元数据分发树的根节点设备时,向其孩子节点设备发送元数据信息;当该 节点设备为元数据分发树的叶子节点设备时,接收其父节点设备发送的元数据 信息;
确认信息收集模块,用于接收该节点设备的孩子节点设备返回的确认信 息,并连同该节点设备的确认消息一起发送到其父节点设备;当该节点设备为 元数据分发树的根节点设备时,接收其孩子节点设备返回的确认信息;当该节 点设备为元数据分发树的叶子节点设备时,向其父节点设备返回确认信息;
元数据分发树销毁模块,用于当该节点设备接收到其所有孩子节点返回的 确认信息后,删除该节点设备保存的所有孩子节点设备的信息。
上述元数据分发树建立模块,可包括分割子模块和存储子模块,其中,
分割子模块,用于当该节点设备为该节点设备所在的标识空间的代表节点 设备时,将该标识空间进行分割,得到该标识空间的下一层标识空间;当分割 得到的标识空间中的节点树小于等于1时停止分割;
存储子模块,用于将所述下一层标识空间的代表节点设备作为所述节点设 备的孩子节点,存储孩子节点设备的信息。
当P2P系统中的DHT结构中的节点设备都具备上述功能模块时,各节点 设备相互配合可建立起元数据分发树,通过该树向树中的各节点设备分发元数 据信息,并在某个节点设备完成元数据分发任务时,销毁该节点以下的树结构。 当根节点设备收到树中所有节点设备返回的确认信息后,该元数据分发树被销 毁。
本发明的实施例还提供了 一种元数据收集系统,该元数据收集系统包括多 个节点,这些节点形成DHT环状结构;该元数据收集系统中建立有代表节点 间逻辑关系的元数据收集树,该元数据收集树是将DHT环状结构代表的标识 空间分割为多层标识空间,根据这些多层标识空间之间的父子关系形成的;其中,
元数据收集树的根节点发送元数据收集请求,该请求沿所述元数据收集树
发送到元数据收集树的其它各节点;元数据收集树的其它各节点根据元数据收 集请求发送元数据信息,元数据信息沿所述元数据收集树发送到元数据收集树 的根节点,并且,元数据收集树上具有孩子节点的节点在收集到其所有孩子节 点的元数据信息后,销毁该节点以下的树结构。
本发明的实施例还提供了 一种元数据分发系统,所述元数据分发系统包括 多个节点,这些节点形成DHT环状结构;所述元数据分发系统中建立有代表 节点间逻辑关系的元数据分发树,该元数据分发树是将所述环状结构代表的标 识空间分割为多层标识空间,根据这些多层标识空间之间的父子关系形成的; 其中,
元数据分发树的#^节点发送元数据信息,该元数据信息沿元数据分发树发 送到元数据分发树的其它各节点;元数据分发树的其它各节点发送接收到该元 数据信息的确认信息,确认信息沿元数据分发树发送到元数据分发树的根节 点,并且,元数据分发树上具有孩子节点的节点在接收到其所有孩子节点的确 认信息后,销毁该节点以下的树结构。
综上所述,针对P2P系统中,节点被组织成一个基于DHT的环状结构, 当监控节点需要收集系统信息时,本发明实施例通过该节点动态地分割环状结 构代表的标识空间,从而建立元数据收集树,元数据收集请求沿着树状结构发 送给所有的节点;节点收到元数据收集请求后,向父节点发送元数据信息,并 且完成元数据收集任务的节点将该节点以下的树结构销毁,使得在完成元数据 收集任务后元数据收集树被销毁。当需要向各节点发送元数据信息时,可按照 相同的方式建立元数据分发树,通过该分发树分发元数据信息,并随着分发任 务的逐步完成,该元数据分发树逐步销毁。与现有技术相比,减少了元数据收 集和分发过程所需时间和系统开销,并减少了树的维护开销,而且由于元数据 收集树或分发树是基于对DHT环状结构动态划分得到,因此易于扩展。另夕卜,本发明实施例还通过建立子树的方式解决单点失效的问题。本发明实施例提供 的基于动态树的P2P系统元数据收集和分发方法还可应用于系统负载均衡过 程,从而在保证负载均衡的效果的同时,提高负载均衡过程的效率。
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种P2P系统元数据收集方法,所述P2P系统中的节点形成分布式哈希表DHT环状结构,其特征在于,包括以下步骤将所述环状结构代表的标识空间分割为多层标识空间,根据所述多层标识空间之间的父子关系建立元数据收集树;所述元数据收集树的根节点发送元数据收集请求,所述请求沿所述元数据收集树发送到元数据收集树的各节点;各节点根据所述请求发送元数据信息,所述元数据信息沿所述元数据收集树发送到根节点;并且,当所述元数据收集树中具有孩子节点的节点收集到其所有孩子节点的元数据信息后,销毁该节点以下的树结构。
2、 如权利要求1所述的方法,其特征在于,将所述环状结构代表的标识 空间分割为多层标识空间,根据所述多层标识空间之间的父子关系建立元数据 收集树,具体为将所述环状结构代表的标识空间进行分割,分别对分割得到的多个下一层 的标识空间再次分割,依此类推,直到分割得到的标识空间所包含的节点数目 小于等于1时停止分割该标识空间;每次将标识空间分割为下一层标识空间后,将该标识空间的代表节点作为 从该标识空间分割得到的所有下一层标识空间各自的代表节点的父节点,根据 得到的节点父子关系建立元数据收集树。
3、 如权利要求2所述的方法,其特征在于,将所述环状结构代表的标识 空间进行分割,分别对分割得到的多个下一层的标识空间再次分割,依此类推, 直到分割得到的标识空间所包含的节点数目小于等于1时停止分割该标识空 间,具体为由所述环状结构的代表节点将所述环状结构代表的标识空间分割为设定 数量且大小相等的第一层标识空间,由每个第一层标识空间的代表节点将各自 所在的标识空间分割为该设定数量且大小相等的第二层标识空间,依此类推,直到分割得到的标识空间所包含的节点数目小于等于1时停止分割该标识空间;所述环状结构的代表节点为所述环状结构中的任意一个需要收集元数据信 息的节点,每次分割得到的标识空间顺时针方向的第 一个节点为该标识空间的 代表节点。
4、 如权利要求3所述的方法,其特征在于,在对标识空间进行分割之前, 进一步包括将所述标识空间的代表节点排除在该次分割之外。
5、 如权利要求3所述的方法,其特征在于,在对标识空间进行分割之后, 进一步包括在该次分割得到的多个标识空间中并行地获取各自标识空间的代 表节点。
6、 如权利要求5所述的方法,其特征在于,所述在该次分割得到的多个 标识空间中并行地获取各自标识空间的代表节点,具体为开启所述设定数量的线程,每个线程负责获取所述多个标识空间中的一个 标识空间的代表节点。
7、 如权利要求1所述的方法,其特征在于,各节点根据所述请求发送元 数据信息,所述元数据信息沿所述元数据收集树发送到根节点,具体为各节点分别接收其所有孩子节点的元数据信息,连同各节点自己的元数据 信息一起发送给该节点的父节点,依此类推,直到将元数据信息发送到根节点。
8、 如权利要求7所述的方法,其特征在于,各节点接收其孩子节点的元 数据信息的过程中,若在所述节点所对应的设定时间内未收到孩子节点的元数 据,则执行步骤以该孩子节点为根节点建立元数据收集子树; 沿所述元数据收集子树自上而下发送所述元数据收集请求; 通过所述元数据收集子树的根节点收集所迷元数据收集子树各节点的元 数据信息。
9、 如权利要求8所述的方法,其特征在于,所述节点所对应的设定时间 的时间长度与该节点在所述元数据收集树中所在层数成指数反比。
10、 如权利要求l所述的方法,其特征在于,当所述元数据收集树中具有 孩子节点的节点接收到其所有孩子节点的元数据信息后,销毁该节点以下的树结构,具体为当所述各节点中具有孩子节点的节点以及根节点接收到其所有孩子节点 的元数据信息后,删除该节点上保存的所有孩子节点的信息。
11、 如权利要求1所述的方法,其特征在于,所述元数据信息为负载信息; 根节点收集各节点的负载信息后,还包括步骤根据各节点的负载信息计算系统利用率。
12、 如权利要求1所述的方法,其特征在于,所述元数据信息为是否过载, 以及在过载时需要转移的负载量信息或在未过载时能够接收的负载量信息;所述元数据收集树中的具有孩子节点的节点收集到其孩子节点的所述元 数据信息后,确定参与负载转移的孩子节点以及转移的负载量,并发送给处理 该负载量的节点执行。
13、 一种P2P系统元it据分发方法,所述P2P系统中的节点形成DHT环 状结构,其特征在于,包括以下步骤将所述环状结构代表的标识空间分割为多层标识空间,根据所述多层标识 空间之间的父子关系建立元数据分发树;所述元数据分发树的根节点发送元数据信息,所述元数据信息沿所述元数 据分发树发送到所述元数据分发树的各节点;各节点收到元数据信息后发送确认信息,所述确认信息沿所述元数据分发 树发送到根节点;并且,当所述元数据分发树中具有孩子节点的节点接收到其 所有孩子节点发送的确认信息后,销毁该节点以下的树结构。
14、 如权利要求13所述的方法,其特征在于,将所述环状结构代表的标 识空间分割为多层标识空间,根据所述多层标识空间之间的父子关系建立元数 据分发树,具体为将所述环状结构代表的标识空间进行分割,分别对分割得到的多个下一层的标识空间再次分割,依此类推,直到分割得到的标识空间所包含的节点数目小于等于1时停止分割该标识空间;每次将标识空间分割为下一层标识空间后,将该标识空间的代表节点作为 从该标识空间分割得到的所有下一层标识空间各自的代表节点的父节点,根据 得到的节点父子关系建立元数据分发树。
15、 如权利要求14所述的方法,其特征在于,将所述环状结构代表的标 识空间进行分割,分别对分割得到的多个下一层的标识空间再次分割,依此类 推,直到分割得到的标识空间所包含的节点数目小于等于1时停止分割该标识 空间,具体为由所述环状结构的代表节点将所述环状结构代表的标识空间分割为设定 数量且大小相等的第一层标识空间,由每个第一层标识空间的代表节点将各自 所在的标识空间分割为该设定数量且大小相等的第二层标识空间,依此类推, 直到分割得到的标识空间所包含的节点数目小于等于1时停止分割该标识空 间;所述环状结构的代表节点为所述环状结构中的任意一个需要分发元数据信 息的节点,每次分割得到的标识空间顺时针方向的第 一个节点为该标识空间的代表节点。
16、 如权利要求15所述的方法,其特征在于,在对标识空间进行分割之 前,进一步包括将所述标识空间的代表节点排除在该次分割之外。
17、 如权利要求15所述的方法,其特征在于,在对标识空间进行分割之 后,进一步包括在该次分割得到的多个标识空间中并行地获取各自标识空间 的代表节点。
18、 如权利要求17所述的方法,其特征在于,所述在该次分割得到的多 个标识空间中并行地获取各自标识空间的代表节点,具体为开启所述设定数量的线程,每个线程负责获取所述多个标识空间中的 一个 标识空间的代表节点。
19、 如权利要求13所述的方法,其特征在于,各节点收到元数据信息后发送确认信息,所述确认信息沿所述元数据分发树发送到根节点,具体为各节点分别接收其所有孩子节点的确认信息,连同该节点自己的确认信息 一起发送给该节点的父节点,依此类推,直到将确认信息发送到根节点。
20、 如权利要求19所述的方法,其特征在于,各节点接收其孩子节点的 确认信息的过程中,若在所述节点所对应的设定时间内未收到孩子节点的确认 信息,则执行步骤以该孩子节点为根节点建立元数据分发子树; 沿所述元数据分发子树自上而下发送元数据信息。
21、 如权利要求20所述的方法,其特征在于,所述节点所对应的设定时 间的时间长度与该节点在所述元数据分发树中所在层数成指数反比。
22、 如权利要求13所述的方法,其特征在于,当所述元数据分发树中具 有孩子节点的节点接收到其所有孩子节点的确认信息后,销毁该节点以下的树 结构,具体为当所述各节点中具有孩子节点的节点以及节点接收到其所有孩子节点的 确认信息后,删除该节点上保存的所有孩子节点的信息。
23、 如权利要求13所述的方法,其特征在于,所述元数据信息为系统利 用率信息;所述元数据分发树中的各节点接收到所述系统利用率信息后,还包括步 骤判断自己是否过载,以及在过载时需要转移的负载量或在未过载时能够接 收的负载量。
24、 一种节点设备,其特征在于,包括元数据收集树建立模块,用于将所述节点设备所在的P2P系统中的DHT 环状结构代表的标识空间分割为下一层标识空间,根据被分割的标识空间以及 分割得到的标识空间的父子关系建立元数据收集树中所述节点设备与其孩子 节点设备的关系;请求分发模块,用于接收所述节点设备的父节点发送的元数据收集请求,将所述收集请求发送给所述节点设备的孩子节点设备;元数据收集模块,用于根据所述元数据收集请求,收集所述节点设备及其 孩子节点设备的元数据信息,并将收集到的元数据信息发送到其父节点设备;元数据收集树销毁模块,用于当所述节点设备收集到其所有孩子节点设备 的元数据信息后,删除所述节点设备保存的所有孩子节点设备的信息。
25、 如权利要求24所述的节点设备,其特征在于,所述元数据收集树建 立模块,包括分割子模块,用于当所述节点设备为该节点设备所在的标识空间的代表节 点设备时,将所述标识空间进行分割,得到该标识空间的下一层标识空间;存储子模块,用于将所述下一层标识空间的代表节点设备作为所述节点设 备的孩子节点,存储所述孩子节点设备的信息。
26、 一种节点设备,其特征在于,包括元数据分发树建立模块,用于将所述节点设备所在的P2P系统中的DHT 环状结构代表的标识空间分割为下一层标识空间,根据被分割的标识空间以及 分劉得到的标识空间的父子关系建立元数据分发树中所述节点设备与其孩子 节点设备的关系;元数据分发模块,用于接收所述节点设备的父节点设备发送的元数据信 息,并将接收到的元数据信息发送到所述节点设备的所有孩子节点设备;确认信息收集模块,用于接收所述节点设备的孩子节点设备返回的确认信 息,并连同所述节点设备的确认消息一起发送到其父节点设备;元数据分发树销毁模块,用于当所述节点设备接收到其所有孩子节点返回 的确认信息后,删除所述节点设备保存的所有孩子节点设备的信息。
27、 如权利要求26所述的节点设备,其特征在于,所述元数据分发树建 立模块,包括分割子模块,用于当所述节点设备为该节点设备所在的标识空间的代表节 点设备时,将所述标识空间进行分割,得到该标识空间的下一层标识空间;存储子模块,用于将所述下一层标识空间的代表节点设备作为所迷节点设 备的孩子节点,存储所述孩子节点设备的信息。
28、 一种元数据收集系统,其特征在于,所述元数据收集系统包括多个节 点,所述多个节点形成DHT环状结构;所述元数据收集系统中建立有代表节 点间逻辑关系的元数据收集树,所述元数据收集树是将所述环状结构代表的标 识空间分割为多层标识空间,根据所述多层标识空间之间的父子关系形成的; 其中,所述元数据收集树的根节点发送元数据收集请求,所述请求沿所述元数 据收集树发送到所述元数据收集树的其它各节点;所述元数据收集树的其它各 节点根据所述元数据收集请求发送元数据信息,所述元数据信息沿所述元数据 收集树发送到所述元数据收集树的根节点,并且,所述元数据收集树上具有孩 子节点的节点在收集到其所有孩子节点的元数据信息后,销毁该节点以下的树 结构。
29、 一种元数据分发系统,其特征在于,所述元数据分发系统包括多个节 点,所述多个节点形成DHT环状结构;所述元数据分发系统中建立有代表节 点间逻辑关系的元数据分发树,所述元数据分发树是将所述环状结构代表的标 识空间分割为多层标识空间,根据所述多层标识空间之间的父子关系形成的; 其中,所述元数据分发树的根节点发送元数据信息,所述元数据信息沿所述元 数据分发树发送到所述元数据分发树的其它各节点;所述元数据分发树的其它 各节点发送接收到所述元数据信息的确认信息,所述确认信息沿所述元数据分 发树发送到所述元数据分发树的根节点,并且,所述元数据分发树上具有孩子 节点的节点在接收到其所有孩子节点的确认信息后,销毁该节点以下的树结 构。
全文摘要
本发明公开了一种P2P系统元数据收集和分发方法及其装置和系统,P2P系统中的节点形成DHT环状结构,元数据收集方法包括将所述环状结构代表的标识空间分割为多层标识空间,根据所述多层标识空间之间的父子关系建立元数据收集树;所述元数据收集树的根节点发送元数据收集请求,所述请求沿所述元数据收集树发送到元数据收集树的各节点;各节点根据所述请求发送元数据信息,所述元数据信息沿所述元数据收集树发送到根节点;并且,当所述元数据收集树中具有孩子节点的节点收集到其所有孩子节点的元数据信息后,销毁该节点以下的树结构。本发明可应用于大型P2P系统,实现动态的元数据收集和分发,简化元数据树的维护。
文档编号H04L12/56GK101465796SQ20071017993
公开日2009年6月24日 申请日期2007年12月19日 优先权日2007年12月19日
发明者周兆民, 张云飞, 李振宇, 段晓东, 谢高岗, 冰 魏 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1