CN109857585A - 一种基于平衡二叉树的纠删码失效节点重构方法 - Google Patents
一种基于平衡二叉树的纠删码失效节点重构方法 Download PDFInfo
- Publication number
- CN109857585A CN109857585A CN201910130961.7A CN201910130961A CN109857585A CN 109857585 A CN109857585 A CN 109857585A CN 201910130961 A CN201910130961 A CN 201910130961A CN 109857585 A CN109857585 A CN 109857585A
- Authority
- CN
- China
- Prior art keywords
- node
- correcting
- binary tree
- balanced binary
- eleting codes
- 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.)
- Pending
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明属于数据存储领域,具体涉及一种基于平衡二叉树的纠删码失效节点重构方法。本发明的目的是针对传统星型结构的数据修复方式存在的网络带宽占据较高的问题,提出一种基于平衡二叉树的纠删码失效节点重构方法,利用平衡二叉树左右子树高度差小于等于1的性质,将参与修复的节点组织成网络距离较小的树形结构,缩短修复期间数据的传输距离,降低修复时的网络带宽和修复时间,提升修复效率。本发明所述的是一种基于平衡二叉树的纠删码失效节点重构方法,克服传统采用星型结构的纠删码在数据修复时,占用较高网络带宽的问题,提高修复效率,降低修复时间。
Description
技术领域
本发明属于数据存储领域,具体涉及一种基于平衡二叉树的纠删码失效节点重构方法。
背景技术
进入大数据时代,数据的规模呈迅速发展的趋势,体量变得越来越庞大。规模庞大并且仍然在不断迅速增长的数据,对构建良好的存储系统提出了重大挑战。数据容错是大规模分布式存储系统中一项不可或缺的关键技术,由于数据量极为庞大,该类存储系统往往包含几千甚至几万个存储节点。因此,采用一定的数据容错技术,从而保证在部分存储节点失效的情况下数据仍然能够被正常地访问就显得尤为重要。
分布式存储系统中常用的数据容错技术有两种:一种是多副本容错技术,通过复制进行容错;另一种是纠删码容错技术,通过编码进行容错。与多副本容错技术相比,纠删码容错技术可以有效降低存储空间消耗并提供较好的数据容错能力。
目前,网络带宽资源是制约利用纠删码进行数据修复的主要瓶颈。分布式存储系统中降低网络带宽资源占用的方法有以下两种:一、优化纠删码的结构;二,优化数据修复的过程,通过优化数据修复时的数据读取和数据传输效率,提高数据修复的效率。传统的数据修复方法通常采用星型拓扑结构作为数据传输方式,所有帮助节点直接将数据发送给新生节点,所有参与修复的节点构成一个以新生节点为中心的星型结构。基于星型结构的数据修复方法具有简单直观的缺点,但存在占用较高网络带宽的问题。
发明内容
本发明的目的是针对传统星型结构的数据修复方式存在的网络带宽占据较高的问题,提出一种基于平衡二叉树的纠删码失效节点重构方法,利用平衡二叉树左右子树高度差小于等于1的性质,将参与修复的节点组织成网络距离较小的树形结构,缩短修复期间数据的传输距离,降低修复时的网络带宽和修复时间,提升修复效率。
一种基于平衡二叉树的纠删码失效节点重构方法,该方法包括以下步骤:
步骤1:选择新生节点和帮助节点;
步骤2:构造平衡二叉树;
步骤3:修复数据。
所述步骤1包括以下步骤:
步骤1.1:根据所采用的纠删码修复方案,确定可用来修复失效块c0的编码块c1,c2,…,cr作为帮助节点,并计算出相应的修复系数向量(β1,β2,…βr);
步骤1.2:确定参与修复的编码块,并从系统中获得各编码块分别所在节点,记为V1,V2,…,Vr;
步骤1.3:根据系统放置策略确定出新生节点,记为V0,并记录下新生节点与帮助节点、帮助节点与帮助节点之间的网络距离,即跳数。
所述步骤2包括以下步骤:
步骤2.1:以新生节点为根节点,帮助节点作为根节点和中间节点。以根节点为中心,根据新生节点与帮助节点间的网络距离记录,即跳数记录,选择与新生节点直接相连的帮助节点;
步骤2.2:以步骤2.1选择出的帮助节点分别作为后续节点的父节点,根据父节点与其他帮助节点之间的网络距离,选择与之网络距离为1的节点作为叶节点;
步骤2.3:重复步骤2.2,直到选择出所有帮助节点,构建出平衡二叉树。
所述步骤3包括以下步骤:
步骤3.1:若为树中的叶子节点,则负责从本地存储系统中读取编码块ci,并计算出βici,然后将其发送给自己的父亲节点;
步骤3.2:若为内部节点,则负责接受其子节点发送过来的数据,并从本地存储系统中读取编码块,将结果加在一起之后再次发送给自己的父节点;
步骤3.3:若为根节点,则负责接受其子节点发送过来的数据,计算出总和,然后将结果写入本地存储,这样就成功地修复了失效块。
本发明的有益效果在于:本发明所述的是一种基于平衡二叉树的纠删码失效节点重构方法,克服传统采用星型结构的纠删码在数据修复时,占用较高网络带宽的问题,提高修复效率,降低修复时间。
附图说明
图1为星型数据修复方法。
图2为基于平衡二叉树的纠删码失效节点重构方法。
具体实施方式
下面将结合附图对本发明做进一步描述,应指出的是,所描述的实施例仅旨在便于解释本发明,并不构成对本发明的限制。
本发明涉及到分布式存储系统中数据恢复问题,利用一种基于平衡二叉树的纠删码失效节点重构方法,恢复分布式存储系统中失效的节点。本发明提出一种基于平衡二叉树的纠删码失效节点重构方法。如图1所示,传统的数据修复方法是采用星型的数据传输方式,提供修复的参与节点直接将数据发送给新生节点,所有节点围绕着新生节点为中心形成一个星型的结构,失效的编码块c5可用编码块c1,c2,c3和c4来修复,其关系如式(1)所示。
c5=β1c1+β2c2+β3c3+β4c4+β5c5 (1)
星型结构所占用的网络资源等于帮助节点到新生节点的网络资源之和,修复的速度也受限于新生节点和帮助节点间的网络带宽,为了降低纠删码的修复时间,如图2所示,提出一种基于平衡二叉树的纠删码失效节点重构方法,该方法根据修复时节点间可用带宽来建立平衡二叉树修复结构,以提高修复速度。
该方法将新生节点作为平衡二叉树的根节点,将帮助节点看作是平衡二叉树除根节点以外的叶子节点和中间节点,则平衡二叉树的左右子树的深度差有不能超过1层的约束,这样使得这种排列的树是同种元素序列情况下的深度最小的二叉树,缩小了元素的深度,也就是减少了计算的步骤,缩短了网络拓扑中链路总数的长度。
基于平衡二叉树的纠删码失效节点重构方法的具体修复过程可以分为三个步骤。
新生节点和帮助节点选择阶段:
A1:根据所采用的纠删码修复方案,确定可用来修复失效块c0的编码块c1,c2,…,cr作为帮助节点,并计算出相应的修复系数向量(β1,β2,…βr);
A2:确定参与修复的编码块,并从系统中获得各编码块分别所在节点,记为V1,V2,…,Vr。
A3:根据系统放置策略确定出新生节点,记为V0,并记录下新生节点与帮助节点、帮助节点与帮助节点之间的网络距离(跳数);
平衡二叉树构造阶段:
B1:以新生节点为根节点,帮助节点作为根节点和中间节点。以根节点为中心,根据新生节点与帮助节点间的网络距离(跳数)记录,选择与新生节点直接相连的帮助节点。
B2:以步骤B1选择出的帮助节点分别作为后续节点的父节点,根据父节点与其他帮助节点之间的网络距离,选择与之网络距离(跳数)为1的节点作为叶节点。
B3:重复B2,直到选择出所有帮助节点,构建出平衡二叉树。
数据修复阶段:
C1:如果为树中的叶子节点,则负责从本地存储系统中读取编码块ci,并计算出βici,然后将其发送给自己的父亲节点;
C2:如果为内部节点,则负责接受其子节点发送过来的数据,并从本地存储系统中读取编码块,将结果加在一起之后再次发送给自己的父节点;
C3:如果为根节点,则负责接受其子节点发送过来的数据,计算出总和,然后将结果写入本地存储,这样就成功地修复了失效块。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于平衡二叉树的纠删码失效节点重构方法,其特征在于,该方法包括以下步骤:
步骤1:选择新生节点和帮助节点;
步骤2:构造平衡二叉树;
步骤3:修复数据。
2.根据权利要求1所述的一种基于平衡二叉树的纠删码失效节点重构方法,其特征在于,所述步骤1包括以下步骤:
步骤1.1:根据所采用的纠删码修复方案,确定用来修复失效块c0的编码块c1,c2,…,cr作为帮助节点,并计算出相应的修复系数向量(β1,β2,…βr);
步骤1.2:确定参与修复的编码块,并从系统中获得各编码块分别所在节点,记为V1,V2,…,Vr;
步骤1.3:根据系统放置策略确定出新生节点,记为V0,并记录下新生节点与帮助节点、帮助节点与帮助节点之间的网络距离,即跳数。
3.根据权利要求1所述的一种基于平衡二叉树的纠删码失效节点重构方法,其特征在于,所述步骤2包括以下步骤:
步骤2.1:以新生节点为根节点,帮助节点作为根节点和中间节点,以根节点为中心,根据新生节点与帮助节点间的网络距离记录,即跳数记录,选择与新生节点直接相连的帮助节点;
步骤2.2:以步骤2.1选择出的帮助节点分别作为后续节点的父节点,根据父节点与帮助节点之间的网络距离,选择与之网络距离为1的节点作为叶节点;
步骤2.3:重复步骤2.2,直到选择出所有帮助节点,构建出平衡二叉树。
4.根据权利要求1所述的一种基于平衡二叉树的纠删码失效节点重构方法,其特征在于,所述步骤3包括以下步骤:
步骤3.1:若为树中的叶子节点,则负责从本地存储系统中读取编码块ci,并计算出βici,然后将其发送给自己的父亲节点;
步骤3.2:若为内部节点,则负责接受其子节点发送过来的数据,并从本地存储系统中读取编码块,将结果加在一起之后再次发送给自己的父节点;
步骤3.3:若为根节点,则负责接受其子节点发送过来的数据,计算出总和,然后将结果写入本地存储,这样就成功地修复了失效块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910130961.7A CN109857585A (zh) | 2019-02-20 | 2019-02-20 | 一种基于平衡二叉树的纠删码失效节点重构方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910130961.7A CN109857585A (zh) | 2019-02-20 | 2019-02-20 | 一种基于平衡二叉树的纠删码失效节点重构方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109857585A true CN109857585A (zh) | 2019-06-07 |
Family
ID=66898611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910130961.7A Pending CN109857585A (zh) | 2019-02-20 | 2019-02-20 | 一种基于平衡二叉树的纠删码失效节点重构方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109857585A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597655A (zh) * | 2019-06-26 | 2019-12-20 | 中大编码有限公司 | 一种迁移与基于纠删码的重构相耦合的快速预知修复方法和实现 |
CN118378026A (zh) * | 2024-06-26 | 2024-07-23 | 中国电信股份有限公司 | 一种数据传输方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607304A (zh) * | 2013-11-21 | 2014-02-26 | 中国人民解放军国防科学技术大学 | 一种基于纠删码的失效数据线形修复方法 |
CN105930232A (zh) * | 2016-05-12 | 2016-09-07 | 南京大学 | 一种利用网络拓扑信息的简单再生码修复方法 |
US20180121286A1 (en) * | 2016-11-01 | 2018-05-03 | Cisco Technology, Inc. | Efficient repair of erasure coded data based on coefficient matrix decomposition |
CN109194444A (zh) * | 2018-09-01 | 2019-01-11 | 哈尔滨工程大学 | 一种基于网络拓扑的平衡二叉树修复方法 |
-
2019
- 2019-02-20 CN CN201910130961.7A patent/CN109857585A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607304A (zh) * | 2013-11-21 | 2014-02-26 | 中国人民解放军国防科学技术大学 | 一种基于纠删码的失效数据线形修复方法 |
CN105930232A (zh) * | 2016-05-12 | 2016-09-07 | 南京大学 | 一种利用网络拓扑信息的简单再生码修复方法 |
US20180121286A1 (en) * | 2016-11-01 | 2018-05-03 | Cisco Technology, Inc. | Efficient repair of erasure coded data based on coefficient matrix decomposition |
CN109194444A (zh) * | 2018-09-01 | 2019-01-11 | 哈尔滨工程大学 | 一种基于网络拓扑的平衡二叉树修复方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597655A (zh) * | 2019-06-26 | 2019-12-20 | 中大编码有限公司 | 一种迁移与基于纠删码的重构相耦合的快速预知修复方法和实现 |
CN110597655B (zh) * | 2019-06-26 | 2023-04-28 | 云链网科技(广东)有限公司 | 迁移和基于纠删码的重构相耦合快速预知修复方法及装置 |
CN118378026A (zh) * | 2024-06-26 | 2024-07-23 | 中国电信股份有限公司 | 一种数据传输方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194444A (zh) | 一种基于网络拓扑的平衡二叉树修复方法 | |
CN108540520B (zh) | 基于部分重复码的局部性修复编码及节点故障修复方法 | |
CN109889440B (zh) | 一种基于最大生成树的纠删码失效节点重构路径选择方法 | |
CN110212923B (zh) | 一种基于模拟退火的分布式纠删码存储系统数据修复方法 | |
CN110868438A (zh) | 一种区块链网络系统 | |
CN103944981B (zh) | 一种基于纠删码技术改进的云存储系统及实现方法 | |
CN106776112B (zh) | 一种基于Pyramid码的局部性修复编码方法 | |
CN106100801A (zh) | 一种云存储系统的非均匀纠删编码方法 | |
CN106951340B (zh) | 一种基于局部性优先的rs纠删码数据布局方法及系统 | |
CN112835738B (zh) | 一种条带数据存储结构的构建方法 | |
CN109491835A (zh) | 一种基于动态分组码的数据容错方法 | |
CN106484559A (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
CN109857585A (zh) | 一种基于平衡二叉树的纠删码失效节点重构方法 | |
Weidong et al. | Tree-structured parallel regeneration for multiple data losses in distributed storage systems based on erasure codes | |
CN104391759A (zh) | 一种纠删码存储中负载感知的数据归档方法 | |
CN107689983A (zh) | 基于低修复带宽的云存储系统及方法 | |
CN108762978A (zh) | 一种局部部分重复循环码的分组构造方法 | |
CN109062724B (zh) | 一种纠删码转换方法及终端 | |
CN109067852A (zh) | 一种基于纠删码的跨中心协同修复方法 | |
CN109828723A (zh) | 一种分布式存储系统及其精确数据修复方法及装置 | |
CN108092744A (zh) | 极化码码重分布的计算方法 | |
CN114116696B (zh) | 云存储系统中考虑节点选择机制的故障节点数据重构方法 | |
CN110781024A (zh) | 对称部分重复码的矩阵构造方法及故障节点修复方法 | |
CN106911793B (zh) | I/o优化的分布式存储数据修复方法 | |
CN109343998A (zh) | 一种基于纠删码的全分布修复方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190607 |
|
RJ01 | Rejection of invention patent application after publication |