一种分布式网络的管理方法、内容查询方法、系统及装置转让专利

申请号 : CN200810110782.9

文献号 : CN101594316B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李金龙沈静波刘姗姗张进王铁英

申请人 : 华为技术有限公司中国科学技术大学

摘要 :

本发明实施例公开一种分布式网络的管理方法、内容查询方法、系统及装置。该方法包括:当节点加入分布式网络时,通过查找内容,生成所述内容的需求内容表;当节点为所述内容的虚拟服务器VS时,根据所述需求内容表进行所述内容的聚类管理。采用本发明实施例提供的技术方案保证了内容在网络中稳定分布,内容查找的有效性、高效性。

权利要求 :

1.一种分布式网络的管理方法,其特征在于,包括:

当节点加入分布式网络时,通过查找内容,生成所述内容的需求内容表;所述节点包括:控制节点CP和复制节点RP,所述复制节点包括:虚拟服务器VS、强一致节点CRP、弱一致节点IRP;

根据所述需求内容表进行消息的路由转发;

当节点为所述内容的虚拟服务器VS时,根据所述需求内容表进行所述内容的聚类管理;所述聚类管理包括:内容的查找和获取,内容的更新和发布,节点的加入和离开,所述强一致节点和所述弱一致节点的管理。

2.如权利要求1所述的方法,其特征在于,所述生成所述内容的需求内容表之前还包括:生成结构路由表和结构内容表,并根据所述结构路由表、所述结构内容表和所述需求内容表进行消息的路由转发。

3.如权利要求2所述的方法,其特征在于,所述结构路由表记录与所述节点邻接的节点的键值和地址信息。

4.如权利要求2所述的方法,其特征在于,所述结构内容表记录所述节点为所述内容的控制节点CP的所述内容的键值、具体内容、以及所述内容的VS的键值和地址信息。

5.如权利要求4所述的方法,其特征在于,所述节点加入分布式网络时,如果所述节点负责的键值空间有内容,则所述节点为所述内容的CP。

6.如权利要求4所述的方法,其特征在于,所述需求内容表记录所述节点查找的所有内容的键值和具体信息,包括:所需的所有内容所在的CP的键值和地址信息;以及

当所述节点为所述内容的VS时,记录所述内容的所有强一致节点CRP的键值和地址信息;

当所述节点为所述内容的CRP或弱一致节点IRP时,记录所述内容的VS的键值和地址信息。

7.如权利要求1所述的方法,其特征在于,所述内容的VS根据所述需求内容表进行所述内容的聚类管理包括:所述内容的VS获取所述内容的更新信息,

所述内容的VS根据所述需求内容表向所述内容的CP及所述内容的所有CRP发布所述内容的更新信息。

8.如权利要求7所述的方法,其特征在于,所述内容的VS获取所述内容的更新信息之前包括:所述内容的IRP向所述内容的VS发送版本验证请求,在所述内容的VS验证所述内容的IRP持有的所述内容的版本为最新版本后对所述内容进行更新操作,向所述内容的VS发送更新请求;

所述内容的VS在接收到所述更新请求后对所述内容的更新操作进行更新审核,审核成功后,接受对所述内容的更新操作并修改所述内容的版本号以获取所述内容的更新信息。

9.如权利要求7所述的方法,其特征在于,所述内容的VS获取所述内容的更新信息之前包括:所述内容的CRP对所述内容进行更新操作,向所述内容的VS发送更新请求;

所述内容的VS在接收到所述更新请求后对所述内容的更新操作进行更新审核,审核成功后,接受对所述内容的更新操作并修改所述内容的版本号以获取所述内容的更新信息。

10.如权利要求8或9所述的方法,其特征在于,还包括:所述内容的VS在接收到对所述内容进行更新操作的多个更新请求时,根据所述更新请求的时间戳进行更新审核。

11.如权利要求1所述的方法,其特征在于,所述内容的VS根据所述需求内容表进行所述内容的聚类管理包括:所述内容的VS在所述内容的CP正常离开时,根据所述需求内容表将所述内容的CP的更替消息发送给所有所述内容的CRP;或者所述内容的VS在探测到所述内容的CP失效离开时,将所述内容和自身的所述内容的VS的信息复制给所述内容的新的CP,根据所述需求内容表将所述内容的CP的更替消息发送给所有所述内容的CRP。

12.如权利要求1所述的方法,其特征在于,还包括:

所述内容的VS在自身正常离开时,选择所述内容的新的VS,将所述内容的所有CRP信息发送给所述内容的新的VS,并根据所述需求内容表向所述内容的所有CRP发送所述内容的VS的更替消息。

13.如权利要求1所述的方法,其特征在于,还包括:

所述内容的CP在所述内容原有的VS失效离开后,选择所述内容新的VS,并将所述内容新的VS信息发送给报告所述内容的VS失效离开和查询所述内容的所述内容的CRP和IRP。

14.如权利要求13所述的方法,其特征在于,所述选择所述内容新的VS包括:所述内容的CP将前来报告所述内容的VS失效的所述内容的CRP设置为所述内容的新的VS。

15.如权利要求14所述的方法,其特征在于,所述内容的CP将前来报告所述内容的VS失效的所述内容的CRP设置为所述内容的新的VS之前还包括:所述内容的CRP在一个计时器周期探测不到所述内容的VS,向所述内容的CP报告所述内容的VS失效离开;或者所述内容的CRP向所述内容的VS发送更新请求时探测到所述内容的VS失效离开,向所述内容的CP报告所述内容的VS失效离开。

16.如权利要求13所述的方法,其特征在于,所述选择所述内容新的VS包括:所述内容的CP在一次计时周期内没有所述内容的CRP前来报告所述内容的VS失效时,说明已没有CRP存在,则直接将前来报告的IRP置为新的VS。

17.如权利要求16所述的方法,其特征在于,所述将前来报告所述内容的VS失效的所述内容的CRP设置为所述内容的新的VS之前还包括:所述内容的IRP向所述内容的VS发送版本验证请求时探测到所述内容原有的VS失效离开,向所述内容的CP报告所述内容的VS失效离开;或者所述内容的IRP作为一个新的节点加入网络时,所述内容的CP返回所述内容的VS信息,所述内容的IRP根据所述内容的VS信息出现连接故障时,向所述内容的CP报告所述内容的VS失效离开。

18.如权利要求6所述的方法,其特征在于,还包括:

所述内容的VS在所述内容的CRP正常离开或失效离开时,在所述节点的内容需求表中删除所述正常离开或失效离开的CRP的键值和地址信息。

19.一种分布式网络的内容查询方法,其特征在于,包括:接收内容的查询请求,所述查询请求携带所述内容的键值;

当所述节点的键值管理范围不包括所述内容的键值时,根据需求内容表获取与所述内容的键值距离最小的节点,向与所述内容的键值距离最小的节点转发所述查询请求;所述节点包括:控制节点CP和复制节点RP,所述复制节点包括:虚拟服务器VS、强一致节点CRP、弱一致节点IRP;

所述节点接收内容的查询请求还包括:

当所述节点的键值管理范围包括所述内容的键值时,所述节点为所述查询内容的CP,当所述内容不存在VS时,源节点成为所述内容的VS,并与所述内容的CP建立双向连接;当所述内容存在VS时,所述源节点成为所述内容的弱一致节点IRP,并与所述内容的VS建立连接。

20.如权利要求19所述的方法,其特征在于,所述源节点成为所述内容的VS,并与所述内容的CP建立双向连接之后还包括:所述VS和所述CP保持周期性的存活探测。

21.如权利要求19所述的方法,其特征在于,所述节点成为所述内容的IRP之后还包括:当所述内容的IRP的访问频率高于所述内容的VS设定的升级临界值时,所述内容的VS将所述内容的IRP升级为所述内容的CRP。

22.如权利要求21所述的方法,其特征在于,还包括:所述内容的VS在所述内容的CRP的访问频率低于设定的降级临界值时,将所述内容的CRP降级为所述内容的IRP。

23.一种分布式网络管理系统,其特征在于,包括:

需求内容表生成节点,用于当所述节点分别加入分布式网络时,通过查找内容,生成所述内容的需求内容表,并根据所述需求内容表进行消息的路由转发;所述节点包括:控制节点CP和复制节点RP,所述复制节点包括:虚拟服务器VS、强一致节点CRP、弱一致节点IRP;

聚类管理节点,用于根据所述需求内容表进行所述内容的聚类管理;所述聚类管理包括:内容的查找和获取,内容的更新和发布,节点的加入和离开,所述强一致节点和所述弱一致节点的管理。

24.一种分布式网络管理系统,其特征在于,包括:

虚拟服务器,所述虚拟服务器是从复制节点RP中选出来的一个普通节点,用于根据需求内容表进行内容的聚类管理;所述聚类管理包括:内容的查找和获取,内容的更新和发布,节点的加入和离开,强一致节点CRP和弱一致节点IRP的管理;

所述强一致节点,是和虚拟服务器保持强一致的节点,用于对所述内容进行内容更新操作,向所述内容的所述虚拟服务器VS发送更新请求;

所述弱一致节点,是和虚拟服务器保持弱一致的节点,用于发送版本验证请求,在所述版本为所述内容的最新版本时,进行内容更新操作,向所述内容的VS发送更新请求;

控制节点,为每个内容通过分布式哈希表DHT映射到的一个键值最接近的节点,用于在探测到所述内容的VS失效离开时,任命所述内容新的VS,当所述内容不存在VS时,任命查询所述内容的节点成为所述内容的VS。

25.一种弱一致节点,其特征在于,包括:

查询模块,用于查找内容;

路由转发模块,用于根据存储模块存储的需求内容表进行消息的路由转发;

第一更新操作模块,用于发送版本验证请求,在所述版本为所述内容的最新版本时,进行内容更新操作,向所述内容的虚拟服务器VS发送更新请求;

所述弱一致节点是和虚拟服务器保持弱一致的节点。

26.如权利要求25所述弱一致节点,其特征在于,还包括:存储模块,用于存储根据所述查找内容生成的需求内容表。

27.一种强一致节点,其特征在于,包括:

查询模块,用于查找内容;

路由转发模块,用于根据存储模块存储的需求内容表进行消息的路由转发;

第二更新操作模块,用于对所述内容进行内容更新操作,向所述内容的虚拟服务器VS发送更新请求;

所述强一致节点是和虚拟服务器保持强一致的节点。

28.如权利要求27所述的强一致节点,其特征在于,还包括:第一探测模块,用于每隔一次计时器周期探测所述内容的VS是否存活;

第一报告模块,用于在所述第一探测模块探测到所述内容的VS失效离开时,向所述内容的控制节点CP报告所述内容的VS失效离开。

29.一种虚拟服务器,其特征在于,包括:

查询模块,用于查找内容;

路由转发模块,用于根据存储模块存储的需求内容表进行消息的路由转发;

聚类管理模块,用于在更新审核模块接受对所述内容的更新请求,第二探测模块探测到所述内容的控制节点CP或所述内容的强一致节点CRP失效离开时,根据所述存储模块存储的所述需求内容表进行所述内容的聚类管理;

所述聚类管理包括:内容的查找和获取,内容的更新和发布,节点的加入和离开,强一致节点CRP和弱一致节点IRP的管理;

所述虚拟服务器是从复制节点RP中选出来的一个普通节点。

30.如权利要求29所述虚拟服务器,其特征在于,还包括:版本验证模块,用于在接收到所述内容的IRP发送的版本验证请求时验证所述内容的IRP版本是否是所述内容的最新版本;

更新审核模块,用于在接收到所述内容的更新请求后,判断所述内容的版本号是否是最新的版本号,如果是,则接受对所述内容的更新操作并修改所述内容的版本号;在接收到对所述内容进行内容更新操作的多个更新请求时,根据所述更新请求的时间戳进行更新审核;

第二探测模块,用于每隔一次计时器周期探测所述内容的CP和所述内容的CRP是否存活;

级别管理模块;用于在所述内容的IRP的访问频率高于设定的升级临界值时将所述内容的IRP升级为所述内容的CRP;在所述内容的CRP的访问频率低于设定的降级临界值时将所述内容的CRP降级为所述内容的IRP。

31.一种控制节点,其特征在于,包括:

查询模块,用于查找内容;

路由转发模块,用于根据存储模块存储的需求内容表进行消息的路由转发;

第三探测模块,用于每隔一次计时器周期探测所述内容的虚拟服务器VS是否存活;

任命管理模块,用于在所述第三探测模块探测到所述内容的VS失效离开时,任命所述内容新的VS,当所述内容不存在VS时,任命查询所述内容的节点成为所述内容的VS;

所述控制节点为每个内容通过分布式哈希表DHT映射到的一个键值最接近的节点。

说明书 :

一种分布式网络的管理方法、内容查询方法、系统及装置

技术领域

[0001] 本发明涉及网络技术领域,特别是涉及一种分布式网络的管理方法、内容查询方法、系统及装置。

背景技术

[0002] P2P(Peer-to-peer,点对点)网络是一种新兴的、分布式内容共享结构。在P2P网络中,每节点都同时扮演着客户端和服务器的角色,既可以作为内容的共享者提供内容,也可以作为内容的需求者下载内容。当节点需要使用内容时,通过关键字或键值查找到存储该内容的节点,并从这些节点获得所需内容。
[0003] 早期的P2P网络中,内容仅存储在拥有该内容的节点上,需要内容的节点通过连接拥有该内容的节点才能获得内容。但当有大量节点需要同一内容时,拥有该内容的节点无法满足所有节点的查询需求;另一方面,当拥有该内容的节点失效或退出后,网络中其他节点将无法再获得该内容。
[0004] 为了解决上述问题,后期P2P网络中开始引入副本的概念,副本是指本身并不拥有该内容的节点通过查询获取并缓存的内容。在网络中引入副本之后,虽然节点的负担降低了,查询的效率也得到了提高,但也引入了新的问题。在P2P网络中,内容和内容的副本之间缺乏有效的管理,当拥有内容的节点上存储的内容被修改后,如何同步修改所有的副本,并保证所有节点查询的都是最新版本的内容。而且,由于P2P网络中的节点具有短暂性,网络中节点频繁更替,节点对内容的需求也频繁变化,所以难以形成稳定分布。而节点对内容查找的效率以及对内容变化的跟踪也会随着节点的迁移和更替而受到影响。
[0005] 目前还缺乏让内容在网络中稳定分布,且需求某一内容的节点在网络中快速的定位和获取有效内容的机制。

发明内容

[0006] 本发明实施例提供了一种分布式网络的管理方法、内容查询方法、系统及装置,以建立一种新型的P2P内容稳定分布的网络模型,实现内容的高效查找,并跟踪内容的变化,对内容及其副本进行控制和管理。
[0007] 本发明实施例一方面提出一种分布式网络的管理方法,包括:
[0008] 当节点加入分布式网络时,通过查找内容,生成所述内容的需求内容表;
[0009] 当节点为所述内容的虚拟服务器VS时,根据所述需求内容表进行所述内容的聚类管理。
[0010] 本发明实施例一方面提出一种分布式网络的内容查询方法,包括:
[0011] 接收内容的查询请求,所述查询请求携带所述内容的键值;
[0012] 当所述节点的键值管理范围不包括所述内容的键值时,根据需求内容表获取与所述内容的键值距离最小的节点,向与所述内容的键值距离最小的节点转发所述查询请求。
[0013] 本发明实施例一方面提出一种分布式网络管理系统,包括:
[0014] 需求内容表生成节点,用于当所述节点分别加入分布式网络时,通过查找内容,生成所述内容的需求内容表,并根据所述需求内容表进行消息的路由转发;
[0015] 聚类管理节点,用于根据所述需求内容表进行所述内容的聚类管理。
[0016] 本发明实施例一方面提出一种分布式网络管理系统,包括:
[0017] 虚拟服务器,用于根据需求内容表进行所述内容的聚类管理;
[0018] 强一致节点,用于对所述内容进行内容更新操作,向所述内容的所述虚拟服务器VS发送更新请求;
[0019] 弱一致节点,用于发送版本验证请求,在所述版本为所述内容的最新版本时,进行内容更新操作,向所述内容的VS发送更新请求;
[0020] 控制节点,用于在探测到所述内容的VS失效离开时,任命所述内容新的VS,当所述内容不存在VS时,任命查询所述内容的节点成为所述内容的VS。
[0021] 本发明实施例一方面提出一种弱一致节点,包括:
[0022] 查询模块,用于查找内容;
[0023] 路由转发模块,用于根据所述存储模块存储的需求内容表进行消息的路由转发;
[0024] 第一更新操作模块,用于发送版本验证请求,在所述版本为所述内容的最新版本时,进行内容更新操作,向所述内容的VS发送更新请求。
[0025] 本发明实施例一方面提出一种强一致节点,包括:
[0026] 查询模块,用于查找内容;
[0027] 路由转发模块,用于根据所述存储模块存储的需求内容表进行消息的路由转发;
[0028] 第二更新操作模块,用于对所述内容进行内容更新操作,向所述内容的VS发送更新请求。
[0029] 本发明实施例一方面提出一种虚拟服务器,包括:
[0030] 查询模块,用于查找内容;
[0031] 路由转发模块,用于根据所述存储模块存储的需求内容表进行消息的路由转发;
[0032] 聚类管理模块,用于在所述更新审核模块接受对所述内容的更新请求,所述第二探测模块探测到所述内容的CP或所述内容的CRP失效离开时,根据所述存储模块存储的所述需求内容表进行所述内容的聚类管理。
[0033] 本发明实施例一方面提出一种控制节点,包括:
[0034] 查询模块,用于查找内容;
[0035] 路由转发模块,用于根据所述存储模块存储的需求内容表进行消息的路由转发;
[0036] 第三探测模块,用于每隔一次计时器周期探测所述内容的VS是否存活;
[0037] 任命管理模块,用于在所述第三探测模块探测到所述内容的VS失效离开时,任命所述内容新的VS,当所述内容不存在VS时,任命查询所述内容的节点成为所述内容的VS。
[0038] 本发明实施例的技术方案具有以下优点:
[0039] 本发明实施例通过构建一个内容及其副本和路由信息可以形成具有规则拓扑结构的网络,使内容在网络中稳定分布;保证内容查找的高效性;对内容及其副本进行有效的更新和控制,保证内容及其副本的有效性;以及在节点发生迁移和更替以及节点对内容的需求发生变化时,降低对整个网络的影响。

附图说明

[0040] 图1为本发明实施例中的双层结构示意图;
[0041] 图2为本发明实施例中的节点之间邻接连接示意图;
[0042] 图3为本发明实施例中的节点的数据结构;
[0043] 图4为本发明实施例一中的分布式网络的管理方法流程示意图;
[0044] 图5为本发明实施例二中的CAN路由示意图;
[0045] 图6为本发明实施例二中的改进路由示意图;
[0046] 图7为本发明实施例二中的单个节点接收到查询请求之后的处理流程示意图;
[0047] 图8为本发明实施例二中的节点进行内容查找和获取的流程示意图;
[0048] 图9为本发明实施例三中的节点进行内容更新和发布的流程示意图;
[0049] 图10为本发明实施例四中的CP正常离开时的时序图;
[0050] 图11为本发明实施例四中的CP非正常离开时的时序图;
[0051] 图12为本发明实施例四中的VS离开正常离开时的时序图;
[0052] 图13为本发明实施例四中的VS离开非正常离开时的时序图;
[0053] 图14为本发明实施例五中的IRP转换为CRP的时序图;
[0054] 图15为本发明实施例五中的CRP转换为IRP的时序图;
[0055] 图16为本发明实施例中的一种弱一致节点示意图;
[0056] 图17为本发明实施例中的一种强一致节点示意图;
[0057] 图18为本发明实施例中的一种虚拟服务器示意图;
[0058] 图19为本发明实施例中的一种控制节点示意图。

具体实施方式

[0059] 本发明实施例提供一种分布式网络的管理方法及装置。
[0060] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述:
[0061] 如图1所示,本发明的实施例从逻辑上将系统分成层结构,如图1所示,上层为内容分布,下层为节点分布。节点之间采用CAN(Controller AreaNetwork,即控制器局域网)建立d维键值(注册表里面的所有信息是以各种形式的键值项数据保存下来,键值项由键值名、数据类型和键值三部分组成,其格式为:“键值名:数据类型:键值”)空间的基本路由分布,内容则根据DHT(Distributed Hash Table,分布式哈希表)机制映射到键值最接近的节点上,一个内容和多个节点形成了一对多的关系。
[0062] 如图1所示,每个内容通过DHT映射到一个键值最接近的节点上,这个节点称为该内容的CAN控制节点(Control Peer,CP),节点P1是内容A的CP,每一个内容在系统同时有且唯一的CP。CP本身并不负责内容的管理和更新,而是作为一个备份节点保存内容的信息,并作为查询时的索引节点。
[0063] 每个内容可能会被其他节点需要,这些节点对内容进行访问,存储了该内容,称为该内容的副本,并可能对内容进行操作或更新,这些节点称为该内容的复制节点(Replica Peer,RP),如图1中与内容虚线连接的节点就是RP,节点P2、P3、P4、P6都是内容A的RP。RP作用是:通过建立层次结构完成对内容以及副本的维护和更新。RP分为三类:虚拟服务器(Virtual Server,VS)、强一致节点(Control Replica Peer,CRP)、弱一致节点(Infirm Replica Peer,IRP)。
[0064] VS是从RP中选出来的一个普通节点,负责对内容进行更新并发布。VS和CP保持双向连接,并周期性的探测存活。
[0065] CRP是和VS保持强一致的节点,CRP上存储的内容副本一直保持最新版本,在内容更新后,CRP会接收到VS发布的更新信息。CRP和VS之间保持双向连接,并保持定时器,在一定周期内若没有交互信息,则会主动发送信息探测存活。
[0066] IRP是和VS保持弱一致的节点,IRP上存储的副本可能是旧版本,在内容发生更新后,不会接收到VS发布的更新信息。在IRP使用内容前,需要先向VS验证版本信息来保持内容的一致性。
[0067] 本发明实施例中的节点和节点之间的连接分为两类:邻接连接和远程连接。邻接连接是指根据CAN的路由分布产生的相邻节点之间的连接,比如图2中节点P2和P3之间的连接。远程连接是指根据节点对内容的需求产生的需求内容的节点之间以及和负责内容节点之间的连接,比如图1中节点P1和P4之间的连接。CP和RP之间的连接,VS和CRP以及IRP之间的连接都是远程连接。远程连接可能是双向的,比如CP和VS之间的连接,也可能是单向的,比如VS和IRP之间的连接。远程连接相当于小世界理论中的“捷径”,可以降低查询路径长度。
[0068] 在本发明实施例中,对任意普通节点而言,只要该节点负责的键值空间内有内容存在,该节点即作为CP负责这些内容。当该节点需要其他内容并需要持续保持这些内容时,该节点将成为内容的RP。所以,一个普通节点可能同时具有不同内容的CP、VS、CRP、IRP这些身份;对于同一内容,节点可以是该内容的CP、VS、CRP或IRP等身份中的一种,结构如图3,包括:自身的键值、键值空间范围、结构路由表、结构内容表、需求内容表。
[0069] 其中,结构路由表由CAN协议产生,记录所有和该节点邻接的节点的键值和地址信息。在加入到结构化网络中的节点,都有一个路由表。
[0070] 结构内容表记录了该节点作为CP负责的所有内容的信息,包括:内容的键值,内容的具体信息,该内容相关的VS的键值和地址信息。
[0071] 需求内容表记录了该节点所需的所有内容的键值,内容的具体信息,该内容所在的CP的键值和地址信息。若该节点是VS,则还保存了所有CRP的键值和地址信息;若该节点是所需内容的CRP或IRP,则还保存了相关的VS的键值和地址信息。
[0072] 本发明实施例中,通过节点之间邻接连接和远程连接,实现了路由信息的规则有效拓扑;通过根据对内容的需求将节点分为不同的类型,实现了内容及其副本的规则拓扑。
[0073] 本发明实施例一提供一种分布式网络的管理方法,如图4所示,包括:
[0074] 步骤s401,当节点加入分布式网络时,通过查找内容,生成所述内容的需求内容表。
[0075] 步骤s402,根据所述需求内容表进行消息的路由转发。具体为:根据步骤s401之前生成的结构路由表和结构内容表,及步骤s401生成的所述需求内容表进行消息的路由转发。
[0076] 该步骤具体包括:
[0077] 步骤s402.1,所述节点接收内容的查询请求,所述查询请求携带所述内容的键值。
[0078] 步骤s402.2,当所述节点的键值管理范围不包括所述内容的键值时,所述节点根据本地存储的结构路由表、结构内容表、以及需求内容表获取与所述内容的键值距离最小的节点,向与所述内容的键值距离最小的节点转发所述查询请求;
[0079] 步骤s402.3,当所述节点的键值管理范围包括所述内容的键值时,所述节点为所述查询内容的CP,当所述内容不存在VS时,所述节点成为所述内容的VS,并与所述内容的CP建立双向连接;当所述内容存在VS时,所述节点成为所述内容的IRP,并与所述内容的VS建立连接。
[0080] 步骤s403,当节点为所述内容的虚拟服务器VS时,根据所述需求内容表进行所述内容的聚类管理。该聚类管理包括:内容的查找和获取,内容的更新和发布,节点的加入和离开,CRP和IRP的管理。
[0081] 本实施例中,通过结构路由表、结构内容表、以及需求内容表实现对内容的快速定位和查找,通过该内容的VS进行聚类管理,保证了该内容的CRP上存储的信息保持一致性。
[0082] 下面通过具体的实施例对内容的查找和获取、内容的更新和发布、节点的加入和离开、CRP和IRP的管理进行详细描述。
[0083] 实施例二、内容的查找和获取
[0084] 由于节点上不仅存储了邻居节点的信息,还因为远程连接而存储了一些远处节点的信息,这些远程连接相当于small-world中的“捷径”,通过将这些“捷径”和CAN的路由算法相结合,可以获得较小的平均查询路径长度。
[0085] 当一个节点需要内容时,通过内容的键值进行路由,搜索所有的邻接连接和远程连接,寻找键值最为接近的节点发送询问请求,如此反复转发,直到找到负责该内容的CP。这种查找过程不同于CAN在键值空间连续的逼近目的地,而是存在跳跃式的逼近。比如节点P5需要查找内容A,如果是通过CAN的路由算法,则查找沿P5->P4->P3->P1->A的路径找到内容A,如图5所示。但若P4和P1之间存在聚类连接,则查找可以沿P5->P4->P1->A的路径找到内容A,如图6所示。
[0086] 单个节点接收到查询信息之后的处理流程如图7所示,对应的程序处理过程如下:
[0087] Receive Search(Key,Address)//节点P接收到地址为Address的节点查找键值为Key内容的请求
[0088] {
[0089] If(Key属于节点P的键值范围) //自身是目标节点
[0090] return(内容信息,内容的CP信息,内容的VS地址)
[0091] else//自身不是目标节点
[0092] {
[0093] PeerNearest=P;
[0094] For(分别取出所有邻居节点(NeighborP)in CAN路由表)
[0095] If(Distance(NeighborP,Key))<Distance(PeerNearest,Key))[0096] PeerNearest=NeighborP;
[0097] For(all作为CP负责的内容in CAN内容表)
[0098] If(Distance(该内容的VS,Key)<Distance(PeerNearest,Key)[0099] PeerNearest=该内容的VS;
[0100] For(all内容in所需内容表)
[0101] {
[0102] If(P是该内容的VS)
[0103] {
[0104] If(Distance(该内容的CP,Key)<Distance(PeerNearest,Key)[0105] PeerNearest=该内容的CP;
[0106] For(所有该内容的CRP)
[0107] If(Distance(该内容的CRP,Key)<Distance(PeerNearest,Key)[0108] PeerNearest=该内容的CRP;
[0109] }
[0110] else //P是该内容的CRP或IRP
[0111] {
[0112] If(Distance(该内容的CP,Key)<Distance(PeerNearest,Key)[0113] PeerNearest=该内容的CP;
[0114] If(Distance(该内容的VS,Key)<Distance(PeerNearest,Key)[0115] PeerNearest=该内容的VS;
[0116] }
[0117] }
[0118] }
[0119] Transmit Search(Key,Address)to PeerNearest
[0120] //向当前所有关联节点键值距离目标节点最近的节点转发
[0121] }
[0122] Distance(P,Key)//节点P和目标键值Key之间的距离
[0123] {
[0124] distance=0;
[0125] for(i=1;i<=d;i++)//d是键值空间的维数
[0126] distance=|节点P在第i维的键值-Key在第i维的键值|;
[0127] }
[0128] 节点根据结构路由表、结构内容表、以及需求内容表进行消息的路由转发包括以下步骤:
[0129] 步骤s701,节点P接收查询请求。该请求包含源节点的地址信息(Address)以及查找内容的键值(Key)。
[0130] 步骤s702,判断查找内容的键值是否在节点P的键值管理范围,是则节点P为该查询请求的目标节点,即该查找内容的CP,转步骤s703,否则为该查询请求的中继节点,转步骤s704。
[0131] 步骤s703,向源节点返回查找内容的元数据和该查找内容的VS地址信息。
[0132] 步骤s704,从CAN路由表中获取与该查找内容键值距离最小的节点。
[0133] 步骤s705,从CAN内容表中获取与该查找内容键值距离最小的节点。
[0134] 步骤s706,从需求内容表中获取与该查找内容键值距离最小的节点。
[0135] 步骤s707,从步骤s704~s706中获取与该查找内容键值距离最小的节点,向与该查找内容键值距离最小的节点继续转发该查询请求。
[0136] 当该节点查找到所需的内容之后,CP直接将该内容的具体信息以及该内容的VS地址返回。如果该节点只是需要内容当前的值,而不需要关注该内容信息的变化或对该内容进行操作,则仅存储返回的内容并使用。如图8所示,如果该节点需要持续的关注该内容或对内容进行操作,则该节点和VS建立连接,成为该内容的IRP节点。如果该内容还没有RP,且不存在VS,则该节点从CP获得内容的具体信息,自动成为该内容的VS,和CP建立双向连接,该内容的VS根据需求内容表进行该内容的聚类管理。本实施例中,通过聚类连接和按内容键值进行路由的方法,保证了内容查找的高效性。
[0137] 图8包括如下步骤:
[0138] 步骤s801,根据该内容的键值,搜索结构路由表、内容路由表、以及需求内容表,找到键值最接近的节点发送查询请求。
[0139] 步骤s802,经过若干次转发找到该内容的CP,获取该内容及该内容的VS的地址信息。
[0140] 步骤803,判断是否需要持续关注内容的变化或对该内容进行操作,是则转步骤s805,否则,转步骤s804。
[0141] 步骤s804,存储并使用该内容。
[0142] 步骤s805,进一步判断该内容是否已有VS,是则转步骤s806,否则,转步骤s807。
[0143] 步骤s806,成为该内容的IRP,和VS建立连接。
[0144] 步骤s807,成为该内容的VS,和CP建立双向连接。
[0145] 本实施例实现节点的快速定位和查找内容,通过该内容的分布情况,获取该内容的节点可成为该内容的VS或IRP,以对该内容持续进行关注或操作。
[0146] 实施例三、内容的更新和发布
[0147] 由于所有内容的RP上都会保存一份该内容的副本,所以整个网络中会存在内容的多个副本。为了保证所有节点都能在较低的通信量下,获得新的有效的内容并能对内容进行合法的操作,本发明使用了一种混合push/pull的内容更新和发布协议对内容及其副本进行控制和更新。
[0148] 为了降低通信量,本发明实施例根据节点对内容的需求频率决定对该节点的类型,将频繁访问内容的节点设置为CRP,将较少访问内容的节点设置为IRP。而且,为了能在内容更新之后区分内容的不同版本,每个内容都有一个版本号,该内容的VS在每次合法更新之后对版本号进行操作。
[0149] 整个内容更新和发布过程分为三步:更新请求,更新审核,更新发布。基本流程如图9所示。
[0150] 步骤s901,更新请求。
[0151] 当一个RP要对内容进行操作时,首先会判断自身的类型。如果是CRP,则该节点本身就存储了内容的最新版本,可以直接对内容进行操作,并向VS发送更新请求,该请求包括:操作结果和当前的版本号。如果是IRP,则该节点上存储的副本可能是陈旧版本,需要向VS发送当前版本号来检测版本信息,如果该版本号和VS上存储的当前版本一致,则VS返回确认信息,如果不一致,则VS返回当前最新版本的内容信息。此后IRP采用和CRP同样的方式对内容进行操作并发出更新请求。
[0152] 步骤s902,更新审核。
[0153] VS接收到更新的内容后,先判断内容的版本号是否是最新的版本号,如果是,则接受更新并修改版本号,同时返回确认信息;否则,拒绝更新,并返回最新版本信息。如果有两个RP同时提交更新结果,VS根据更新请求的时间戳判定更新的有效性。例如:接受时间戳较早的更新。
[0154] 步骤s903,更新发布。
[0155] 在VS接受更新之后,会将更新后的内容和新的版本号发送给CP和所有CRP。由于IRP和VS之间是弱一致关系,所以并不需要向IRP发布更新信息。
[0156] 本实施例中,通过该内容的VS发布更新信息,实现了网络中该内容的CRP存储的该内容的副本信息保持一致。
[0157] 实施例四、节点的加入与离开
[0158] 若节点希望加入网络,则可以通过CAN中的节点加入算法,完成节点加入过程。节点加入分布式网络,生成结构路由表和结构内容表;如果该节点被分配到的键值空间内有内容存在,则该节点自动成为内容的CP。当该节点请求查找其他内容时,才会通过路由查找协议进一步成为其他内容的RP,当该节点查找内容时,生成该内容的需求内容表。整个节点加入过程,仅会影响节点最后所在位置周围的邻居节点,而对网络中绝大多数节点都不会产生影响。
[0159] 一个节点离开网络,可能会造成CP的更替、VS的更替以及CRP数量改变。所以根据节点的不同身份,节点正常离开网络和失效离开网络会有不同的处理方式。
[0160] 由于CP和内容之间的映射是通过DHT机制进行映射的,CP和内容的键值不会变化,所以只有当CP离开系统或内容消失时,才会发生CP的更换。
[0161] CP离开系统包括正常离开和失效离开两种。
[0162] 正常离开:如图10所示,当CP正常离开时,CP所负责的键值空间根据CAN协议,将归由CP的邻接节点负责。CP可以在键值空间转移的同时,将内容相关信息(包括:内容的具体信息,VS信息)转移,并通知VS CP的更替。VS在得知CP更替之后,将新的CP信息发送给所有的CRP节点。虽然IRP没有接收到CP更替的信息,但可以在需要时通过询问VS或通过CAN路由找到新的CP。
[0163] 失效离开:如图11所示,当CP失效后,邻接节点在得知该节点失效后,会自动瓜分该节点所负责的键值空间,但并不知道该键值空间上的内容信息。由于VS周期性的探测CP是否存活,在CP失效时VS会发现失效。在VS发现CP失效后,将内容信息和自己的信息复制给新的CP,并通知所有CRP CP的更替。
[0164] 当VS作为RP离开时,将发生VS的更换,包括正常更换和失效更换。
[0165] 正常更换:如图12所示,当VS要离开系统时,将从剩下的CRP中选出一个性能较好的节点作为新的VS,将该内容所有的CRP信息传递给新的VS,并将自己的离开以及新的VS的信息发送给所有的CRP以及CP。所有的CRP以及CP更新存储的VS的信息。如果该VS是内容的最后一个CRP,则仅向CP发送自身离开的信息,CP将删除VS相关信息,直至有新的节点成为RP或有原来的IRP来询问VS的信息而自动升级为VS,并从CP获得内容的最新版本信息。此处性能较好的节点是指在线时间较长,带宽较大的节点,当然也可以通过其他的标准选择VS,比如:网络延迟或地理位置等。
[0166] 失效更换:在下面4种情况下会有节点发现VS失效:1、CRP计时器超时而探测VS;2、CRP要提交更新;3、IRP需要使用内容时验证内容版本状态;4、有新的IRP加入时,CP返回原VS的地址信息,当新的IRP试图连接原VS。当节点发现VS失效后,会主动通知CP。CP接收到失效报告后,会主动检测VS,确认失效之后:
[0167] 如果前来报告的是CRP,则会将前来报告的节点设为新的VS,并将自身存储的内容信息作为内容的最新版本,如图13-A;
[0168] 如果前来报告的是IRP,则CP等待CRP的一次计时器周期等待CRP来报告,此后处理同上,如图13-B;
[0169] 如果前来报告的是IRP,CP等待CRP的一次计时器周期,却没有CRP来报告,则说明现在已没有CRP存在,则直接将前来报告的IRP置为新的VS,并将自身存储的内容作为最新版本发送给新的VS,并将新VS的信息发送给所有前来报告失效的IRP,如图13-C。
[0170] 在此后如果有其他IRP或CRP前来报告原VS失效,则直接将新VS的地址信息发送给它们,由它们重新连接新的VS恢复以前的拓扑关系。
[0171] 当CRP正常离开网络时,会主动通知VS。如果CRP失效,则VS在经过一个时钟周期后也会发现该CRP失效。同时,该内容的VS在该内容的CRP正常离开或失效离开时,在该节点的内容需求表中删除该正常离开或失效离开的CRP的键值和地址信息。
[0172] 当IRP正常离开或失效离开网络时,对整个网络没有影响,并不需要向任何节点通报或转移信息。
[0173] 节点离开网络时,首先会造成该节点负责的键值空间的重新划分,这仅会影响该节点的邻居节点。此后,根据该节点的类型不同,会产生不同的影响。如果该节点是CP,则仅会影响到该内容的VS;若该节点是VS,则会影响到该内容的CP和所有CRP;若该节点是CRP,则仅会影响到该内容的VS;若该节点是IRP,则不会对其他节点产生影响。
[0174] 本实施例中,通过计时器周期性的探测、或通过交互(例如:内容的查找、验证)的方式发现该内容的CP、VS、CRP正常或失效离开,形成稳定的分布。当网络中持有该内容的节点发生更替和迁移时,保证不影响对该内容的查找和管理。节点更替过程仅会对该节点的邻居节点,以及和特定内容相关的特定节点,而整个网络的大多数节点和内容都不会受到影响。而且由于内容存储在VS和所有CRP上,且备份在CP上,所以即使节点突然失效,内容也不会丢失。
[0175] 实施例五、CRP和IRP管理:
[0176] CRP和IRP的区别在于对内容的访问频率。节点刚刚成为RP时,一般会作为IRP加入,如果某个IRP频繁访问和使用内容,则会被升级为CRP。如果某个CRP对内容的访问频率降低了,则会被降级为IRP。
[0177] 为了衡量CRP/IRP对内容的访问频率,每个CRP/IRP都会纪录自己最近一段时间内对内容的访问频率,并在向VS发送信息时捎带。VS在接收到每个更新信息的请求时,也会计算近来一段时间内容更新的频率,并根据内容更新的频率设定升级成为CRP和降级成为IRP的临界值。升级和降级的临界值根据内容更新的频率确定,可以设置为正好等于内容更新的频率,也可以将升级临界值设置为内容更新的频率*(1+p),将降级临界值设置为内容更新频率*(1-p),此处,0.5<p<1。
[0178] 如果接收到某个IRP的信息中访问内容的频率大于升级临界值,则将该IRP升级为CRP。VS会保留这个新CRP的地址,并通知该节点已经被升级为CRP,附带计时器的初始设置。该RP接收到升级信息之后,修改自身状态,初始化一个计时器开始计时。如图14所示。
[0179] 如果接收到某个CRP的信息中访问内容的频率低于降级临界值,则将该CRP降级为IRP。VS会删除该节点的相关信息,并通知该节点更改状态。该节点接收到降级信息之后,会更改自己的状态,并删除计时器。如图15所示。
[0180] 本实施例中,通过该内容的VS对IRP和CRP的级别管理,满足节点的晋级要求,降低了向访问频率低的CRP频繁地探测、以及发布更新信息等导致的通信量,同时,也增强了用户体验。
[0181] 本实施例中:每个节点的远程连接数不是固定不变的,而是根据内容的热门程度不断变化的。内容越热门,需求内容的节点数越多,构建的远程连接数就越多,可以进一步加快热门内容的查找速率。
[0182] 本发明实施例还提供一种分布式网络管理系统,包括:虚拟服务器,用于根据需求内容表进行所述内容的聚类管理;强一致节点,用于对所述内容进行内容更新操作,向所述内容的VS发送更新请求;弱一致节点,用于发送版本验证请求,在所述版本为所述内容的最新版本时,进行内容更新操作,向所述内容的VS发送更新请求;控制节点,用于在探测到所述内容的VS失效离开时,任命所述内容新的VS,当所述内容不存在VS时,任命查询所述内容的节点成为所述内容的VS。
[0183] 本发明实施例提供了一种弱一致节点,如图16所示,包括:查询模块1,用于查找内容;存储模块2,用于存储结构路由表、结构内容表、以及根据所述查找内容生成的需求内容表;路由转发模块3,用于根据所述存储模块存储的所述结构路由表、结构内容表、以及需求内容表进行消息的路由转发。第一更新操作模块5,用于发送版本验证请求,在所述版本为所述内容的最新版本时,进行内容更新操作,向所述内容的VS发送更新请求。
[0184] 本发明实施例提供了一种强一致节点,如图17所示,包括:查询模块1,用于查找内容;存储模块2,用于存储结构路由表、结构内容表、以及根据所述查找内容生成的需求内容表;路由转发模块3,用于根据所述存储模块存储的所述结构路由表、结构内容表、以及需求内容表进行消息的路由转发。第二更新操作模块15,用于对所述内容进行内容更新操作,向所述内容的VS发送更新请求。第一探测模块20,用于每隔一次计时器周期探测所述内容的VS是否存活。第一报告模块25,用于在所述第一探测模块20探测到所述内容的VS失效离开时,向所述内容的CP报告所述内容的VS失效离开。
[0185] 本发明实施例提供了一种虚拟服务器,如图18所示,包括:查询模块1,用于查找内容;存储模块2,用于存储结构路由表、结构内容表、以及根据所述查找内容生成的需求内容表;路由转发模块3,用于根据所述存储模块存储的所述结构路由表、结构内容表、以及需求内容表进行消息的路由转发。版本验证模块25,用于在接收到所述内容的IRP发送的版本验证请求时验证所述内容的IRP版本是否是所述内容的最新版本;更新审核模块26,用于在接收到所述内容的更新请求后,判断所述内容的版本号是否是最新的版本号,如果是,则接受对所述内容的更新操作并修改所述内容的版本号;在接收到对所述内容进行内容更新操作的多个更新请求时,根据所述更新请求的时间戳进行更新审核;第二探测模块27,用于每隔一次计时器周期探测所述内容的CP和所述内容的CRP是否存活;聚类管理模块28,用于在所述更新审核模块接受对所述内容的更新请求,所述第二探测模块探测到所述内容的CP或所述内容的CRP失效离开时,根据所述存储模块存储的所述需求内容表进行所述内容的聚类管理;级别管理模块29;用于在所述内容的IRP的访问频率高于设定的升级临界值时将所述内容的IRP升级为所述内容的CRP;在所述内容的CRP的访问频率低于设定的降级临界值时将所述内容的CRP降级为所述内容的IRP。
[0186] 本发明实施例提供了一种控制节点,如图19所示,包括:查询模块1,用于查找内容;存储模块2,用于存储结构路由表、结构内容表、以及根据所述查找内容生成的需求内容表;路由转发模块3,用于根据所述存储模块存储的所述结构路由表、结构内容表、以及需求内容表进行消息的路由转发。第三探测模块35,用于每隔一次计时器周期探测所述内容的VS是否存活;任命管理模块36,用于在所述第三探测模块35探测到所述内容的VS失效离开时,任命所述内容新的VS,当所述内容不存在VS时,任命查询所述内容的节点成为所述内容的VS。
[0187] 由于一个节点可能同时具有不同内容的CP、VS、CRP、和IRP这些身份,且不同内容的CP、VS、CRP、和IRP的处理机制是类似的,所以该图将同一内容的CP、VS、CRP、和IRP集中显示一个节点上。不影响:在分布网络中,一个节点只能为同一内容的CP、VS、CRP、或IRP中的一种身份。
[0188] 本发明实施例提供了一种分布式网络管理系统,包括:需求内容表生成节点,用于当所述节点分别加入分布式网络时,通过查找内容,生成所述内容的需求内容表,并根据所述需求内容表进行消息的路由转发;聚类管理节点,用于根据所述需求内容表进行所述内容的聚类管理。
[0189] 本发明实施例具有以下有益效果:
[0190] 根据节点对内容的访问频率将节点分类,在不同类型的节点之间建立层次结构实现对内容的控制。本实施例根据节点对内容的访问频率(又称:需求频率)决定了对该节点的内容更新和发布方式:通过主动向所有CRP发布更新,避免了CRP频繁访问内容所带来的大量询问信息;通过IRP在使用内容前主动向VS询问内容的最新版本,从而避免了向访问内容频率较低的IRP频繁发布更新所带来的通信量。因此,本发明实施例在较低的通信量下实现了对内容及其副本的管理和控制,保证了所有节点在对内容进行访问时都能获得最新鲜的版本,并保证了所有更新操作都是在最新版本的基础上累计递增的,而不会出现对陈旧版本的更新操作,此外还有效地降低了系统通信量,并能适应动态变化环境的需求。节点更替过程仅会对该节点的邻居节点,以及和特定内容相关的特定节点,而整个网络的大多数节点和内容都不会受到影响。而且由于内容存储在VS和所有CRP上,且备份在CP上,所以即使节点突然失效,内容也不会丢失。
[0191] 本发明实施例提供的方法满足内容及其副本和路由信息可以在网络中形成比较规则的拓扑结构;保证内容查找的高效性;对内容及其副本进行有效的更新和控制,保证内容及其副本的有效性;在节点发生迁移和更替以及节点对内容的需求发生变化时,保证对拓扑结构、内容查找的高效性、以及内容及其副本的有效性影响较小。
[0192] 本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0193] 本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0194] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0195] 权利要求的内容记载的方案也是本发明实施例的保护范围。
[0196] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0197] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。