CN101645039B - 一种基于彼得森图的数据存储和读取方法 - Google Patents
一种基于彼得森图的数据存储和读取方法 Download PDFInfo
- Publication number
- CN101645039B CN101645039B CN2009100851262A CN200910085126A CN101645039B CN 101645039 B CN101645039 B CN 101645039B CN 2009100851262 A CN2009100851262 A CN 2009100851262A CN 200910085126 A CN200910085126 A CN 200910085126A CN 101645039 B CN101645039 B CN 101645039B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- index
- value
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种基于Peterson图的数据存储和读取方法,包括如下步骤:1)获取表示数据的存储节点所对应ID,并将数据存储在提交该数据存储请求的节点或者相近的节点上,2)将包括数据ID以及数据文件名的相关信息组成一个索引项,通过分布式哈希表方式,生成一个索引ID的值j,并将索引项存储于该ID值的节点j上;3)从任意节点读取数据,读取步骤如下:a)根据数据文件名或标识计算获取索引ID的值j:f_IDD=Hash (f)%10;b),路由到索引节点j,取出索引表项;c)根据索引表项中的数据ID,找到目标节点,读取数据。该方法可以有效地对数据进行路由定位和存储管理,同时,负载均衡的特性,也有利于Peterson结构在分布式存储系统中的应用。
Description
技术领域
本发明涉及信息网络技术领域,特别涉及到由分布式存储节点构成的网络存储技术领域中的一种基于彼得森(Peterson)图的数据存储和读取方法。
背景技术
随着互联网的发展和用户宽带接入的普及,许多公司和机构产生了海量数据的存储需求。如果通过扩充存储设备来解决该问题,一方面增加了公司对海量数据存储维护的成本,另一方面,大量的访问请求也给存储服务器来了巨大压力。在这些条件下,分布式的存储系统应运而生。
分布式存储通过网络存储设备,构建一个存储专用网络为用户提供统一的信息存取和管理的服务,将数据合理分布在存储网络中,避免了服务器单点瓶颈的问题。另外,随着终端计算能力的增强,越来越多的个人用户终端系统成为了宝贵的资源,而通过peer-to-peer(P2P)技术,可以将这些资源有效的整合,并具有自组织,抗动态性等特点,使得基于P2P的分布式存储网络受到了越来越多的青睐。
Peterson图是一个包含10个节点的正则图,在该图中,所有的节点度都相同,为3,任意两个节点间的距离不超过2。由于Peterson图结构的稳定性和对称性,使其在并行计算等领域得到了应用,并取得了良好的效果。
发明内容
本发明的目的在于提供一种基于Peterson图的数据存储和读取方法,其将Peterson结构有效应用于网络存储中,可增强系统的存储可靠性。该方法通过两个层次的管理,将数据内容和索引信息进行分开存储,保证该方法可以有效地对数据进行路由定位和存储管理,同时,负载均衡的特性,也有利于Peterson结构在分布式存储系统中的应用。
为了实现上述目的,本发明的基于Peterson图的数据存储和读取方法,其特征在于,将数据内容和索引信息进行分开存储,具体包括如下步骤:
1)确定待存储数据所对应的数据ID,并存储数据:
获取表示数据的存储节点所对应ID,并将数据存储在提交该数据存储请求的节点或者相近的节点上,
当通过节点i写入数据时,如果节点i中空间充足,则数据ID为i,并将数据写入节点i中;
如果节点i中空间不足,则数据ID为ID映射表中与节点i存在链接的其它节点ID,选择具有可用空间且ID最小的节点并将数据写入对应节点;
2)确定数据的索引ID:
将包括数据ID以及数据文件名的相关信息组成一个索引项,通过分布式哈希表方式,生成一个索引ID的值j,并将索引项存储于该ID值的节点j上,具体步骤如下:
a)计算索引ID的值j,根据数据文件名或者标识进行哈希映射得到索引项的ID的值j:f_ID=Hash(f)%10,其中,f表示文件名或者任意表示文件特性的标识,该计算得到的值即为索引ID的哈希值j,且使其取得[0,9]之间的任意且唯一值;
b)根据邻接矩阵表,找到从节点i到目标存储节点j的一条最短路径,并将索引项存入其中;
c)每个节点定期对邻接表中的邻接节点进行检测,如果某个邻接节点已失效,则修改邻接矩阵中该节点ID和邻接节点ID所对应行、列的值,将其设为无穷大或者一个很大的数,表示该路径已经无效,
这里,检测邻接表中的节点状态可以选择下述方法中的任意一种:
i)检测节点间网络拓扑距离;
ii)检测相关参数,包括:节点间延迟以及带宽。
3)从任意节点读取数据,读取步骤如下:
a)根据数据文件名或标识计算获取索引ID的值j:f_ID=Hash(f)%10,其中,f表示文件名或者任意表示文件特性的标识,该计算得到的值即为索引ID的哈希值j;
b)通过一条最短路径路由到索引节点j,取出索引表项;
c)根据索引表项中的数据ID,即所存储数据的节点ID值i,找到目标节点i,读取数据。
本发明的基于Peterson图的数据存储和读取方法的有益效果在于:通过将数据和节点映射到同一个ID空间,在统一的准则下有效地进行数据存储管理,同时,数据和索引两级存储的方法,有利于存储空间有限等情况下的数据定位,具有很强的实用价值。并且将Peterson结构有效应用于网络存储中,增强了系统的存储可靠性。
附图说明
图1是Peterson网络中的结构和ID示意图。
图2是本发明的基于Peterson图的数据存储和读取方法中的存储流程图。
图3是本发明的基于Peterson图的数据存储和读取方法中的读取流程图。
图4是利用本发明的基于Peterson图的数据存储和读取方法的基于P2P网络和Peterson网络的双层网络示意图。
具体实施方式
下面结合附图和具体实施例对本发明的基于Peterson图的数据存储和读取方法进行详细的说明。
本发明提出的一种基于Peterson图的数据存储和读取方法,通过两个层次的管理,将数据内容和索引信息进行分开存储;第一层是确定待存储数据所对应的数据ID,即表示数据的存储节点所对应ID,需要尽量保证将数据存储在提交该数据存储请求的节点或者相近的节点上,减少多个节点间传递数据带来的通信代价;第二层是确定数据的索引ID,将数据ID等相关信息组成一个索引项,通过类似DHT的方式,生成一个索引ID,并将索引项存储于该ID值的节点上。两个层次的存储保证了该方法可以有效地对数据进行路由定位和存储管理,同时,负载均衡的特性,也有利于Peterson结构在分布式存储系统中的应用。
图1是Peterson网络中的结构和ID示意图。如图1所示,Peterson图由10个节点组成,设其ID范围为[0,9],当数据存储其中时,要有一个一致的存储和管理方法。
图2是本发明的基于Peterson图的数据存储和读取方法中的存储流程图。图3是本发明的基于Peterson图的数据存储和读取方法中的读取流程图。
如图2所示,本发明的基于Peterson图的数据存储和读取方法中的数据存储方法,将数据内容和索引信息进行分开存储,具体包括如下步骤:
1)确定待存储数据所对应的数据ID,并存储数据:
获取表示数据的存储节点所对应ID,并将数据存储在提交该数据存储请求的节点或者相近的节点上,当通过节点i写入数据时,如果节点i中空间充足,则数据ID为i,将数据写入节点i中;如果节点i中空间不足,则数据ID只能为下述表1所示的ID映射表中,与节点i存在链接的其它节点ID,选择具有可用空间且ID最小的节点,并将数据写入该节点。
2)确定数据的索引ID,
将包括数据ID以及数据文件名等相关信息组成一个索引项,通过分布式哈希表方式,生成一个索引ID值j,并将索引项存储于该ID值的节点j上,其步骤为:
a)计算索引ID;
根据数据文件名(或者标识)进行哈希映射得到索引项的ID的值j,计算方法如下:文件ID=Hash(文件名f)%10,使其取得[0,9]之间的任意且唯一值。
b)根据表2所示的邻接矩阵,找到从节点i到目标存储点j的一条最短路径,并将索引项存入其中;
c)每个节点定期对邻接表中的邻接节点进行检测,如果某个邻接节点已失效,则修改邻接矩阵中该节点ID和邻接节点ID所对应行、列的值,将其设为无穷大或者一个很大的数,表示该路径已经无效,
这里,检测邻接表中节点状态的方法可以选择下述方法中的任意一种:
i)检测节点间网络拓扑距离;
ii)检测节点间延迟、带宽等相关参数。
如图3所示,本发明的基于Peterson图的数据存储和读取方法中的数据读取方法,从任意节点读取数据时,具体包括如下步骤:
1)根据数据文件名(或标识)计算得到索引ID的值j:文件ID=Hash(文件名f)%10;
2)通过一条最短路径路由到索引节点j,取出索引表项;
3)根据索引表项中的数据ID,即所存储数据的节点ID值i,找到目标节点i,读取数据。
表1:Peterson网络中的ID映射表
节点ID | 邻接节点ID |
0 | 1 |
0 | 4 |
0 | 6 |
1 | 2 |
1 | 7 |
2 | 3 |
2 | 8 |
3 | 4 |
3 | 9 |
4 | 5 |
5 | 7 |
5 | 8 |
6 | 8 |
6 | 9 |
7 | 9 |
表2:Peterson网络中的ID邻接矩阵(∞表示正无穷,即无直接路径)
节点ID | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
0 | 0 | 1 | ∞ | ∞ | 1 | ∞ | 1 | ∞ | ∞ | ∞ |
1 | 1 | 0 | 1 | ∞ | ∞ | ∞ | ∞ | 1 | ∞ | ∞ |
2 | ∞ | 1 | 0 | 1 | ∞ | ∞ | ∞ | ∞ | 1 | ∞ |
3 | ∞ | ∞ | 1 | 0 | 1 | ∞ | ∞ | ∞ | ∞ | 1 |
4 | 1 | ∞ | ∞ | 1 | 0 | 1 | ∞ | ∞ | ∞ | ∞ |
5 | ∞ | ∞ | ∞ | ∞ | 1 | 0 | ∞ | 1 | 1 | ∞ |
6 | 1 | ∞ | ∞ | ∞ | ∞ | ∞ | 0 | ∞ | 1 | 1 |
7 | ∞ | 1 | ∞ | ∞ | ∞ | 1 | ∞ | 0 | ∞ | 1 |
8 | ∞ | 1 | ∞ | ∞ | ∞ | 1 | 1 | ∞ | 0 | ∞ |
9 | ∞ | ∞ | ∞ | 1 | ∞ | ∞ | 1 | 1 | ∞ | 0 |
实施例
图4是利用本发明的基于Peterson图的数据存储和读取方法的基于P2P网络和Peterson网络的双层网络示意图。如图4所示,假设存在一个双层的网络,层1为10个节点组成的Peterson存储网络,层2为Pastry组织的P2P网络并提供某些应用。层1采用纠删码的方法进行冗余存储,层2中每个节点都包含至少一个Peterson网络中的节点信息。假设文件名为f的数据通过节点0写入,则写入步骤如下:
1)如果节点0中空间充足,则数据的ID为0,写入节点0中;如果0中空间不足,则数据的ID只能为图2ID映射表中存在链接的ID数(这里可为1,4或者6),写入具有可用空间且ID最小的节点,这里选择节点1;
2)计算文件ID,f_ID=Hash(f)%10,这里假设f_ID=5;
3)将数据ID,数据文件名等相关信息建立索引项,如<f,0>,放置在ID为5的Peterson节点中。根据表2所示的邻接矩阵,找到从节点0到5的一条最短路径,并将索引项存入其中。
4)每隔2小时,每个节点需要对邻接表中的邻接节点进行检测,如果某个邻接节点已失效,则修改邻接矩阵中这两个节点ID所对应行、列的值(即该节点ID和已失效的邻接节点ID在表2中的交叉值),将其设为无穷大或者一个很大的数,表示该路径已经无效。
5)当从任意节点读取数据时,假设从节点1读取文件f,读取过程如下:
a)计算文件哈希值f_ID=Hash(f)%10=5,即索引ID值,
b)通过表2的矩阵路径表,找到5跳内从节点1到达节点5的所有路径,比如:
路径 | 距离 |
1-7-5 | 3 |
10-4-5 | 4 |
12-3-4-5 | 5 |
12-8-5 | 4 |
10-6-8-5 | 5 |
然后,找到其中距离最短的路径,即1-7-5,路由到索引节点5,取出其中的索引表项<f,0>,并返回给节点1;
c)从索引表项中,读取数据ID(这里值为0),则节点1向节点0发出查询请求,读取数据。
上述说明文档中的其他内容针对本专业领域内的普通技术人员,均可进行技术实现,这里不再赘述。
Claims (3)
1.一种基于Peterson图的数据存储和读取方法,其特征在于,将数据内容和索引信息进行分开存储,具体包括如下步骤:
1)确定待存储数据所对应的数据ID,并存储数据:
获取表示数据的存储节点所对应ID,并将数据存储在提交该数据存储请求的节点或者相近的节点上,
当通过节点i写入数据时,如果节点i中空间充足,则数据ID为i,并将数据写入节点i中;
如果节点i中空间不足,则数据ID为ID映射表中与节点i存在链接的其它节点ID,并将数据写入对应节点;
2)确定数据的索引ID:
将包括数据ID以及数据文件名的相关信息组成一个索引项,通过分布式哈希表方式,生成一个索引ID的值j,并将索引项存储于该ID值的节点j上,具体步骤如下:
a)计算索引ID的值j,根据数据文件名或者标识进行哈希映射得到索引项的ID的值j:f_ID=Hash(f)%10,其中,f表示文件名或者任意表示文件特性的标识,该计算得到的值即为索引ID的哈希值j,且使其取得[0,9]之间的任意且唯一值;
b)根据邻接矩阵表,找到从节点i到目标存储节点j的一条最短路径,并将索引项存入其中;
c)每个节点定期对邻接表中的邻接节点进行检测,如果某个邻接节点已失效,则修改邻接矩阵中该节点ID和邻接节点ID所对应行、列的值,将其设为无穷大或者一个很大的数,表示该路径已经无效;
3)从任意节点读取数据,读取步骤如下:
a)根据数据文件名或标识计算获取索引ID的值j:f_ID=Hash(f)%10,其中,f表示文件名或者任意表示文件特性的标识,该计算得到的值即为索引ID的哈希值j;
b)通过一条最短路径路由到索引节点j,取出索引表项;
c)根据索引表项中的数据ID,即所存储数据的节点ID值i,找到目标节点i,读取数据。
2.如权利要求1所述的基于Peterson图的数据存储和读取方法,其特征在于,所述步骤1)中,当节点i中空间不足,数据ID选择ID映射表中与节点i存在链接的其它节点ID时,选择具有可用空间且ID最小的节点。
3.如权利要求1所述的基于Peterson图的数据存储和读取方法,其特征在于,所述步骤2)的步骤c)中,采用如下所述方法中的任意一种来检测邻接表中的节点状态:
i)检测节点间网络拓扑距离;
ii)检测相关参数,包括:节点间延迟以及带宽。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100851262A CN101645039B (zh) | 2009-06-02 | 2009-06-02 | 一种基于彼得森图的数据存储和读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100851262A CN101645039B (zh) | 2009-06-02 | 2009-06-02 | 一种基于彼得森图的数据存储和读取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101645039A CN101645039A (zh) | 2010-02-10 |
CN101645039B true CN101645039B (zh) | 2011-06-22 |
Family
ID=41656932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100851262A Expired - Fee Related CN101645039B (zh) | 2009-06-02 | 2009-06-02 | 一种基于彼得森图的数据存储和读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101645039B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102970349B (zh) * | 2012-11-02 | 2015-11-25 | 上海交通大学 | 一种dht网络的存储负载均衡方法 |
CN103370113B (zh) * | 2012-12-12 | 2016-03-09 | 华为技术有限公司 | 数据存储方法及系统 |
CN103888496A (zh) * | 2012-12-22 | 2014-06-25 | 鸿富锦精密工业(深圳)有限公司 | 数据分散存储方法及系统 |
CN103095832A (zh) * | 2013-01-15 | 2013-05-08 | 北京邮电大学 | 一种基于通信可靠性的分布式存储方法 |
CN103561057A (zh) * | 2013-10-15 | 2014-02-05 | 深圳清华大学研究院 | 基于分布式哈希表和纠删码的数据存储方法 |
CN105745900B (zh) * | 2014-10-31 | 2019-06-07 | 华为技术有限公司 | 访问文件的方法、分布式存储系统和网络设备 |
CN104391901B (zh) * | 2014-11-14 | 2017-07-14 | 北京网视通联科技有限公司 | 一种存储单元网络大数据基础构架平台及其文件存取方法 |
CN107153513B (zh) * | 2017-03-22 | 2020-07-24 | 佛山科学技术学院 | 一种分布式系统服务器的存储控制方法及服务器 |
CN107168645B (zh) * | 2017-03-22 | 2020-07-28 | 佛山科学技术学院 | 一种分布式系统的存储控制方法及系统 |
CN107066206B (zh) * | 2017-03-22 | 2020-07-24 | 佛山科学技术学院 | 一种分布式物理磁盘的存储控制方法及系统 |
CN107122248B (zh) * | 2017-05-02 | 2020-01-21 | 华中科技大学 | 一种存储优化的分布式图处理方法 |
CN108200203B (zh) * | 2018-02-06 | 2020-11-06 | 北京奇虎科技有限公司 | 基于双层网络的区块链系统 |
CN114237490A (zh) * | 2021-11-02 | 2022-03-25 | 清华大学 | 基于Nauru-graph的大规模数据存储和读取方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1457898A2 (en) * | 2003-03-14 | 2004-09-15 | Hewlett-Packard Company | Data search system and method |
CN1632779A (zh) * | 2003-12-24 | 2005-06-29 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN1828556A (zh) * | 2005-03-05 | 2006-09-06 | 腾讯科技(深圳)有限公司 | 一种数据存储的方法、系统及设备 |
CN101398869A (zh) * | 2008-10-07 | 2009-04-01 | 深圳市蓝韵实业有限公司 | 一种海量数据存储方法 |
-
2009
- 2009-06-02 CN CN2009100851262A patent/CN101645039B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1457898A2 (en) * | 2003-03-14 | 2004-09-15 | Hewlett-Packard Company | Data search system and method |
CN1632779A (zh) * | 2003-12-24 | 2005-06-29 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN1828556A (zh) * | 2005-03-05 | 2006-09-06 | 腾讯科技(深圳)有限公司 | 一种数据存储的方法、系统及设备 |
CN101398869A (zh) * | 2008-10-07 | 2009-04-01 | 深圳市蓝韵实业有限公司 | 一种海量数据存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101645039A (zh) | 2010-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101645039B (zh) | 一种基于彼得森图的数据存储和读取方法 | |
CN101969468B (zh) | 查询服务器集群系统及查询方法 | |
CN101674233B (zh) | 基于彼得森图的存储网络系统及数据读写方法 | |
US20080195597A1 (en) | Searching in peer-to-peer networks | |
Zheng et al. | A heuristic survivable virtual network mapping algorithm | |
EP2091272B1 (en) | Method and device for constructing a node identifier | |
Tirado et al. | Affinity p2p: A self-organizing content-based locality-aware collaborative peer-to-peer network | |
CN101923558A (zh) | 基于(d,k)摩尔图的存储网络结构及数据读写方法 | |
CN102075359A (zh) | 一种基于网络坐标的服务器部署方法及装置 | |
CN102045392A (zh) | 一种无结构p2p网络的基于兴趣的自适应拓扑优化方法 | |
Ma et al. | Scalable and elastic event matching for attribute-based publish/subscribe systems | |
CN102378407B (zh) | 一种物联网中的对象名字解析系统及其解析方法 | |
CN102378409B (zh) | 一种物联网中的层次式Chord分组网络及其组织方法 | |
Duan et al. | A novel load balancing scheme for mobile edge computing | |
González-Beltrán et al. | Range queries over skip tree graphs | |
US7623511B2 (en) | Device and method for retrieving/storing electronic data in a system with a plurality of data processing units | |
US20060209717A1 (en) | Distributed storing of network position information for nodes | |
CN101287102B (zh) | 一种基于弹性重叠网络的存储流媒体数据下载方法 | |
US20130166775A1 (en) | Load balancing apparatus and load balancing method | |
CN107040466A (zh) | 基于物联网分层架构的多域协同数据传输的路径选择方法 | |
Lin et al. | Scheduling algorithms for time-constrained big-file transfers in the Internet of Vehicles | |
Huang et al. | PChord: a distributed hash table for P2P network | |
Bhargavi et al. | A hybrid secure routing scheme for MANETS | |
CN104539715B (zh) | 一种网络多内容请求响应方法 | |
Nakazato et al. | Data allocation method considering server performance and data access frequency with consistent hashing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110622 Termination date: 20180602 |