CN105302500A - 一种基于动态条带构造的分布式编码方法 - Google Patents
一种基于动态条带构造的分布式编码方法 Download PDFInfo
- Publication number
- CN105302500A CN105302500A CN201510835167.4A CN201510835167A CN105302500A CN 105302500 A CN105302500 A CN 105302500A CN 201510835167 A CN201510835167 A CN 201510835167A CN 105302500 A CN105302500 A CN 105302500A
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- node
- frame
- strip
- 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.)
- Granted
Links
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于动态条带构造的分布式编码方法,特征是采取从总控节点获得数据块信息,并根据该信息动态构建数据条带,将数据条带的构建信息持久化存储,分发校验数据块计算任务,删除冗余数据节点,重新分布非完全分布的数据条带的操作步骤。由于采用了动态构建数据条带的方式,与传统的采用连续数据块构建数据条带相比,在保证系统数据块的容错性情况下,缩减了转换过程中的跨机架或节点的数据下载量,缩短了数据从三副本到纠删码存储的转换时间,减少了该转换过程中的数据带宽,提高分布式系统的服务质量与性能。
Description
技术领域
本发明属于计算机分布式系统存储编码技术领域,具体涉及通过动态构造编码条带实现数据块从三副本到编码存储的高效转换方法。
背景技术
约翰.威利(JohnWiley&Sons,Inc)出版社《软件-实践与经验》(software-practiceandexperience,1997,第995~1012页)所介绍的里德所罗门(Reed-Solomon)编码在类廉价磁盘冗余阵列中的应用指导(ATutorialonReed–SolomonCodingforFault-ToleranceinRAID-likeSystems)使用里德所罗门编码来保证数据的安全性。现存的分布式系统中使用三副本方法和纠删码来保持数据的冗余容错性。当分布式系统对数据块从三副本存储方式转换到纠删码的过程中,使用连续数据块来组成数据条带进行编码操作,这一过程通常需要许多跨机架的数据下载(对于单个机架的系统来说是跨存储节点的数据下载)以完成编码计算,这降低了编码过程的效率,增加了系统的负担。
发明内容
本发明的目的是提出一种基于动态条带构造的分布式编码方法,以克服现有技术的上述缺陷,在保证维持数据冗余容错性的情况下,减少跨机架的数据块下载量,提高系统的编码速度,节省网络带宽,提升服务性能。
本发明基于动态条带构造的分布式编码方法,其特征在于包括以下步骤:
第一步:从总控节点获得数据块信息,并根据数据块存储信息动态构建数据条带
从总控节点获得从数据块到存储机架或节点以及存储机架或节点到数据块的映射;
对于每个机架或节点中的数据块,将其根据该数据块出现在的另一个机架或节点划分为若干个集合;并根据集合的大小将这些集合从大到小排序,从这些数据块集合中依次取出一个数据块来构成计算校验数据的全分布的数据条带,最后将数据条带的核心机架或节点设置为当前机架或节点,在取出数据块的过程中,记录将该数据块的另一存在机架或节点上的冗余数据块作为删除冗余数据时应该保留的数据副本,并将该冗余数据块从那个机架的数据块集合中删除;
在每个机架或节点上构建出T个全分布的数据条带,然后转向下一个机架或节点上继续构建条带,直到所有的机架或节点都不能构建完全分布的数据条带为止;
对于上一步骤构建完全分布的数据条带之后剩下的数据块集合,如果该机架或节点上还有超过数据条带长度的数据块个数,则在该机架或节点上构建非完全分布的数据条带,先从每个非空数据块集合取出一个数据块,对于缺少的数据块则从仍然存在数据块的集合中选取,并将数据条带的核心机架或节点设置为当前机架或节点,并把这些数据块的另一存在机架或节点上的冗余数据块作为删除冗余数据时应该保留的数据副本,然后将这些冗余数据块从那个机架的数据块集合中删除;
循环每个机架或节点构建非完全分布的数据条带,直至所有的机架或节点都不能创建非完全分布的条带为止;
当所有的机架或节点都不能构建非完全分布的条带,如果机架或节点中仍有剩余的数据块,则将所有机架中数据块聚合在一起组建数据条带,并将数据条带的核心机架或节点设置为提供数据块数最多的机架或节点,并且为每个数据块选择一个不是核心机架的机架上的副本作为需要保存的副本;
第二步:将数据条带的构建信息持久化存储
将数据条带的构建信息,包括所需要的数据块,以及删除冗余数据块所需要留下的副本位置以及本数据条带的核心机架或节点存到数据库中,以便数据恢复时使用;
第三步:分发校验数据块计算任务
将数据条带的校验数据块计算任务作为映射规约工作提交,并把每个数据条带的工作指定到其核心机架或节点上,接收到任务的机架上的节点下载数据块,计算校验块,并将校验数据上传;
第四步:删除冗余数据节点
将除了第一步获得的需要保存的数据块保留之外,将其他冗余数据块删除;
第五步:重新分布非完全分布的数据条带
将非完全分布的数据条带以及跨机架的数据条带根据当前的数据块分布策略重新分布。
本发明基于动态条带构造的分布式编码方法采取从总控节点获得数据块信息,并根据该信息动态构建数据条带,将数据条带的构建信息持久化存储,分发校验数据块计算任务,删除冗余数据节点,重新分布非完全分布的数据条带的操作步骤。由于采用了动态构建数据条带的方式,与传统的采用连续数据块构建数据条带相比,在保证系统数据块的容错性情况下,缩减了转换过程中的跨机架或节点的数据下载量,缩短了数据从三副本到纠删码存储的转换时间,减少了该转换过程中的数据带宽,提高分布式系统的服务质量与性能。
附图说明
图1表示机架数据块位置示意图。
图2表示机架上数据块划分示意图。
图3表示全分布式数据条带选取示意图。
图4表示部分分布式数据条带选取示意图。
图5表示跨机架数据条带选取示意图。
图6表示重新分布数据条带示意图。
具体实施方式
下面结合附图通过具体实施例对本发明基于动态条带构造的分布式编码方法作进一步的详细说明。
实施例1:
本实施例基于动态条带构造的分布式编码方法,具体包括以下步骤:
第一步:从总控节点获得数据块信息,并根据该信息动态构建数据条带
附图1给出了以采用五个机架为例的分布式系统数据块存储示意图。这是由五个机架(编号为机架一到机架五)每个机架上九个数据节点构成分布式存储阵列,有九个数据块(编号为1-9)存储在该存储集群上。每个大方块表示一个机架,机架中的小方块代表一个存储节点,每个机架中存在九个存储节点。菱形小方块表示数据块,菱形上标注了数据块的编号。每个数据块在该系统中存在三个副本,其中一个副本存储在一个机架的一个节点上,另外两个副本存储在另外一个机架的两个节点上,用于编码的数据条带长度设置为3块,校验块设置为1块。本实施例基于附图1所示的分布式存储系统结构进行基于动态条带构造的分布式编码方法。
附图2给出了每个机架上的数据块集合示意图,其中机架一上存在数据块1,4,5,7;机架二上存在数据块1,2,3,8,9;机架三上存在数据块4,5,2,3,8;机架四上存在数据块7,9,6;机架五上存在数据块6。
附图3给出了每个机架上的数据块根据该数据块的另一个存储机架进行划分所产生的集合的示意图。将每个集合命名为<m,n>,其中m表示当前机架的号码,n表示该数据块的另一个存储机架的号码。如对于机架一上的数据块1由于其在的另一个存储机架为机架二,因此将其划分入集合<1,2>中,对于机架一上的数据块4,5,由于它们的另一个存储机架都是机架三,因此将这两个数据块划分入集合<1,3>中。
对机架上的所有数据块集合根据其集合大小进行排序,因为数据条带的长度为3,所以需要分别从3个集合中各取出一个数据块来组成一个完全分布的数据条带,如附图3中对于机架一,直线指向的三个种类的数据块4,1,7构成一个数据条带,其中在机架一上的数据块4,1,7作为计算校验块的数据块副本,机架二上的数据块1,机架三上的数据块4,机架五上的数据块7作为需要保存的数据块副本,将该数据条带的核心机架设为机架一,数据条带组建完成后,需要将这些数据块从各个数据块集合中移除,不再继续参与以后的数据块组建历程。
对于各个机架依次组建不多于T个的完全分布式条带,直到所有的机架都不能组建完全分布式条带为止。
附图4给出了组建部分分布式的条带示意图。当机架上不能组建完全分布的数据条带,并且机架上的数据块的数目大于数据条带的长度时,就组建部分分布式的数据条带。从当前机架的所有数据集合中共选取足够个数的数据块组成数据条带即可,将当前的机架设置为核心机架,并将这些数据块的其他机架上的一个副本设置为需要保存的副本。如附图4上所示的,在机架二,选取数据块2,3,9组成数据条带,机架二上的数据块2,3,9作为用来计算校验块的数据块副本,机架三上的数据块2,3,机架四上的数据块9作为需要保存的数据块副本,该数据条带的核心机架设为机架二。
对于各个机架依次组建不多于T个的部分分布式条带,直到所有的机架都不能组建完全分布式条带为止。
附图5给出了组建跨机架条带的示意图。当不能组建部分分布的数据条带时,将所有剩下的数据块作为一个集合进行考虑,选出数据条带长度的数据块组成数据条带,并将选取出数据块数目最多的机架设置为核心机架,每个数据块选择一个不是核心机架的机架上的副本作为需要保存的副本。如附图5上,选择5,6,8数据块组成数据条带,机架三上的数据块5,8,机架五上的数据块6作为用来计算校验块的数据块副本机架一上的数据块5,机架二上的数据块8以及机架五上的数据块6做为需要保存的数据块副本,并将机架三设置为核心机架。
对于所有剩余的数据块集合组件数据条带,直到所有的数据块都组建条带完毕。
第二步:将数据条带的构建信息持久化存储
将数据条带的构建信息,包括所需要的数据块以及核心机架或节点存到数据库中,以便数据恢复时使用。如对于构建出来的由数据块1,4,7组成的条带,将其核心机架为机架一,计算完之后需要保存机架二上的数据块1,机架三上的数据块4,机架四上的数据块7等信息持久保存起来。
第三步:分发校验数据块计算任务
将数据条带的校验数据块计算任务作为映射规约工作提交,并把每个数据条带的工作指定到其核心机架或节点上,接收到任务的机架上的节点下载数据块,计算校验块,并将校验数据上传。如对于构建出来的由数据块1,4,7组成的条带,将该条带的计算任务发送到它的核心机架机架一的节点上,该节点执行计算任务。
第四步:删除冗余数据节点
将除了第一步获得的需要保存的数据块保留之外,将其他冗余数据块删除;如对于构建出来的由数据块1,4,7组成的条带,将该条带的计算任务发送到它的核心机架机架一的节点上。将除了机架二上的数据块1,机架三上的数据块4,机架四上的数据块7之外的副本全部删除。
第五步:重新分布非完全分布的数据条带
附图6给出了将非完全分布的数据条带根据当前的数据块分布策略重新分布的示意图。图中圆圈表示通过计算得到的校验块,校验块a是数据块1,4,7计算生成的校验块,校验块b是数据块2,3,9计算生成的校验块,校验块c是数据块5,6,8计算生成的校验块。对于数据块2,3,8组成的条带,因为保存的数据块2,3的副本都在机架三上,所以需要将这两个数据块分布到不同的机架上去以保持数据容错性,如图中所示将数据块2从机架三转移到机架五上。
在本实施例中,通过基于动态数据条带构建的方法,通过动态的构建数据条带,将跨机架的数据块传输量控制为2个数据块,与静态构建数据条带的最少需要跨机架传输4个数据块相比,在本实施例中减少了2个数据块的跨机架传输,缩短了编码所需要的时间。
Claims (1)
1.一种基于动态条带构造的分布式编码方法,其特征在于包括以下步骤:
第一步:从总控节点获得数据块信息,并根据数据块存储信息动态构建数据条带
从总控节点获得从数据块到存储机架或节点以及存储机架或节点到数据块的映射;
对于每个机架或节点中的数据块,将其根据该数据块出现在的另一个机架或节点划分为若干个集合;并根据集合的大小将这些集合从大到小排序,从这些数据块集合中依次取出一个数据块来构成计算校验数据的全分布的数据条带,最后将数据条带的核心机架或节点设置为当前机架或节点,在取出数据块的过程中,记录将该数据块的另一存在机架或节点上的冗余数据块作为删除冗余数据时应该保留的数据副本,并将该冗余数据块从那个机架的数据块集合中删除;
在每个机架或节点上构建出T个全分布的数据条带,然后转向下一个机架或节点上继续构建条带,直到所有的机架或节点都不能构建完全分布的数据条带为止;
对于上一步骤构建完全分布的数据条带之后剩下的数据块集合,如果该机架或节点上还有超过数据条带长度的数据块个数,则在该机架或节点上构建非完全分布的数据条带,先从每个非空数据块集合取出一个数据块,对于缺少的数据块则从仍然存在数据块的集合中选取,并将数据条带的核心机架或节点设置为当前机架或节点,并把这些数据块的另一存在机架或节点上的冗余数据块作为删除冗余数据时应该保留的数据副本,然后将这些冗余数据块从那个机架的数据块集合中删除;
循环每个机架或节点构建非完全分布的数据条带,直至所有的机架或节点都不能创建非完全分布的条带为止;
当所有的机架或节点都不能构建非完全分布的条带,如果机架或节点中仍有剩余的数据块,则将所有机架中数据块聚合在一起组建数据条带,并将数据条带的核心机架或节点设置为提供数据块数最多的机架或节点,并且为每个数据块选择一个不是核心机架的机架上的副本作为需要保存的副本;
第二步:将数据条带的构建信息持久化存储
将数据条带的构建信息,包括所需要的数据块,以及删除冗余数据块所需要留下的副本位置以及本数据条带的核心机架或节点存到数据库中,以便数据恢复时使用;
第三步:分发校验数据块计算任务
将数据条带的校验数据块计算任务作为映射规约工作提交,并把每个数据条带的工作指定到其核心机架或节点上,接收到任务的机架上的节点下载数据块,计算校验块,并将校验数据上传;
第四步:删除冗余数据节点
将除了第一步获得的需要保存的数据块保留之外,将其他冗余数据块删除;
第五步:重新分布非完全分布的数据条带
将非完全分布的数据条带以及跨机架的数据条带根据当前的数据块分布策略重新分布。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510835167.4A CN105302500B (zh) | 2015-11-24 | 2015-11-24 | 一种基于动态条带构造的分布式编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510835167.4A CN105302500B (zh) | 2015-11-24 | 2015-11-24 | 一种基于动态条带构造的分布式编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105302500A true CN105302500A (zh) | 2016-02-03 |
CN105302500B CN105302500B (zh) | 2018-04-10 |
Family
ID=55199813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510835167.4A Active CN105302500B (zh) | 2015-11-24 | 2015-11-24 | 一种基于动态条带构造的分布式编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105302500B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105812448A (zh) * | 2016-06-13 | 2016-07-27 | 青海师范大学 | 一种云存储系统的纠删编码方法 |
CN106569941A (zh) * | 2016-11-04 | 2017-04-19 | 金蝶软件(中国)有限公司 | 记录数据历程的方法和装置 |
CN106951340A (zh) * | 2017-03-14 | 2017-07-14 | 华中科技大学 | 一种基于局部性优先的rs纠删码数据布局方法及系统 |
CN110032338A (zh) * | 2019-03-20 | 2019-07-19 | 华中科技大学 | 一种面向纠删码的数据副本放置方法及系统 |
CN110059062A (zh) * | 2019-04-22 | 2019-07-26 | 苏州浪潮智能科技有限公司 | 一种文件系统的条带设置方法、系统及相关组件 |
CN110347526A (zh) * | 2019-06-28 | 2019-10-18 | 华中科技大学 | 提升分布式存储集群中lrc码修复性能的方法、装置及系统 |
CN111381767A (zh) * | 2018-12-28 | 2020-07-07 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
CN111506428A (zh) * | 2020-04-20 | 2020-08-07 | 中国科学技术大学 | 一种基于纠删码存储系统的负载均衡修复调度方法 |
WO2022174537A1 (zh) * | 2021-02-20 | 2022-08-25 | 华中科技大学 | 一种条带数据存储结构及其构建、修复和更新方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281384A (zh) * | 2013-05-31 | 2013-09-04 | 汉柏科技有限公司 | 一种无中心节点的消息服务集群的管理系统及方法 |
CN104504128A (zh) * | 2014-12-31 | 2015-04-08 | 天津南大通用数据技术股份有限公司 | 一种基于联邦集群的数据库系统非对称部署的构建方法 |
CN105069703A (zh) * | 2015-08-10 | 2015-11-18 | 国家电网公司 | 一种电网海量数据管理方法 |
-
2015
- 2015-11-24 CN CN201510835167.4A patent/CN105302500B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281384A (zh) * | 2013-05-31 | 2013-09-04 | 汉柏科技有限公司 | 一种无中心节点的消息服务集群的管理系统及方法 |
CN104504128A (zh) * | 2014-12-31 | 2015-04-08 | 天津南大通用数据技术股份有限公司 | 一种基于联邦集群的数据库系统非对称部署的构建方法 |
CN105069703A (zh) * | 2015-08-10 | 2015-11-18 | 国家电网公司 | 一种电网海量数据管理方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105812448A (zh) * | 2016-06-13 | 2016-07-27 | 青海师范大学 | 一种云存储系统的纠删编码方法 |
CN106569941A (zh) * | 2016-11-04 | 2017-04-19 | 金蝶软件(中国)有限公司 | 记录数据历程的方法和装置 |
CN106569941B (zh) * | 2016-11-04 | 2019-01-01 | 金蝶软件(中国)有限公司 | 记录数据历程的方法和装置 |
CN106951340A (zh) * | 2017-03-14 | 2017-07-14 | 华中科技大学 | 一种基于局部性优先的rs纠删码数据布局方法及系统 |
CN106951340B (zh) * | 2017-03-14 | 2019-07-09 | 华中科技大学 | 一种基于局部性优先的rs纠删码数据布局方法及系统 |
CN111381767A (zh) * | 2018-12-28 | 2020-07-07 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
CN111381767B (zh) * | 2018-12-28 | 2024-03-26 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
CN110032338A (zh) * | 2019-03-20 | 2019-07-19 | 华中科技大学 | 一种面向纠删码的数据副本放置方法及系统 |
CN110059062A (zh) * | 2019-04-22 | 2019-07-26 | 苏州浪潮智能科技有限公司 | 一种文件系统的条带设置方法、系统及相关组件 |
CN110059062B (zh) * | 2019-04-22 | 2020-05-29 | 苏州浪潮智能科技有限公司 | 一种文件系统的条带设置方法、系统及相关组件 |
CN110347526A (zh) * | 2019-06-28 | 2019-10-18 | 华中科技大学 | 提升分布式存储集群中lrc码修复性能的方法、装置及系统 |
CN111506428A (zh) * | 2020-04-20 | 2020-08-07 | 中国科学技术大学 | 一种基于纠删码存储系统的负载均衡修复调度方法 |
CN111506428B (zh) * | 2020-04-20 | 2022-09-02 | 中国科学技术大学 | 一种基于纠删码存储系统的负载均衡修复调度方法 |
WO2022174537A1 (zh) * | 2021-02-20 | 2022-08-25 | 华中科技大学 | 一种条带数据存储结构及其构建、修复和更新方法 |
US12001278B2 (en) | 2021-02-20 | 2024-06-04 | Huazhong University Of Science And Technology | Wide stripe data storage and constructing, repairing and updating method thereof |
Also Published As
Publication number | Publication date |
---|---|
CN105302500B (zh) | 2018-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302500A (zh) | 一种基于动态条带构造的分布式编码方法 | |
CN108540520B (zh) | 基于部分重复码的局部性修复编码及节点故障修复方法 | |
CN103688515B (zh) | 一种最小带宽再生码的编码和存储节点修复方法 | |
CN103944981B (zh) | 一种基于纠删码技术改进的云存储系统及实现方法 | |
CN104052576B (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
CN103106124B (zh) | 一种基于纠删码集群存储系统的交叉重构方法 | |
CN103250463B (zh) | 用于通信系统的子集编码 | |
CN106776112B (zh) | 一种基于Pyramid码的局部性修复编码方法 | |
CN106100801A (zh) | 一种云存储系统的非均匀纠删编码方法 | |
CN106484559A (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
US11303302B2 (en) | Erasure code calculation method | |
CN107844272A (zh) | 一种提高纠错能力的交叉分组编译码方法 | |
CN104050270A (zh) | 一种基于一致性哈希算法的分布式存储方法 | |
CN112835738B (zh) | 一种条带数据存储结构的构建方法 | |
CN110178122A (zh) | 分布式存储系统的数据同步修复方法及存储介质 | |
CN104580381A (zh) | 一种在多节点网络中执行作业任务的方法 | |
CN106951340A (zh) | 一种基于局部性优先的rs纠删码数据布局方法及系统 | |
US20220129430A1 (en) | Optimizing storage and retrieval of compressed data | |
CN103886732A (zh) | 一种高可靠性生态环境参数无线传感系统 | |
CN109194444A (zh) | 一种基于网络拓扑的平衡二叉树修复方法 | |
CN108536396B (zh) | 一种基于网络编码的存储扩展方法 | |
CN115333606B (zh) | 面向低轨星座存储网络的分布式编码数据下载与修复方法 | |
CN104967660B (zh) | 一种面向多云架构的网络性能提升方法 | |
CN109522150A (zh) | 基于超图的自适应可分解部分重复码构造及故障修复方法 | |
CN104202386A (zh) | 一种高并发量分布式文件系统及其二次负载均衡方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |