CN112463435A - 一种基于数据块访问频度的局部修复方法 - Google Patents
一种基于数据块访问频度的局部修复方法 Download PDFInfo
- Publication number
- CN112463435A CN112463435A CN202011418695.7A CN202011418695A CN112463435A CN 112463435 A CN112463435 A CN 112463435A CN 202011418695 A CN202011418695 A CN 202011418695A CN 112463435 A CN112463435 A CN 112463435A
- Authority
- CN
- China
- Prior art keywords
- data block
- access frequency
- data
- local
- repair
- 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
- 230000008439 repair process Effects 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000000638 solvent extraction Methods 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 description 6
- 238000011084 recovery Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/373—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于数据块访问频度的局部修复方法,包括以下步骤:S1:基于局部修复编码对数据文件进行分块和编码,得到若干数据块;S2:记录各个数据块的访问频度并设定阈值;S3:对访问频度超过阈值的数据块生成局部校验块;S4:当数据块失效时,判断失效数据块的访问频度是否超过阈值;若失效数据块的访问频度超过阈值,则采用其生成的局部校验块进行局部修复;若失效数据块的访问频度不超过阈值,则以失效数据块所在的存储节点为根节点构建修复二叉树,根据修复二叉树进行数据传输,实现局部修复。本发明提供一种基于数据块访问频度的局部修复方法,解决了目前随着存储规模的不断增大,局部修复编码在数据修复操作中耗时较长的问题。
Description
技术领域
本发明涉及存储数据修复技术领域,更具体的,涉及一种基于数据块访问频度的局部修复方法。
背景技术
局部修复编码(LRC,locally repairable codes)是一种纠删码,能够实现存储高可用性。LRC编码不仅生成一些全局的校验块来提供可靠性,它还将数据块进行分组,并在每个组内生成一个局部的校验块,最终由数据块、对应的全局校验块和局部校验块共同构成一个条带。在降级读操作和数据修复操作中,会优先使用被修复数据块所在分组内的数据块和局部校验块完成修复操作,因此,局部修复编码能够有效提升系统的降级读性能和数据修复性能,进而能够在一定程度上提升存储系统的可靠性。
但是,随着存储规模的不断增大,分组规模也较大,局部修复编码在数据修复操作中仍需要读取较多的数据块/校验块,因而耗时较长,又由于在恢复过程中存储系统出错的概率较大,较长的操作时长会影响存储系统整体的可靠性。
现有技术中,如2020年9月11日授权公告的中国专利,分布式存储系统中类局部重构码编码及节点故障修复方法,公告号为CN108347306B,在单节点故障时只需连接较少的节点实现快速恢复,保证了数据文件的快速高效恢复,降低了修复带宽开销,但没有解决随着存储规模的不断增大,局部修复编码在降级读操作和数据修复操作中耗时较长的问题。
发明内容
本发明为克服目前随着存储规模的不断增大,局部修复编码在数据修复操作中耗时较长的技术缺陷,提供一种基于数据块访问频度的局部修复方法。
为解决上述技术问题,本发明的技术方案如下:
一种基于数据块访问频度的局部修复方法,包括以下步骤:
S1:基于局部修复编码对数据文件进行分块和编码,得到若干数据块;
S2:记录各个数据块的访问频度并设定阈值;
S3:对访问频度超过阈值的数据块生成局部校验块;
S4:当数据块失效时,判断失效数据块的访问频度是否超过阈值;
若失效数据块的访问频度超过阈值,则采用其生成的局部校验块进行局部修复;
若失效数据块的访问频度不超过阈值,则以失效数据块所在的存储节点为根节点构建修复二叉树,根据修复二叉树进行数据传输,实现局部修复。
上述方案中,根据数据块的访问频度执行不同的局部修复方案,有效利用数据块访问频度的差异,对于访问频度超过阈值的数据块直接采用其生成的局部校验块进行局部修复,缩短局部修复所需的时间,有效提升基于局部修复编码的存储系统的可靠性。
优选的,在步骤S1中,利用机架感知技术根据设定的局部修复编码的参数将数据块随机分发到不同机架的不同存储节点内。
优选的,在步骤S1中,还包括形成数据块状态表;
数据块状态表包括以下数据项:数据块ID、数据文件名、存储节点ID、机架ID和数据块状态。
优选的,数据块状态包括热、正常和冷三种状态。
优选的,在步骤S2中,以单位小时内数据块的访问量来度量数据块的访问频度。
优选的,将单位小时内访问量大于100次的数据块定义为热状态数据块;将单位小时内访问量小于30次的数据块定义为冷状态数据块;将其余数据块定义为正常状态数据块。
优选的,在步骤S2中,设定的阈值为:数据块的访问频度为单位小时内访问量达到100次。
优选的,在步骤S3中,通过将访问频度超过阈值的数据块与同一节点内访问频度不超过阈值的数据块进行异或运算,生成局部校验块。
优选的,局部校验块与其对应的访问频度超过阈值的数据块保存在同一节点的不同磁盘内。
优选的,在步骤S4中,将与失效数据块在同一机架且访问频度最高的若干数据块作为修复二叉树的叶子节点。
与现有技术相比,本发明技术方案的有益效果是:
本发明提供了一种基于数据块访问频度的局部修复方法,根据数据块的访问频度执行不同的局部修复方案,有效利用数据块访问频度的差异,对于访问频度超过阈值的数据块直接采用其生成的局部校验块进行局部修复,缩短局部修复所需的时间,有效提升基于局部修复编码的存储系统的可靠性。
附图说明
图1为本发明的技术方案实施步骤流程图;
图2为本发明的应用示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
如图1所示,一种基于数据块访问频度的局部修复方法,包括以下步骤:
S1:基于局部修复编码对数据文件进行分块和编码,得到若干数据块;
S2:记录各个数据块的访问频度并设定阈值;
S3:对访问频度超过阈值的数据块生成局部校验块;
S4:当数据块失效时,判断失效数据块的访问频度是否超过阈值;
若失效数据块的访问频度超过阈值,则采用其生成的局部校验块进行局部修复;
若失效数据块的访问频度不超过阈值,则以失效数据块所在的存储节点为根节点构建修复二叉树,根据修复二叉树进行数据传输,实现局部修复。
更具体的,在步骤S1中,利用机架感知技术根据设定的局部修复编码的参数将数据块随机分发到不同机架的不同存储节点内。
在具体实施过程中,局部修复编码的参数(k,l,g)由用户根据实际配置,其中,k为数据块的大小(例如数据文件分块大小为10MB),l为局部校验块的数量,g为全局校验块的数量;g个全局校验块基于局部修复编码对k个数据块使用Reed-Solomon编码进行编码生成;同时基于局部修复编码将k个数据块分为l个局部修复组。数据块及其生成的局部校验块和全局校验块组成一个条带。利用机架感知技术将同一局部修复组的数据块及其局部校验块放置到同一机架下不同节点,且尽可能分散在节点下的不同磁盘,提高局部修复编码的磁盘级容错和减小跨机架修复流量。
更具体的,在步骤S1中,还包括形成数据块状态表;
数据块状态表包括以下数据项:数据块ID、数据文件名、存储节点ID、机架ID和数据块状态。
更具体的,数据块状态包括热、正常和冷三种状态。
更具体的,在步骤S2中,以单位小时内数据块的访问量来度量数据块的访问频度。
更具体的,将单位小时内访问量大于100次的数据块定义为热状态数据块;将单位小时内访问量小于30次的数据块定义为冷状态数据块;将其余数据块定义为正常状态数据块。
在具体实施过程中,划分数据块状态的访问频度可由技术人员根据实际进行自定义。
更具体的,在步骤S2中,设定的阈值为:数据块的访问频度为单位小时内访问量达到100次。
在具体实施过程中,对超过单位小时内访问量达到100次的数据块(即热状态数据块)生成局部校验块。
更具体的,在步骤S3中,通过将访问频度超过阈值的数据块(即热状态数据块)与同一节点内访问频度不超过阈值的数据块(即正常状态数据块或冷状态数据块)进行异或运算,生成局部校验块。
在具体实施过程中,当访问频度超过阈值的数据块(即热状态数据块)失效时,通过将对应的局部校验块和同一节点内对应的访问频度不超过阈值的数据块(即正常状态数据块或冷状态数据块)进行异或运算,得到热状态数据块,完成局部修复。
更具体的,局部校验块与其对应的访问频度超过阈值的数据块保存在同一节点的不同磁盘内。
在具体实施过程中,热状态数据块存在失效的可能性高,当热状态数据块失效时,且存储节点正常,即可在存储节点内完成局部修复编码工作,且分组更小,能够降低对存储节点的读取压力。
更具体的,在步骤S4中,将与失效数据块在同一机架且访问频度最高的若干数据块作为修复二叉树的叶子节点。
实施例2
如图2所示,数据文件按(k,l,g)=(14,2,2)的参数进行分块,以5个数据块为一组,生成2个局部校验块和2个全局校验块。D1、D2、D3、D4、D5为第一局部修复组,放置在机架1下的存储节点(即图2左侧方框),D6、D7、D8、D9、D10为第二局部修复组,放置在机架2的存储节点中(即图2的右侧方框)。数据块如需要从机架1转移到机架2,则需要消耗跨机架流量。生成的局部校验块和全局校验块未在图2中表示出来,局部校验块放置在与同一局部修复组中的机架下——本实施例中即左右机架各有一个局部校验块。当局部修复无法完成数据修复时,才启用全局校验块进行修复,即回到Reed-Solomon编码。
假设经过一段时间的统计记录,第一局部修复组的存储节点2下存储的D2数据块的单位小时内访问量达到120次,超过了设定的阈值,则启动存储节点2的局部校验块编码进程:D2′为存储节点2下存储的另一个条带的数据块,且为正常状态数据块。存储节点2将D2′数据块与D2数据块生成局部校验块P0′,并存储在存储节点2下的另一磁盘内。当D2数据块失效时,即可通过P0′和D2进行异或运算,得到失效数据块D2。通过监控和记录数据块访问频度,提前生成分组较小的局部校验块,减小了跨机架甚至是跨节点的网络流量,缩短局部修复所需的时间,提高了数据修复性能。
实施例3
假设数据块D6为第二局部修复组的失效数据块,且其访问频度不超过设定的阈值,数据块D7、D8、D9、D10的访问频度均不超过设定的阈值,且D10的访问频度比D9的访问频度高;以失效数据块D6为例解释当访问频度不超过阈值的数据块失效时的修复方案:
以失效数据块D6所在的存储节点为根节点,同一局部修复组内访问频度最高的几组数据块为叶子节点,构建修复二叉树。当存在同一局部修复组的数据块放置在同一节点上时,如数据块D7和D8,优先进行节点内数据块聚合,即先把D7和D8进行异或运算得到的局部校验块,然后其余数据块的数据传输顺序依照访问频度从高到低的顺序。将D7和D8通过异或运算得到的局部校验块传输到D10所在的存储节点,并将局部校验块与D10进行异或运算,得到运算结果;然后将运算结果传输到D9所在的存储节点与D9进行异或运算,得到新的运算结果,最后把新的运算结果发送到失效数据块D6所在的存储节点进行局部修复。失效数据块通常为访问频度较高的数据块,以访问频度较高的数据块所在的存储节点为根节点,可有效降低访问频度较高的数据块所在的存储节点的读取压力。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种基于数据块访问频度的局部修复方法,其特征在于,包括以下步骤:
S1:基于局部修复编码对数据文件进行分块和编码,得到若干数据块;
S2:记录各个数据块的访问频度并设定阈值;
S3:对访问频度超过阈值的数据块生成局部校验块;
S4:当数据块失效时,判断失效数据块的访问频度是否超过阈值;
若失效数据块的访问频度超过阈值,则采用其生成的局部校验块进行局部修复;
若失效数据块的访问频度不超过阈值,则以失效数据块所在的存储节点为根节点构建修复二叉树,根据修复二叉树进行数据传输,实现局部修复。
2.根据权利要求1所述的一种基于数据块访问频度的局部修复方法,其特征在于,在步骤S1中,利用机架感知技术根据设定的局部修复编码的参数将数据块随机分发到不同机架的不同存储节点内。
3.根据权利要求2所述的一种基于数据块访问频度的局部修复方法,其特征在于,在步骤S1中,还包括形成数据块状态表;
数据块状态表包括以下数据项:数据块ID、数据文件名、存储节点ID、机架ID和数据块状态。
4.根据权利要求3所述的一种基于数据块访问频度的局部修复方法,其特征在于,数据块状态包括热、正常和冷三种状态。
5.根据权利要求1所述的一种基于数据块访问频度的局部修复方法,其特征在于,在步骤S2中,以单位小时内数据块的访问量来度量数据块的访问频度。
6.根据权利要求5所述的一种基于数据块访问频度的局部修复方法,其特征在于,将单位小时内访问量大于100次的数据块定义为热状态数据块;将单位小时内访问量小于30次的数据块定义为冷状态数据块;将其余数据块定义为正常状态数据块。
7.根据权利要求6所述的一种基于数据块访问频度的局部修复方法,其特征在于,在步骤S2中,设定的阈值为:数据块的访问频度为单位小时内访问量达到100次。
8.根据权利要求1所述的一种基于数据块访问频度的局部修复方法,其特征在于,在步骤S3中,通过将访问频度超过阈值的数据块与同一节点内访问频度不超过阈值的数据块进行异或运算,生成局部校验块。
9.根据权利要求8所述的一种基于数据块访问频度的局部修复方法,其特征在于,局部校验块与其对应的访问频度超过阈值的数据块保存在同一节点的不同磁盘内。
10.根据权利要求2所述的一种基于数据块访问频度的局部修复方法,其特征在于,在步骤S4中,将与失效数据块在同一机架且访问频度最高的若干数据块作为修复二叉树的叶子节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011418695.7A CN112463435A (zh) | 2020-12-07 | 2020-12-07 | 一种基于数据块访问频度的局部修复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011418695.7A CN112463435A (zh) | 2020-12-07 | 2020-12-07 | 一种基于数据块访问频度的局部修复方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112463435A true CN112463435A (zh) | 2021-03-09 |
Family
ID=74801587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011418695.7A Pending CN112463435A (zh) | 2020-12-07 | 2020-12-07 | 一种基于数据块访问频度的局部修复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463435A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419895A (zh) * | 2021-07-21 | 2021-09-21 | 广东工业大学 | 一种降低储存集群系统中修复开销的优化方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8832039B1 (en) * | 2011-06-30 | 2014-09-09 | Amazon Technologies, Inc. | Methods and apparatus for data restore and recovery from a remote data store |
CN105159618A (zh) * | 2015-09-25 | 2015-12-16 | 清华大学 | 用于单盘失效修复的优化方法及优化装置 |
CN108347306A (zh) * | 2018-03-16 | 2018-07-31 | 长安大学 | 分布式存储系统中类局部重构码编码及节点故障修复方法 |
CN110032470A (zh) * | 2019-03-18 | 2019-07-19 | 长安大学 | 一种基于哈夫曼树的异构部分重复码的构造方法 |
US20190227869A1 (en) * | 2018-01-22 | 2019-07-25 | Micron Technology, Inc. | Enhanced error correcting code capability using variable logical to physical associations of a data block |
CN110704232A (zh) * | 2019-10-10 | 2020-01-17 | 广东工业大学 | 一种分布式系统中失效节点的修复方法、装置和设备 |
CN111149093A (zh) * | 2018-09-03 | 2020-05-12 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据编码、解码及修复方法 |
CN112000278A (zh) * | 2020-07-23 | 2020-11-27 | 哈尔滨工业大学(深圳) | 一种热数据存储的自适应局部重构码设计方法及云存储系统 |
-
2020
- 2020-12-07 CN CN202011418695.7A patent/CN112463435A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8832039B1 (en) * | 2011-06-30 | 2014-09-09 | Amazon Technologies, Inc. | Methods and apparatus for data restore and recovery from a remote data store |
CN105159618A (zh) * | 2015-09-25 | 2015-12-16 | 清华大学 | 用于单盘失效修复的优化方法及优化装置 |
US20190227869A1 (en) * | 2018-01-22 | 2019-07-25 | Micron Technology, Inc. | Enhanced error correcting code capability using variable logical to physical associations of a data block |
CN108347306A (zh) * | 2018-03-16 | 2018-07-31 | 长安大学 | 分布式存储系统中类局部重构码编码及节点故障修复方法 |
CN111149093A (zh) * | 2018-09-03 | 2020-05-12 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据编码、解码及修复方法 |
CN110032470A (zh) * | 2019-03-18 | 2019-07-19 | 长安大学 | 一种基于哈夫曼树的异构部分重复码的构造方法 |
CN110704232A (zh) * | 2019-10-10 | 2020-01-17 | 广东工业大学 | 一种分布式系统中失效节点的修复方法、装置和设备 |
CN112000278A (zh) * | 2020-07-23 | 2020-11-27 | 哈尔滨工业大学(深圳) | 一种热数据存储的自适应局部重构码设计方法及云存储系统 |
Non-Patent Citations (1)
Title |
---|
王淑霞: "分布式存储系统中故障节点快速修复研究", 《中国优秀博硕士学位论文全文数据库(硕士)》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419895A (zh) * | 2021-07-21 | 2021-09-21 | 广东工业大学 | 一种降低储存集群系统中修复开销的优化方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110750382B (zh) | 用于提高数据修复性能的最小存储再生码编码方法及系统 | |
CN107656832B (zh) | 一种低数据重建开销的纠删码方法 | |
US9280416B1 (en) | Selection of erasure code parameters for no data repair | |
US20100083069A1 (en) | Selecting Erasure Codes For A Fault Tolerant System | |
CN111149093A (zh) | 分布式存储系统的数据编码、解码及修复方法 | |
WO2023103213A1 (zh) | 一种分布式数据库的数据存储方法和装置 | |
CN106484559A (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
CN116501553B (zh) | 数据恢复方法、装置、系统、电子设备及存储介质 | |
Venkatesan et al. | Effect of codeword placement on the reliability of erasure coded data storage systems | |
CN114816837B (zh) | 一种纠删码融合方法、系统、电子设备及存储介质 | |
CN108762978B (zh) | 一种局部部分重复循环码的分组构造方法 | |
CN111459710B (zh) | 感知热度与风险的纠删码内存恢复方法、设备及内存系统 | |
CN112463435A (zh) | 一种基于数据块访问频度的局部修复方法 | |
Iliadis | Reliability evaluation of erasure-coded storage systems with latent errors | |
CN113419895B (zh) | 一种降低储存集群系统中修复开销的优化方法及装置 | |
Iliadis | Reliability evaluation of erasure coded systems under rebuild bandwidth constraints | |
CN106933707B (zh) | 基于raid技术的数据存储设备数据恢复方法及系统 | |
CN109947587B (zh) | 非均匀故障保护的分组修复码构造方法及故障修复方法 | |
CN115061640B (zh) | 一种容错分布存储系统、方法、电子设备及介质 | |
CN106911793B (zh) | I/o优化的分布式存储数据修复方法 | |
CN111224747A (zh) | 可降低修复带宽和磁盘读取开销的编码方法及其修复方法 | |
CN113157715B (zh) | 纠删码数据中心机架协同更新方法 | |
Iliadis | Effect of lazy rebuild on reliability of erasure-coded storage systems | |
Wang et al. | An erasure code with low recovery-overhead based on a particular three-hierarchical redundancy structure | |
CN112463812A (zh) | 一种基于Ceph分布式系统多机架更新修复数据的优化方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210309 |