著录项信息
专利名称 | 一种在结构化P2P中备份资源的方法和系统 |
申请号 | CN200710074240.6 | 申请日期 | 2007-04-27 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2008-10-29 | 公开/公告号 | CN101296108 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/24 | IPC分类号 | H;0;4;L;1;2;/;2;4;;;H;0;4;L;1;/;2;2;;;H;0;4;L;1;2;/;2;8;;;H;0;4;L;1;2;/;2;6查看分类表>
|
申请人 | 华为技术有限公司 | 申请人地址 | 广东省深圳市龙岗区坂田华电三楼知识产权部
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为技术有限公司 | 当前权利人 | 华为技术有限公司 |
发明人 | 江兴烽 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明公开了一种结构化P2P网络中备份资源的方法、网络设备和系统,所述方法包括根据标记值在所述P2P网络中查找与所述标记值对应的根节点,并在所述根节点上存储所述标记值;确定所述标记值对应的资源需要的备份节点个数k,在所述P2P网络中为所述标记值对应的资源选择k个备份节点;在每个备份节点上分别存储所述标记值及其对应的资源及备份节点个数k;在所述根节点上建立并存储所述标记值对应的资源的k个备份节点的索引信息和所述备份节点个数k。通过实施本发明,能够保证结构化P2P网络中资源的可用性,缩短了节点故障时的响应时间,实现了负载分担。
1.一种在结构化P2P网络中备份资源的方法,其特征在于,包括:
根据标记值在所述P2P网络中查找与所述标记值对应的根节点,并在所述根节点上存储所述标记值;
确定所述标记值对应的资源需要的备份节点个数k,在所述P2P网络中为所述标记值对应的资源选择k个备份节点;
在每个备份节点上分别存储所述标记值及其对应的资源及备份节点个数k;
在所述根节点上建立并存储所述标记值对应的资源的k个备份节点的索引信息和所述备份节点个数k。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述根节点分别与所述每个备份节点之间进行节点有效性检测。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述根节点上存储所述标记值对应的资源。
4.根据权利要求3所述的方法,其特征在于,当所述根节点检测到某个备份节点失效后,或者当所述根节点收到某个备份节点发送的退出请求后,所述方法还包括:
为所述失效或者退出的备份节点在所述结构化P2P网络中选择一个替代备份节点;
在所述替代备份节点上存储所述标记值及其对应的资源及备份节点个数k;
在所述根节点上删除所述失效或者退出的备份节点的索引信息,并在所述根节点上添加所述替代备份节点的索引信息。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
为所述标记值对应的资源设定所需要的备份节点个数阈值m,;
当所述根节点检测到由于失效或者优雅退出,所有备份节点的个数小于等于所述备份节点个数阈值m时,在所述结构化P2P网络中重新选择备份节点,直到所有备份节点个数为k;
在所述重新选择的备份节点上分别存储所述标记值及其对应的资源及备份节点个数k;
在所述根节点上删除所述失效或者退出的备份节点的索引信息,并在所述根节点上添加所述重新选择的备份节点的索引信息。
6.根据权利要求3所述的方法,其特征在于,当备份节点检测到所述根节点失效时,所述方法还包括:
备份节点根据所述标记值在所述结构化P2P网络中查找新的根节点;
在所述新的根节点上存储所述标记值及其对应的资源及所述备份节点个数k;
所述新的根节点在本地重新建立备份节点索引信息。
7.根据权利要求3所述的方法,其特征在于,当所述根节点优雅退出时或所述标记值对应的根节点发生变化时,所述方法还包括:
所述根节点根据所述标记值在所述P2P网络中查找新的根节点;
所述根节点向所述新的根节点发送所述标记值、所述标记值对应的资源的备份节点个数k及备份节点索引信息;
所述新的根节点获取并存储所述标记值对应的资源。
8.根据权利要求3所述的方法,其特征在于,当所述根节点与部分备份节点同时失效时,所述方法还包括:
根据所述标记值在所述结构化P2P网络中查找新的根节点;
向所述新的根节点发送所述标记值及其对应的资源及所述备份节点个数k;
所述新的根节点在所述P2P网络中重新查找备份节点,直到所有备份节点的个数为k;
在所述新的根节点上建立备份节点索引信息。
9.根据权利要求3-8中任意一项所述的方法,其特征在于,当所述根节点收到用户发送的请求所述标记值对应的资源的请求消息后,所述方法还包括:
所述根节点向用户反馈所述标记值对应的资源;或
所述根节点将用户请求下发给备份节点,由所述收到用户请求的备份节点向用户反馈所述标记值对应的资源。
10.根据权利要求3-8中任意一项所述的方法,其特征在于,所述根节点收到释放所述标记值对应的资源的请求后,所述方法进一步包括:
释放所有备份节点上存储的标记值及其对应的资源及备份节点个数k;
断开所述根节点与所有备份节点之间的节点有效性检测链接;
删除所述根节点上存储的备份节点索引信息、标记值及其对应的资源及备份节点个数k。
11.根据权利要求2所述的方法,其特征在于,当备份节点检测到所述根节点失效时,所述方法还包括:
备份节点根据所述标记值在所述结构化P2P网络中查找新的根节点;
在所述新的根节点上存储所述标记值及所述备份节点个数k;
所述新的根节点在本地重新建立备份节点索引信息。
12.根据权利要求2所述的方法,其特征在于,当所述根节点优雅退出时或所述标记值对应的根节点发生变化时,所述方法还包括:
所述根节点根据所述标记值在所述P2P网络中查找新的根节点;
所述根节点向所述新的根节点发送所述标记值、所述标记值对应的资源的备份节点个数k及备份节点索引信息。
13.根据权利要求3所述的方法,其特征在于,当所述根节点与部分备份节点同时失效时,所述方法还包括:
根据所述标记值在所述结构化P2P网络中查找新的根节点;
向所述新的根节点发送所述标记值及所述备份节点个数k;
所述新的根节点在所述P2P网络中重新查找备份节点,直到所有备份节点的个数为k;
在所述新的根节点上建立备份节点索引信息。
14.根据权利要求11-13中任意一项所述的方法,其特征在于,所述根节点收到用户发送的请求所述标记值对应的资源的请求消息后,所述方法还包括:
所述根节点将用户请求转发给某一备份节点,由所述收到用户请求的备份节点向用户反馈所述标记值对应的资源。
15.根据权利要求11-13中任意一项所述的方法,其特征在于,所述根节点收到释放所述标记值对应的资源的请求后,所述方法进一步包括:
释放所有备份节点上存储的标记值及其对应的资源及备份节点个数k;
断开所述根节点与所有备份节点之间的节点有效性检测;
删除所述根节点上存储的备份节点索引信息、标记值及备份节点个数k。
16.一种结构化P2P网络中的根节点,其特征在于,包括:
检测单元,用于根据建立的检测机制,检测备份节点是否失效或者是否收到备份节点发出的退出请求;
备份节点确定单元,用于在检测单元检测到备份节点失效或者收到备份节点发出退出请求的情况下,确定新的备份节点;
资源存储单元,用于在新确定的备份节点上存储资源;
索引信息更新单元,用于更新包括所述新确定的备份节点的索引信息。
17.根据权利要求16所述的根节点,其特征在于所述资源存储单元还用于存储该标记值对应的资源。
18.根据权利要求16所述的根节点,其特征在于,所述根节点还包括:
负载均衡单元,用于在收到用户获取标记值对应的资源的请求时,选择为用户提供服务的备份节点。
19.一种结构化P2P网络中的根节点,其特征在于,包括:
查找单元,用于在所述根节点优雅退出或发生改变时,根据资源对应标记值在所述结构化P2P网络中查找新的根节点;
索引信息发送单元,用于将自身存储的各备份节点的索引信息发送给所述新的根节点。
20.根据权利要求19所述的根节点,其特征在于,还包括存储单元,所述存储单元用于存储该标记值对应的资源。
21.根据权利要求19所述的根节点,其特征在于,所述根节点还包括:
负载均衡单元,用于在收到用户获取标记值对应的资源的请求时,选择为用户提供服务的备份节点。
22.一种结构化P2P网络中的备份节点,其特征在于,包括:
检测单元,用于根据建立的检测机制,检测根节点是否失效;
查找单元,用于在检测单元检测到根节点失效的情况下,根据资源对应标记值在所述结构化P2P网络中查找新的根节点。
23.根据权利要求22所述的备份节点,其特征在于,还包括存储单元,所述存储单元用于存储该标记值对应的资源。
24.一种网络系统,其特征在于,包括根节点和多个备份节点,
所述根节点,用于存储标记值、所述标记值对应的资源的备份节点个数;在结构化P2P网络中为所述标记值对应的资源查找备份节点;在本地为所述多个备份节点建立索引信息;检测所述多个备份节点的有效性;
所述备份节点,用于存储所述标记值,所述标记值对应的资源和备份节点个数;检测所述根节点的有效性。
25.根据权利要求24所述的网络系统,其特征在于,
所述根节点还用于存储所述标记值对应的资源,向所述备份节点发送要求备份节点向用户反馈所述标记值对应的资源的命令或直接向用户反馈所述标记值对应的资源;
所述备份节点还用于根据根节点的命令向用户反馈所述标记值对应的资源。
26.根据权利要求24所述的网络系统,其特征在于,当所述根节点失效时,所述备份节点还用根据所述标记值查找新的根节点,并将所述标记值和备份节点个数发送给所述新的根节点。
一种在结构化P2P中备份资源的方法和系统\n技术领域\n[0001] 本发明涉及网络通信领域,尤其涉及一种在结构化点对点(Peer to Peer,P2P)网络中备份资源的方法和系统。\n背景技术\n[0002] 结构化P2P网络是一个对等的网络,加入该网络的节点在很多情况下是普通节点,例如PC机,这些节点共同担当起网络资源存储和路由的功能。在结构化P2P网络建立过程中,首先确定某一资源(value)的标记值(key),然后根据该key,根据DHT算法查找到对应的节点(root),并将该key及其对应的资源存储在该root上,记为(key,value)。根据结构化P2P网络建立的规则,一个key只能唯一对应一个root节点。如图1所示,为结构化P2P网络示意图。在该网络中,A节点和B节点通过key值key1来查找key1对应的资源,查找的路由过程不同,但是最终都到达了负责存储key1对应的资源的root节点D。\n[0003] 在结构化P2P网络中,某些节点可能主动或因故离开该网络,这样就容易造成存储资源的丢失。为了增强重要存储资源的可用性,让其不会因为个别节点的失效而无法获得,通常要在P2P网络中利用别的节点来为这些资源做一些备份。用来备份某个资源的节点叫做这个资源的备份节点。备份资源的使用使得资源的可用性提高了,但是备份资源也同样会由于备份节点的失效而丢失。root节点存储的资源也同样面临这个问题。所以需要一种方法在节点失效的时候来保护重要的存储资源不丢失。\n[0004] 如图2所示,为现有技术中一种备份资源的系统结构示意图。在该系统中包括一个节点和为这个节点提供备份的N个节点,它们之间形成了一个自我管理的系统。这个系统备份资源的步骤包括:\n[0005] 1、在网络中根据一定的规则为选定节点选择若干(N)个备份节点。选择的规则可以是网络距离或者其他参数。\n[0006] 2、将该选定节点上存储的资源逐个备份到全部N个备份节点上,这样,每个备份节点都存储了与该选定节点相同的内容。\n[0007] 3、当某个备份节点不能提供资源的时候,根据步骤1中的规则,重新确定一个替代节点,并在该替代节点上存储与该选定节点相同的内容。\n[0008] 4、为了保证备份节点的数据不被篡改,该系统应当能够防止任何从备份节点上删除数据的虚假请求,具有分辨备份节点真实性的能力。并且,当其中任意备份节点的任务被解除后,其他的备份节点不再提供相应的备份服务。\n[0009] 发明人经过分析认为,上述现有技术虽然提供了一种P2P网络中的资源备份方法,但是“当其中任意备份节点的任务被解除后,其他的备份节点不再提供相应的备份服务”的技术特征不能保证资源的可用性,而且,该方案中没有提到节点(选定节点或者备份节点)失效时的处理方法,也没有结合结构化P2P网络的查找特点提供解决方案,更不能保证响应时间和资源的可用性。\n发明内容\n[0010] 本发明实施例提供了一种在结构化P2P网络中备份资源的方法和系统,能够保证网络中资源的可用性,并且能够在某个key对应的root失效时缩短响应时间,同时实现网络负载分担。\n[0011] 本发明实施例提供的在结构化P2P网络中备份资源的方法包括:根据标记值在所述P2P网络中查找与所述标记值对应的根节点,并在所述根节点上存储所述标记值;\n[0012] 确定所述标记值对应的资源需要的备份节点个数k,在所述P2P网络中为所述标记值对应的资源选择k个备份节点;\n[0013] 在每个备份节点上分别存储所述标记值及其对应的资源及备份节点个数k;\n[0014] 在所述根节点上建立并存储所述标记值对应的资源的k个备份节点的索引信息和所述备份节点个数k。\n[0015] 优选的,所述根节点分别与所述每个备份节点之间进行节点有效性检测。\n[0016] 优选的,在所述根节点上存储所述标记值对应的资源。\n[0017] 优选的,当所述根节点检测到某个备份节点失效后,或者当所述根节点收到某个备份节点发送的退出请求后,为所述失效或者退出的备份节点在所述结构化P2P网络中选择一个替代备份节点;\n[0018] 在所述替代备份节点上存储所述标记值及其对应的资源及备份节点个数k;\n[0019] 在所述根节点上删除所述失效或者退出的备份节点的索引信息,并在所述根节点上添加所述替代备份节点的索引信息。\n[0020] 优选的,为所述标记值对应的资源设定所需要的备份节点个数阈值m,;\n[0021] 当所述根节点检测到由于失效或者优雅退出,所有备份节点的个数小于等于所述备份节点个数阈值m时,在所述结构化P2P网络中重新选择备份节点,直到所有备份节点个数为k;\n[0022] 在所述重新选择的备份节点上分别存储所述标记值及其对应的资源及备份节点个数k;\n[0023] 在所述根节点上删除所述失效或者退出的备份节点的索引信息,并在所述根节点上添加所述重新选择的备份节点的索引信息。\n[0024] 优选的,当备份节点检测到所述根节点失效时,\n[0025] 备份节点根据所述标记值在所述结构化P2P网络中查找新的根节点;\n[0026] 在所述新的根节点上存储所述标记值及其对应的资源及所述备份节点个数k;\n[0027] 所述新的根节点在本地重新建立备份节点索引信息。\n[0028] 优选的,当所述根节点优雅退出时或所述标记值对应的根节点发生变化时,[0029] 所述根节点根据所述标记值在所述P2P网络中查找新的根节点;\n[0030] 所述根节点向所述新的根节点发送所述标记值、所述标记值对应的资源的备份节点个数k及备份节点索引信息;\n[0031] 所述新的根节点获取并存储所述标记值对应的资源。\n[0032] 优选的,当所述根节点与部分备份节点同时失效时,根据所述标记值在所述结构化P2P网络中查找新的根节点;\n[0033] 向所述新的根节点发送所述标记值及其对应的资源及所述备份节点个数k;\n[0034] 所述新的根节点在所述P2P网络中重新查找备份节点,直到所有备份节点的个数为k;\n[0035] 在所述新的根节点上建立备份节点索引信息。\n[0036] 优选的,当所述根节点收到用户发送的请求所述标记值对应的资源的请求消息后,所述根节点向用户反馈所述标记值对应的资源;或\n[0037] 所述根节点将用户请求下发给备份节点,由所述收到用户请求的备份节点向用户反馈所述标记值对应的资源。\n[0038] 优选的,所述根节点收到释放所述标记值对应的资源的请求后,释放所有备份节点上存储的标记值及其对应的资源及备份节点个数k;\n[0039] 断开所述根节点与所有备份节点之间的节点有效性检测链接;\n[0040] 删除所述根节点上存储的备份节点索引信息、标记值及其对应的资源及备份节点个数k。\n[0041] 优选的,当备份节点检测到所述根节点失效时,备份节点根据所述标记值在所述结构化P2P网络中查找新的根节点;\n[0042] 在所述新的根节点上存储所述标记值及所述备份节点个数k;\n[0043] 所述新的根节点在本地重新建立备份节点索引信息。\n[0044] 优选的,当所述根节点优雅退出时或所述标记值对应的根节点发生变化时,所述根节点根据所述标记值在所述P2P网络中查找新的根节点;\n[0045] 所述根节点向所述新的根节点发送所述标记值、所述标记值对应的资源的备份节点个数k及备份节点索引信息。\n[0046] 优选的,当所述根节点与部分备份节点同时失效时,\n[0047] 根据所述标记值在所述结构化P2P网络中查找新的根节点;\n[0048] 向所述新的根节点发送所述标记值及所述备份节点个数k;\n[0049] 所述新的根节点在所述P2P网络中重新查找备份节点,直到所有备份节点的个数为k;\n[0050] 在所述新的根节点上建立备份节点索引信息。\n[0051] 优选的,所述根节点收到用户发送的请求所述标记值对应的资源的请求消息后,所述根节点将用户请求转发给某一备份节点,由所述收到用户请求的备份节点向用户反馈所述标记值对应的资源。\n[0052] 优选的,所述根节点收到释放所述标记值对应的资源的请求后,释放所有备份节点上存储的标记值及其对应的资源及备份节点个数k;\n[0053] 断开所述根节点与所有备份节点之间的节点有效性检测;\n[0054] 删除所述根节点上存储的备份节点索引信息、标记值及备份节点个数k。\n[0055] 本发明实施例提供的一种备份节点,用于结构化P2P网络中,包括:\n[0056] 检测单元,用于根据建立的检测机制,检测根节点是否失效;\n[0057] 查找单元,用于在检测单元检测到根节点失效的情况下,根据所述资源对应标记值在所述结构化P2P网络中查找新的根节点。\n[0058] 优选的,所述存储单元还用于存储该标记值对应的资源。\n[0059] 本发明实施例提供的一种结构化P2P网络中的根节点,包括:\n[0060] 查找单元,用于在所述根节点优雅退出或发生改变时,根据所述资源对应标记值在所述结构化P2P网络中查找新的根节点;\n[0061] 索引信息发送单元,用于将自身存储的各备份节点的索引信息发送给所述新的根节点。\n[0062] 本发明实施例提供的一种结构化P2P网络中的根节点,包括:\n[0063] 检测单元,用于根据建立的检测机制,检测备份节点是否失效或者是否收到备份节点发出的退出请求;\n[0064] 备份节点确定单元,用于在检测单元检测到备份节点失效或者收到备份节点发出退出请求的情况下,确定新的备份节点;\n[0065] 资源存储单元,用于在新确定的备份节点上存储所述资源;\n[0066] 索引信息更新单元,用于更新包括所述新确定的备份节点的索引信息。\n[0067] 优选的,所述存储单元还用于存储该标记值对应的资源。\n[0068] 优选的,所述根节点还包括负载均衡单元,用于在收到用户获取标记值对应的资源的请求时,选择为用户提供服务的备份节点。\n[0069] 本发明实施例提供的一种网络系统,包括根节点和多个备份节点,[0070] 所述根节点,用于存储标记值、所述标记值对应的资源的备份节点个数;在结构化P2P网络中为所述标记值对应的资源查找备份节点;在本地为所述多个备份节点建立索引信息;检测所述多个备份节点的有效性;\n[0071] 所述备份节点,用于存储所述标记值,所述标记值对应的资源和备份节点个数;检测所述根节点的有效性。\n[0072] 优选的,所述根节点还用于存储所述标记值对应的资源,向所述备份节点发送要求备份节点向用户反馈所述标记值对应的资源的命令或直接向用户反馈所述标记值对应的资源;\n[0073] 所述备份节点还用于根据根节点的命令向用户反馈所述标记值对应的资源。\n[0074] 优选的,当所述根节点失效时,所述备份节点还用根据所述标记值查找新的根节点,并将所述标记值和备份节点个数发送给所述新的根节点。\n[0075] 本发明上述实施例通过为一个标记值对应的资源建立多个备份节点,来保证结构化P2P网络中资源的可用性,即资源不会因为某个或者某几个节点的失效而失效。同时,本发明实施例中公开了根节点失效时的备份方法,能够在标记值对应的根节点失效时,缩短提供资源的响应时间。并且,由于根节点可以把用户请求下发给不同的备份节点处理,实现了网络的负载均衡。\n附图说明\n[0076] 图1为结构化P2P网络结构示意图;\n[0077] 图2为现有技术中一种备份资源的系统结构示意图;\n[0078] 图3为本发明实施例中备份资源的系统结构示意图;\n[0079] 图4为本发明所述备份资源的方法实施例一的流程图;\n[0080] 图5为本发明实施例一中备份节点失效或退出时的处理流程;\n[0081] 图6为本发明实施例一中root节点失效时的处理流程图;\n[0082] 图7为本发明所述备份资源的方法实施例二的流程图;\n[0083] 图8为本发明实施例中网络节点的结构示意图。\n具体实施方式\n[0084] 下面结合附图和具体实施例对本发明作进一步说明,但不应当看作是对本发明的限制。\n[0085] 参见图3,为本发明实施例中一种备份资源的系统结构示意图。该系统为一种结构化P2P网络,包括了一个根节点root和多个备份节点(R1......Rk)。所述root节点用于管理所述多个备份节点。所述多个备份节点用于存储标记值及其对应的资源,及备份节点个数。在本发明的一个实施例中,所述root节点存储标记值及其对应的资源,并存储所述多个备份节点的索引信息及资源的备份节点个数k;所述多个备份节点分别存储标记值及其对应的资源及资源的备份节点个数k;所述root节点和所述多个备份节点之间分别建立周期性的节点检测机制,以检测节点的有效性。在本发明的另一个实施例中,所述root节点仅仅存储标记值和所述多个备份节点的索引信息及资源的备份节点个数k;所述多个备份节点分别存储标记值及其对应的资源及资源的备份节点个数k;所述root节点和所述多个备份节点之间分别建立周期性的节点检测机制,以检测节点的有效性。\n[0086] 参见,图4为本发明所述备份资源的方法实施例一的流程图。所述方法包括以下步骤:\n[0087] 步骤401、根据key查找到存储该key对应的资源value的root节点,并在该root节点上存储该key及其对应的资源value,即存储(key,value)对;\n[0088] 以上查找过程可以是由有备份权限的用户发起的。\n[0089] 步骤402、确定该key对应的资源value需要的备份节点个数k,并根据一定规则选择k个节点作为该key对应的资源的备份节点;\n[0090] 上述备份节点个数k可以由有备份权限的用户发送给root节点,也可以由root节点根据资源的重要性根据一定的规则计算得出。\n[0091] 步骤403、root节点保存k个备份节点的索引信息和备份节点个数k;\n[0092] 步骤404、root节点在所选择的k个备份节点上分别存储该(key,value)对和备份节点的个数k;\n[0093] 步骤405、root节点分别和每个备份节点之间建立检测机制,以检测节点的有效性。这种检测机制可以是周期性的,例如,root节点周期性地发检测消息给每个备份节点,备份节点收到检测消息后,返回一个确认消息给root节点,当root节点若干次发送检测消息给某个备份节点而没有收到该备份节点的确认消息,则可以认为此备份节点失效;或者备份节点经过若干个检测周期没有收到root节点发送的检测消息,则认为root节点失效。\n[0094] 如图5所示,为本发明实施例一中备份节点失效或退出时的处理流程图。具体包括:\n[0095] 步骤501、设定(key,value)的备份节点个数阈值m,由于root节点上已经存储了(key,value),且0≤m<k;\n[0096] 步骤502、root节点检测到某备份节点失效或者接收到某备份节点的退出请求;\n[0097] root节点在某备份节点失效后,在本地删除该失效的备份节点的索引信息;或者root节点接收到某备份节点的退出请求后,断开与该备份节点的周期性有效性检测链接,然后在本地删除该请求退出的备份节点的索引信息。\n[0098] 步骤503、root节点检测到有效节点个数n小于等于m;\n[0099] 步骤504、root节点在所述P2P网络中根据一定的规则为该value选择k-n个备份节点;\n[0100] 步骤505、在root节点上添加所述k-n个备份节点的索引信息;\n[0101] 步骤506、在所述k-n个备份节点分别存储(key,value)对及该value的备份节点个数k;\n[0102] 步骤507、所述root节点分别与所述k-n个备份节点之间建立周期性的检测机制,检测节点的有效性。\n[0103] 在上述实施例中,也可以不设定value的备份节点个数阈值m,只要root节点检测到有备份节点失效或者收到备份节点的退出请求,root节点就删除该失效或者退出的备份节点的索引信息,然后在P2P网络中根据一定的规则,为该value重新查找一个备份节点,并在本地存储该重新查找到的备份节点的索引信息,然后在该重新查找到的备份节点上存储(key,value)对和备份节点个数k。\n[0104] 在上述过程中,root节点删除失效或者退出的备份节点的索引信息的步骤,并没有严格的限制,可以在检测到备份节点失效或者接收到备份节点的退出请求后的任何时候进行。root节点可以自己把(key,value)对和备份节点个数k发送到重新查找到的备份节点上,也可以通知其他有效的备份节点将(key,value)对和备份节点个数k发送到重新查找到的备份节点上。\n[0105] 如图6所示,为本发明实施例一中root节点失效时的处理流程图。具体包括:\n[0106] 步骤601、备份节点检测到root节点失效或者与自己通信的root节点为恶意节点;\n[0107] 由于每个备份节点都在和root节点进行周期性的节点有效性检测,某个备份节点经过设定的周期后没有收到root节点的反馈信息,就认为root节点失效。在root节点失效后的一段时间内,所有备份节点都能够发现root节点失效。\n[0108] 步骤602、备份节点通过自身存储的(key,value)对中的key在结构化P2P网络中重新查找该key对应的新的root节点;\n[0109] 同样,由于结构化P2P网络的特点——一个key唯一对应一个root节点,所有备份节点根据自身存储的key都能找到同一个root节点。\n[0110] 步骤603、找到新的root节点的备份节点把自身存储的(key,value)对和备份节点个数k发送给root节点;\n[0111] 这个步骤可以由最早找到新的root节点的备份节点来完成,或者由root节点指定一个备份节点来完成。\n[0112] 步骤604、新的root节点收到备份节点的检测消息后,提取该备份节点的索引信息,重新在本地建立所有备份节点的索引信息;\n[0113] 步骤605、新的root节点和所有备份节点之前分别建立起周期性的检测机制,检测节点的有效性。\n[0114] 在本发明实施例一中,还存在root节点优雅推出或者root节点改变的情形。当root节点优雅退出时,root节点会先根据key值找到新的root节点,并将自身存储的key及其对应的备份节点的索引信息、备份节点个数k发送给新的root节点。新的root节点通过索引信息和所有的备份节点建立起新的周期性检测机制来检测节点的有效性。新的root节点可以通过原来的root节点或者建立起联系的备份节点获得key值对应的value。\n[0115] 当由于网络结构的变化引起结构化P2P网络中负责该(key,value)对的节点即root节点可能会发生改变,这时原先的root节点将不再担当该key的root节点的职责,而是由相应的新的节点来负责,此时原来的root节点会先根据key值找到新的root节点来,并将该key值及其对应的备份节点的索引信息和备份节点个数k发送给新的root节点。新的root节点通过索引信息和所有的备份节点建立起新的周期性检测机制来检测节点的有效性,新的root节点可以通过原先的root节点或者建立起联系的备份节点获得key值对应的value。\n[0116] 在本发明实施例一所述的方法中,当root节点收到用户需要获取key对应的资源value的请求时,root节点可以自己反馈value给用户,也可以指定某个备份节点反馈value给用户。在用户数量较多的时候,指定备份节点反馈value给不同的用户可以实现负载均衡。\n[0117] 在本发明实施例一所述的方法中,当root节点收到减少value的备份节点个数的指令时,root节点根据一定的规则在结构化P2P网络中重新计算出备份节点,将重新计算出的备份节点与原有的备份节点进行匹配,然后通知不匹配的备份节点释放本地存储的(key,value)对和备份节点个数k,删除不匹配的备份节点的索引信息,并重新向匹配的备份节点发送新的备份节点个数。当root节点收到增加value的备份节点个数的指令时,root节点根据一定的规则在结构化P2P网络中重新计算出备份节点,将重新计算出的备份节点与原有的备份节点进行匹配,向匹配的备份节点发送新的备份节点个数,保存不匹配的备份节点的索引信息,并向不匹配的备份节点发送(key,value)对和新的备份节点个数,然后和所有备份节点之间建立起周期性的检测机制,来检测节点的有效性。当root节点收到释放(key,value)对的命令时,root节点通知所有备份节点释放(key,value)对和备份节点个数,然后断开与备份节点之前的周期性检测机制,在本地删除所有备份节点的索引信息,删除(key,value)和对应的备份节点个数。\n[0118] 本发明实施例二提供了另外一种备份资源的方法。在该方法中,root节点只承担备份节点管理的职能,只存储key、备份节点个数k和备份节点索引信息,而不存储key对应的资源value。\n[0119] 如图7所示,为本发明所述备份资源的方法实施例二的流程图。所述方法包括以下步骤:\n[0120] 步骤701、根据key在结构化P2P网络中查找该key对应的root节点;\n[0121] 以上查找过程可以是由有备份权限的用户发起的。\n[0122] 步骤702、确定该key对应的资源value总共需要的存储份数k,由于value只存储在备份节点上,并且每个备份节点只存一份,这里即确定备份节点个数k,并选择k个节点作为该key对应的value的备份节点;\n[0123] 上述备份节点个数k可以由有备份权限的用户发送给root节点,也可以由root节点根据资源的重要性根据一定的规则计算得出。\n[0124] 步骤703、root节点保存k个备份节点的索引信息和备份节点个数k;\n[0125] 步骤704、在所选择的k个备份节点上分别存储该(key,value)对和备份节点的个数k;\n[0126] 由于root节点上不存储value,第一个备份节点的value可以由用户发送给root节点,root节点不保存该value即转发给备份节点。后续可以由root节点通知某一备份节点向另一备份节点发送其所存储的内容。\n[0127] 步骤705、root节点分别和每个备份节点之间建立周期性检测机制,以检测节点的有效性。\n[0128] 在本实施例中,root节点发现某个备份节点失效或者收到备份节点发出的退出请求时,通过相应的算法找到新的备份节点,然后请求其他备份节点将(key,value)对何备份节点个数k发送给新的备份节点,并更新本地key对应的备份节点的索引信息。与实施例一类似,也可以为value的备份节点个数设置阈值m,由于本实施例中root节点不保存value,所以m为大于0小于k的正整数,当root节点检测到备份节点的个数小于等于m时,才重新选择备份节点,直到备份节点个数为k。\n[0129] 本实施例中,当root节点失效或者为恶意节点时,备份节点通过保存的key在结构化P2P网络中找到新的root节点,新的root节点在本地建立起与自己通讯的备份节点的索引信息,索引信息建立起来之后,如果发现有效的备份节点个数少于设定的备份节点个数k,则可以重新查找备份节点。root节点和所有备份节点间建立周期性的检测机制,检测节点的有效性。\n[0130] 本实施例中,当root节点收到用户发送的请求所述key对应的value的请求消息后,root节点将用户请求转发给某一备份节点,由所述收到用户请求的备份节点向用户反馈该value。当root节点收到释放所述key对应的value的请求后,root节点通知所有备份节点释放自身存储的(key,value)对及备份节点个数k;root节点断开与所有备份节点之间的周期性的节点有效性检测机制;root节点删除自身存储的key及对应的备份节点索引信息、备份节点个数k。\n[0131] 本发明实施例还公开了一种网络节点,如图8所示,为本发明实施例中网络节点的结构示意图,包括:\n[0132] 存储单元,用于存储标记值和该标记值对应的资源需要的备份节点个数;\n[0133] 查找单元,用于在所述结构化P2P网络中查找该标记值对应的网络节点,或用于查找该改标记值对应的资源的备份节点;\n[0134] 检测单元,用于发送或者接收周期性检测消息,并根据接收周期性检测消息的情况,判断发送周期性检测消息的备份节点的有效性;\n[0135] 负载均衡单元,用于在收到用户获取标记值对应的资源的请求时,选择为用户提供服务的备份节点。\n[0136] 并且,所述存储单元还用于存储该标记值对应的资源和备份节点的索引信息。\n[0137] 本发明上述实施例通过为一个key对应的资源建立多个备份节点,来保证结构化P2P网络中资源的可用性,即资源不会因为某个或者某几个节点的失效而失效。同时,本发明实施例中公开了root节点失效时的备份方法,能够在key对应的root节点失效时,缩短提供资源的响应时间。并且,由于root节点可以把用户请求下发给不同的备份节点处理,实现了网络的负载均衡。\n[0138] 以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2017-06-16
未缴年费专利权终止
IPC(主分类): H04L 12/24
专利号: ZL 200710074240.6
申请日: 2007.04.27
授权公告日: 2012.12.12
- 2012-12-12
- 2010-02-24
- 2008-10-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2005-08-31
|
2003-05-30
| | |
2
| |
2002-06-12
|
2000-04-24
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |