CN113687975B - 数据处理方法、装置、设备及存储介质 - Google Patents
数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113687975B CN113687975B CN202110794110.XA CN202110794110A CN113687975B CN 113687975 B CN113687975 B CN 113687975B CN 202110794110 A CN202110794110 A CN 202110794110A CN 113687975 B CN113687975 B CN 113687975B
- Authority
- CN
- China
- Prior art keywords
- data
- blocks
- block
- damaged
- group
- 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.)
- Active
Links
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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开一种数据处理方法,通过将原始数据均分成若干数据块并对所述数据块分组;采用Clay码对组内数据块编码,得到局部校验块;采用RS码对所有数据块编码,得到全局校验块;检测损毁数据块的数量;当检测到只有一个所述损毁数据块时,根据所述损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,修复所述损毁数据块;当检测到至少两个所述损毁数据块时,根据除损毁数据块所在组外的其他数据块及所述全局校验块,修复所述损毁数据块。本发明还公开了数据处理装置、设备及存储介质,能够通过设计新的编码,组内采用Clay码进行编码,组间采用RS码进行编码,以在修复一个数据块时降低下载的数据量,在修复多个数据块时降低计算开销。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。
背景技术
全球数据量的爆炸式增长,对存储系统的存储能力带来了极高的要求,因此,具有高存储性能、扩展性强的分布式存储系统被广泛应用。与传统的集中式存储而言,分布式存储集群多数采用大量的跨地域节点存储海量数据并提供数据访问服务,这些服务节点的失效率很高,为了提供容错能力,传统的存储集群普遍采用存储开销成倍增长的多副本技术,而纠删码能以极低的存储开销提供相同甚至更高的容错能力,因此目前大多数存储集群通过结合纠删码这种数据修复策略来保证数据的可靠性。
纠删码首先将原始数据划分成若干同等大小的数据块,然后在有限域(内对数据块进行编码运算得到若干校验块。目前存储集群常用的纠删码有RS码和Clay码。
在进行数据修复时,经典的RS码涉及的矩阵运算简单,但是需要下载的数据量巨大,Clay再生码通过划分子块的技术以及更为复杂的编码运算使得修复一个数据块不需要下载其他编码块的完整数据,然而当修复多个数据块时,Clay再生码需要下载更多的子块参与计算,计算开销远大于RS码的有限域运算,以上的编码方式在进行数据修复时并不能兼顾修复一个数据块下载的数据量和修复多个数据块的计算开销。
发明内容
本发明实施例的目的是提供一种数据处理方法、装置、设备及存储介质。通过设计新的编码,组内采用Clay码进行编码,组间采用RS码进行编码,以在修复一个数据块时降低下载的数据量,在修复多个数据块时降低计算开销。
为实现上述目的,本发明实施例提供了一种数据处理方法,包括:
将原始数据进行均等划分,得到若干数据块,并将所述数据块进行分组;
采用Clay码对组内数据块进行编码得到局部校验块;
采用RS码对所有数据块进行编码得到全局校验块;
检测所述数据块中的损毁数据块的数量;
当检测到只存在一个所述损毁数据块时,根据所述损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,修复所述损毁数据块;
当检测到存在至少两个所述损毁数据块时,根据除损毁数据块所在组外的其他数据块及所述全局校验块,修复所述损毁数据块。
作为上述方案的改进,所述采用Clay码对组内数据块进行编码得到局部校验块,具体包括:
对每一数据块进行划分,得到若干数据块子块;
采用Clay码对组内的数据块子块进行编码,得到局部校验块;其中,所述局部校验块包括若干局部校验块子块。
作为上述方案的改进,所述当检测到只存在一个损毁数据块时,根据所述损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,修复所述损毁数据块,具体包括:
当检测到只存在一个所述损毁数据块时,从所述损毁数据块所在组的除损毁数据块外的其他数据块中,选出预设数量的数据块子块,从所述损毁数据块所在组的局部校验块中,选出所述预设数量的局部校验块子块,采用Clay解码操作以修复损毁数据块。
为实现上述目的,本发明实施例还提供了一种数据处理装置,包括:
数据划分模块,用于将原始数据进行均等划分,得到若干数据块,并将所述数据块进行分组;
局部编码模块,用于采用Clay码对组内数据块进行编码得到局部校验块;
全局编码模块,用于采用RS码对所有数据块进行编码得到全局校验块;
损毁数据块检测模块,用于检测所述数据块中的损毁数据块的数量;
第一数据修复模块,用于当检测到只存在一个所述损毁数据块时,根据所述损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,修复所述损毁数据块;
第二数据修复模块,用于当检测到存在至少两个所述损毁数据块时,根据除损毁数据块所在组外的其他数据块及所述全局校验块,修复所述损毁数据块。
作为上述方案的改进,所述局部编码模块,具体用于:
对每一数据块进行划分,得到若干数据块子块;
采用Clay码对组内的数据块子块进行编码,得到局部校验块;其中,所述局部校验块包括若干局部校验块子块。
作为上述方案的改进,所述第一数据修复模块,具体用于:
当检测到只存在一个所述损毁数据块时,从所述损毁数据块所在组的除损毁数据块外的其他数据块中,选出预设数量的数据块子块,从所述损毁数据块所在组的局部校验块中,选出所述预设数量的局部校验块子块,采用Clay解码操作以修复损毁数据块。
为实现上述目的,本发明实施例还提供了一种数据处理设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一实施例所述的数据处理方法。
为实现上述目的,本发明实施例还提供了一种存储介质,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述存储介质所在设备执行如上述任一实施例所述的数据处理方法。
与现有技术相比,本发明实施例公开的数据处理方法、装置、设备及存储介质,通过将原始数据进行均等划分,得到若干数据块;进一步对所述数据块进行分组;通过采用Clay码对组内数据块进行编码得到局部校验块,通过采用RS码对所有数据块进行编码得到全局校验块;当检测到只有一个数据块损毁时,根据损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,采用Clay解码操作以修复所述损毁数据块;当检测到至少两个所述数据块损毁时,根据除损毁数据块所在组外的其他数据块及所述全局校验块执行RS解码操作以修复所述损毁数据块。本发明实施例通过设计新的编码,组内采用Clay码进行编码,组间采用RS码进行编码,以在修复一个数据块时降低下载的数据量,在修复多个数据块时降低计算开销。
附图说明
图1是本发明一实施例提供的一种数据处理方法的流程图;
图2是本发明一实施例提供的另一种数据处理方法的流程图;
图3是本发明一实施例提供的(6,4)-RS纠删码的编码原理图;
图4是本发明一实施例提供的D1损毁后更新的矩阵运算等式变换图;
图5是本发明一实施例提供的数据修复计算公式展示图;
图6是本发明一实施例提供的(6,4)-RS修复一个数据块的示例图;
图7是本发明一实施例提供的(6,4,5)-Clay修复一个数据块的示例图;
图8是本发明一实施例提供的一种数据编码示例图;
图9是本发明一实施例提供的一种数据块分布图;
图10是本发明一实施例提供一个数据块修复的示例图;
图11是本发明一实施例提供多个数据块修复的示例图;
图12是本发明一实施例提供的一种数据处理装置的结构框图;
图13是本发明一实施例提供的一种数据处理设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明一实施例提供的一种数据处理方法的流程图。
所述数据处理方法可以通过客户端执行,所述客户端可以为电脑、手机、平板等用户终端设备;其中,所述客户端上可以装载有各种应用程序,包括数据编码类、数据修复类的应用程序,并用于呈现数据。作为举例,所述客户端可以包括显示屏和处理器,该显示屏用于呈现数据界面,该数据界面用于呈现数据,以及与用户进行交互;该处理器用于修复损毁数据、生成数据界面以及控制数据界面在显示屏上的显示;
所述数据处理方法也可以由服务器执行,所述服务器可以IA架构服务器、RISC架构服务器等不同类型的服务器;其中,所述服务器端具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性,可以为客户端提供数据修复类应用的响应服务请求、承担服务、保障服务。
所述方法包括步骤S11~S16:
S11、将原始数据进行均等划分,得到若干数据块,并将所述数据块进行分组;
S12、采用Clay码对组内数据块进行编码得到局部校验块;
S13、采用RS码对所有数据块进行编码得到全局校验块;
S14、检测所述数据块中的损毁数据块的数量;
S15、当检测到只存在一个所述损毁数据块时,根据所述损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,修复所述损毁数据块;
S16、当检测到存在至少两个所述损毁数据块时,根据除损毁数据块所在组外的其他数据块及所述全局校验块,修复所述损毁数据块。
步骤S11~S13是一种新的编码方式,组内采用Clay码进行编码,组间采用RS码进行编码。采用这种编码方式进行编码的数据,在进行数据修复时,可根据损毁的数据块的数量选择不同的修复方式。
步骤S14~S16是一种基于新的编码方式的数据处理方式,当修复一个数据块时,利用Clay码的解码算法可以降低从存活节点下载的数据量,当修复多个数据块时,利用RS码的解码算法可以降低计算开销。
在步骤S14中,作为举例地,可以实时监测数据块的损毁状况,也可以定时或者不定时监测数据块的损毁状况。
在步骤S15和S16中,可以在监测到存在数据块损毁时即时修复数据,也可以定期修复损毁的数据,也可以通过接收用户指令来进行数据的修复,数据修复的时机在此不作限定;其中,用户指令可以是鼠标点击,也可以是键盘输入,也可以是触屏输入,在此不作限定。
与现有技术相比,本发明实施例公开的数据处理方法,通过将原始数据进行均等划分,得到若干数据块;进一步对所述数据块进行分组;通过采用Clay码对组内数据块进行编码得到局部校验块,通过采用RS码对所有数据块进行编码得到全局校验块;当检测到只有一个数据块损毁时,根据损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,采用Clay解码操作以修复所述损毁数据块;当检测到至少两个所述数据块损毁时,根据除损毁数据块所在组外的其他数据块及所述全局校验块执行RS解码操作以修复所述损毁数据块。本发明实施例通过设计新的编码,组内采用Clay码进行编码,组间采用RS码进行编码,以在修复一个数据块时降低下载的数据量,在修复多个数据块时降低计算开销。
在一种实施方式中,步骤S12中的所述采用Clay码对组内数据块进行编码得到局部校验块,具体包括步骤S121~S122:
S121、对每一数据块进行划分,得到若干数据块子块;
S122、采用Clay码对组内的数据块子块进行编码,得到局部校验块;其中,所述局部校验块包括若干局部校验块子块。
具体地,在步骤S11中的数据块进行分组,形成若干组数据块组之后,根据Clay码的编码原理对每一数据块划分成多个子块(具体子块的个数可根据实际情况进行设定),根据数据块组组内的数据块子块进行Clay码编码,得到每一数据块组对应的局部校验块,其中,局部校验块包括若干局部校验块子块。
在一种实施方式中,步骤S15中的所述当检测到只存在一个损毁数据块时,根据所述损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,修复所述损毁数据块,具体包括:
当检测到只存在一个所述损毁数据块时,从所述损毁数据块所在组的除损毁数据块外的其他数据块中,选出预设数量的数据块子块,从所述损毁数据块所在组的局部校验块中,选出所述预设数量的局部校验块子块,采用Clay解码操作以修复损毁数据块。
在一种实施方式中,步骤S16中的当检测到存在至少两个所述损毁数据块时,根据除损毁数据块所在组外的其他数据块及所述全局校验块,修复所述损毁数据块,具体包括:
当检测到存在至少两个所述损毁数据块时,根据除损毁数据块所在组外的其他数据块及所述全局校验块,采用RS解码操作以修复所述损毁数据块。
具体地,参见图2所示的数据处理方法的流程图,以一个具体例子进行数据编码及修复的具体过程的介绍,包括步骤S101~S109:
S101:启动存储集群,存储集群由发起请求的客户端、检测块损毁的元数服务器、存储数据块的数据节点、存储校验块校验节点组成;
S102:客户端将原始数据划分为多个同等大小的数据块;
S103:客户端根据Clay码的编码原理将每个数据块划分为多个子块;
S104:客户端对所有数据块进行分组并将数据块存储于数据节点中;
S105:客户端采用Clay码对每个组的组内数据块进行编码得到局部校验块,并将局部校验块存储于校验节点中;
S106:客户端采用RS码对所有数据块进行编码得到全局校验块,并将全局校验块存储于校验节点中;
S107:在元数据服务器检测到有数据块损毁时,判断是单个数据块损毁还是多个数据块;如果存储集群中只有一个数据块损毁,则客户端下载损毁数据块所在组的其余数据块及局部校验块的若干子块执行Clay解码操作;
S108:如果存储集群中有多个数据块损毁,则客户端需要下载组外的数据块及全局校验块的完整数据进行RS解码操作;
S109:修复数据块操作完成,客户端将恢复出的数据块存储于集群的数据节点中。
为进一步说明本发明实施例修复数据时兼顾了修复一个数据块下载的数据量和修复多个数据块的计算开销,下面以具体例子详细介绍数据修复过程:
参见图3~图6,(6,4)-RS(Reed-Solomon)纠删码的编码及数据修复过程具体为:
将原始划分成4个数据块Dj,j∈(1,2,3,4),编码得到的校验块为Pi,其中,i∈(1,2),数据块和校验块统称为编码块,eij为Pi在生成矩阵中对应Dj的编码系数,为一个常量;
当k’个块损毁时,可利用剩余k个块修复损毁块。假设D1损毁,则去掉生成矩阵中对应的行,由于只需要k个块修复损毁块,所有也去掉生成矩阵的最后一行及P2,得到一个新的矩阵运算等式;
在新的矩阵运算等式两边同时乘以处理后的生成矩阵的逆矩阵,经过运算可恢复所有数据块;
根据以上的数据修复原理对数据进行修复,假设存储集群共有6个节点,原始数据M大小为160KB,将其划分为4个数据块Dj,j∈(1,2,3,4),每个数据块40KB。D1存放在数据节点1,D2存放在数据节点2,以此类推。则修复D1新生节点需要从4个存活节点读取4个完整块进行运算,总下载数据量为40KB*4。
Clay码是一种再生码,数据块和校验块都包含相同数量的子块,编码与修复时以子块为基本单位,子块之间的关系也更为复杂。再生码在进行数据修复时,新生节点需要从尽量多的节点来下载数据。再生码的基本定义:(n,k,d)-再生码的一个条带包含n个编码块,k个数据块,可以容忍任意n-k个块失效,进行数据修复时新生节点可以连接d个存活节点下载数据,其中k=<d<=n-1。Clay码还有2个常用的辅助参数α和β,分别表示单个编码块包含的子块个数,连接d个节点进行数据修复时从每个节点下载的子块个数,定义q=d-k+1,t=n/q,可由以下公式得到α和β:
α=q∧t,β=α/q;
参见图7,以(6,4,5)-Clay为例,α等于8,β等于4,假设Da,b代表第a个数据块的第b个子块。当数据节点1失效时,为了修复节点1存储的D1,新生节点需要连接5个存活节点,并从每个节点上下载4个子块,总下载数据量为40KB*2.5,和(6,4)-RS相较减少了37.5%。并且当k更小时如(4,2,3)-Clay的总下载数据量更少,只有40KB*1.5,因此Clay码能显著降低修复单节点的数据传输量,但是当修复多个数据块时,Clay再生码需要下载更多的子块参与计算,计算开销远大于RS码的有限域运算。
参见图8~图11,为本发明实施例提供的新的编码及数据修复过程:
假设数据块数目k=4,全局校验块数目m=2;数据块分为两组,每2个数据块组成一组,每组的局部校验块数目r=2。全局校验块由(6,4)-RS编码生成,每组的局部校验块由(4,2,3)-Clay编码生成。
根据α和β的计算公式,得到(4,2,3)-Clay的α=4,β=2,即每个编码块包含4个子块(除全局校验块,全局校验块由RS编码产生,不划分子块),且每个编码块贡献2个子块即可修复一个损毁块(损毁数据块)。假设原始数据M为160KB,则每个编码块总大小为40KB,每个子块大小为10KB,默认每个节点存储一个编码块,即数据节点1存储D1,数据节点2存储D2,以此类推。
当一个数据块损毁时,从组内每个剩余块中下载2个子块进行修复操作。如图10,假设数据节点1失效即D1损毁,则需要从同组剩余的数据块D2(存储于数据节点2)下载D2,2和D2,3,从校验块P1(存储于校验节点5)下载P1,2和P1,3,从校验块P2(存储于校验节点6)中下载P2,1和P2,3。两两异或运算即可恢复损毁块的一个子块,如D2,2和P1,2异或即可恢复D1,2,最终可恢复损毁的完整块数据。
当多个数据块损毁时,(6,4)-RS需要读取组外的数据块及全局校验块来进行解码操作并恢复数据。假设数据节点1及数据节点2损毁即D1和D2损毁,(6,4)-RS需要从组2下载D3(存储于数据节点3)和D4(存储于数据节点4)的完整数据,并下载全局校验块P5(存储于校验节点9)和P6(存储于校验节点10)的完整数据。其中,D3和D4进行异或操作得到D3+D4,D3+D4再和P5异或得到2D1-D2;3)D3+D4再和P6异或得到D1+D2,2D1-D2和D1+D2异或即可得到损毁的数据块D1和D2。
由此可知,单个数据块损毁时,本发明实施例极大限度地降低了修复过程中的下载数据量。假设原始数据160KB,数据块有4个,(全局)校验块2个,我们可以将(6,4)-RS、(6,4,5)-Clay与本发明的混合纠删码策略进行下载数据量的比较。单个数据块损毁时,(6,4)-RS需要下载40KB*4,(6,4,5)-Clay需要下载40KB*2.5,而本发明实施例的混合纠删码策略只需下载40KB*1.5,下载数据量相较于前两种策略分别降低了62.5%和40%。
多个数据块损毁时,减少修复过程的计算开销。RS的解码运算为有限域内的矩阵运算,Clay码采用划分子块技术,将每个编码块都划分为多个子块,编解码操作均以子块为基本单位进行运算。相较单个数据块损毁,多个数据块损毁时,Clay码需要从每个编码块下载更多的子块参与到解码运算中,计算开销远大于简单的RS码的有限域运算。比如2个数据块损毁时,根据(6,4,5)-Clay至少需要20个子块参与解码运算,而根据本发明的混合纠删码策略只需要4个块参与解码运算,降低了修复过程的计算开销。
与现有技术相比,上述本发明实施例通过设计新的编码,组内采用Clay码进行编码,组间采用RS码进行编码,以在修复一个数据块时采用Clay码解码算法降低下载的数据量,在修复多个数据块时采用RS码的解码算法降低计算开销。
参见图12,图12是本发明一实施例提供的数据处理装置的结构框图。数据处理装置20包括:
数据划分模块21,用于将原始数据进行均等划分,得到若干数据块,并将所述数据块进行分组;
局部编码模块22,用于采用Clay码对组内数据块进行编码得到局部校验块;
全局编码模块23,用于采用RS码对所有数据块进行编码得到全局校验块;
损毁数据块检测模块24,用于检测所述数据块中的损毁数据块的数量;
第一数据修复模块25,用于当检测到只存在一个所述损毁数据块时,根据所述损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,修复所述损毁数据块;
第二数据修复模块26,用于当检测到存在至少两个所述损毁数据块时,根据除损毁数据块所在组外的其他数据块及所述全局校验块,修复所述损毁数据块。
数据划分模块21、局部编码模块22和全局编码模块23用于数据的编码,编码思路为组内采用Clay码进行编码,组间采用RS码进行编码。采用这种编码方式进行编码的数据,在进行数据修复时,可根据损毁的数据块的数量选择不同的修复方式。
损毁数据块检测模块24、第一数据修复模块25和第二数据修复模块26用于数据的修复,当修复一个数据块时,利用Clay码的解码算法可以降低从存活节点下载的数据量,当修复多个数据块时,利用RS码的解码算法可以降低计算开销。
作为举例地,可以实时监测数据块的损毁状况,也可以定时或者不定时监测数据块的损毁情况,可以在监测到存在数据块损毁时即时修复数据,也可以定期修复损毁的数据,也可以通过接收用户指令来进行数据的修复,数据修复的时机在此不作限定;其中,用户指令可以是鼠标点击,也可以是键盘输入,也可以是触屏输入,在此不作限定。
与现有技术相比,本发明实施例公开的数据处理装置,通过将原始数据进行均等划分,得到若干数据块;进一步对所述数据块进行分组;通过采用Clay码对组内数据块进行编码得到局部校验块,通过采用RS码对所有数据块进行编码得到全局校验块;当检测到只有一个数据块损毁时,根据损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,采用Clay解码操作以修复所述损毁数据块;当检测到至少两个所述数据块损毁时,根据除损毁数据块所在组外的其他数据块及所述全局校验块执行RS解码操作以修复所述损毁数据块。本发明实施例通过设计新的编码,组内采用Clay码进行编码,组间采用RS码进行编码,以在修复一个数据块时降低下载的数据量,在修复多个数据块时降低计算开销。
在一种实施方式中,所述局部编码模块22,具体用于:
对每一数据块进行划分,得到若干数据块子块;
采用Clay码对组内的数据块子块进行编码,得到局部校验块;其中,所述局部校验块包括若干局部校验块子块。
具体地,局部编码模块22在数据划分模块21对数据块进行分组,形成若干组数据块组之后,根据Clay码的编码原理对每一数据块划分成多个子块(具体子块的个数可根据实际情况进行设定),根据数据块组组内的数据块子块进行Clay码编码,得到每一数据块组对应的局部校验块,其中,局部校验块包括若干局部校验块子块。
在一种实施方式中,所述第一数据修复模块25,具体用于:
当检测到只存在一个所述损毁数据块时,从所述损毁数据块所在组的除损毁数据块外的其他数据块中,选出预设数量的数据块子块,从所述损毁数据块所在组的局部校验块中,选出所述预设数量的局部校验块子块,采用Clay解码操作以修复损毁数据块。
值得说明的是,所述数据处理装置20的工作原理可参见上述任一实施例所述的数据处理方法,在此不再赘述。
在一种实施方式中,所述第二数据修复模块26,具体用于:当检测到存在至少两个所述损毁数据块时,根据除损毁数据块所在组外的其他数据块及所述全局校验块,采用RS解码操作以修复所述损毁数据块。
参见图13,是本发明一实施例提供的一种数据处理设备30,包括处理器31、存储器32以及存储在所述存储器32中且被配置为由所述处理器32执行的计算机程序,所述处理器31执行所述计算机程序时实现如上述数据处理方法实施例中的步骤,例如图1中所述的步骤S11~S16;或者,所述处理器31执行所述计算机程序时实现上述各装置实施例中各模块的功能,例如数据划分模块21。
示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器32中,并由所述处理器31执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述数据处理设备30中的执行过程。例如,所述计算机程序可以被分割成数据划分模块21、局部编码模块22、全局编码模块23、损毁数据块检测模块24、第一数据修复模块25和第二数据修复模块26,各模块具体功能如下:
数据划分模块21,用于将原始数据进行均等划分,得到若干数据块,并将所述数据块进行分组;
局部编码模块22,用于采用Clay码对组内数据块进行编码得到局部校验块;
全局编码模块23,用于采用RS码对所有数据块进行编码得到全局校验块;
损毁数据块检测模块24,用于检测所述数据块中的损毁数据块的数量;
第一数据修复模块25,用于当检测到只存在一个所述损毁数据块时,根据所述损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,修复所述损毁数据块;
第二数据修复模块26,用于当检测到存在至少两个所述损毁数据块时,根据除损毁数据块所在组外的其他数据块及所述全局校验块,修复所述损毁数据块。
各个模块具体的工作过程可参考上述实施例所述的数据处理装置20的工作过程,在此不再赘述。
所述数据处理设备30可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述数据处理设备30可包括,但不仅限于,处理器31、存储器32。本领域技术人员可以理解,所述示意图仅仅是数据处理设备的示例,并不构成对数据处理设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述数据处理设备30还可以包括输入输出设备、网络接入设备、总线等。
所述处理器31可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器31是所述数据处理设备30的控制中心,利用各种接口和线路连接整个数据处理设备30的各个部分。
所述存储器32可用于存储所述计算机程序和/或模块,所述处理器31通过运行或执行存储在所述存储器32内的计算机程序和/或模块,以及调用存储在存储器32内的数据,实现所述数据处理设备30的各种功能。所述存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如Clay编码功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如数据块、全局校验块、局部校验块等)等。此外,存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述数据处理设备30集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (8)
1.一种数据处理方法,其特征在于,包括:
将原始数据进行均等划分,得到若干数据块,并将所述数据块进行分组;
采用Clay码对组内数据块进行编码得到局部校验块;
采用RS码对所有数据块进行编码得到全局校验块;
检测所述数据块中的损毁数据块的数量;
当检测到只存在一个所述损毁数据块时,根据所述损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,修复所述损毁数据块;
当检测到存在至少两个所述损毁数据块时,根据除损毁数据块所在组外的其他数据块及所述全局校验块,修复所述损毁数据块。
2.如权利要求1所述的数据处理方法,其特征在于,所述采用Clay码对组内数据块进行编码得到局部校验块,具体包括:
对每一数据块进行划分,得到若干数据块子块;
采用Clay码对组内的数据块子块进行编码,得到局部校验块;其中,所述局部校验块包括若干局部校验块子块。
3.如权利要求2所述的数据处理方法,其特征在于,所述当检测到只存在一个损毁数据块时,根据所述损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,修复所述损毁数据块,具体包括:
当检测到只存在一个所述损毁数据块时,从所述损毁数据块所在组的除损毁数据块外的其他数据块中,选出预设数量的数据块子块,从所述损毁数据块所在组的局部校验块中,选出所述预设数量的局部校验块子块,采用Clay解码操作以修复损毁数据块。
4.一种数据处理装置,其特征在于,包括:
数据划分模块,用于将原始数据进行均等划分,得到若干数据块,并将所述数据块进行分组;
局部编码模块,用于采用Clay码对组内数据块进行编码得到局部校验块;
全局编码模块,用于采用RS码对所有数据块进行编码得到全局校验块;
损毁数据块检测模块,用于检测所述数据块中的损毁数据块的数量;
第一数据修复模块,用于当检测到只存在一个所述损毁数据块时,根据所述损毁数据块所在组的其他数据块和所述损毁数据块所在组的局部校验块,修复所述损毁数据块;
第二数据修复模块,用于当检测到存在至少两个所述损毁数据块时,根据除损毁数据块所在组外的其他数据块及所述全局校验块,修复所述损毁数据块。
5.如权利要求4所述的数据处理装置,其特征在于,所述局部编码模块,具体用于:
对每一数据块进行划分,得到若干数据块子块;
采用Clay码对组内的数据块子块进行编码,得到局部校验块;其中,所述局部校验块包括若干局部校验块子块。
6.如权利要求5所述的数据处理装置,其特征在于,所述第一数据修复模块,具体用于:
当检测到只存在一个所述损毁数据块时,从所述损毁数据块所在组的除损毁数据块外的其他数据块中,选出预设数量的数据块子块,从所述损毁数据块所在组的局部校验块中,选出所述预设数量的局部校验块子块,采用Clay解码操作以修复损毁数据块。
7.一种数据处理设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至3中任意一项所述的数据处理方法。
8.一种存储介质,其特征在于,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述存储介质所在设备执行如权利要求1至3中任意一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110794110.XA CN113687975B (zh) | 2021-07-14 | 2021-07-14 | 数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110794110.XA CN113687975B (zh) | 2021-07-14 | 2021-07-14 | 数据处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113687975A CN113687975A (zh) | 2021-11-23 |
CN113687975B true CN113687975B (zh) | 2023-08-29 |
Family
ID=78576992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110794110.XA Active CN113687975B (zh) | 2021-07-14 | 2021-07-14 | 数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113687975B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385409A (zh) * | 2021-12-21 | 2022-04-22 | 阿里巴巴(中国)有限公司 | 基于纠删码的编码方法、分布式系统、设备及存储介质 |
CN114518846A (zh) * | 2022-01-10 | 2022-05-20 | 阿里巴巴(中国)有限公司 | 数据处理方法及装置 |
CN114281270B (zh) * | 2022-03-03 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据存储方法、系统、设备以及介质 |
CN115098295A (zh) * | 2022-06-29 | 2022-09-23 | 阿里巴巴(中国)有限公司 | 数据局部恢复方法、设备及存储介质 |
CN115562594B (zh) * | 2022-12-06 | 2023-03-24 | 苏州浪潮智能科技有限公司 | 一种raid卡的构建方法、系统及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656832A (zh) * | 2017-09-18 | 2018-02-02 | 华中科技大学 | 一种低数据重建开销的纠删码方法 |
CN111984443A (zh) * | 2019-05-24 | 2020-11-24 | 阿里巴巴集团控股有限公司 | 一种分布式系统环境下的编码方法、解码方法和对应装置 |
CN112835738A (zh) * | 2021-02-20 | 2021-05-25 | 华中科技大学 | 一种条带数据存储结构及其构建、修复和更新方法 |
CN112860476A (zh) * | 2021-02-19 | 2021-05-28 | 上海交通大学 | 一种基于视频分层存储的近似纠删码编码方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102475805B1 (ko) * | 2018-08-20 | 2022-12-09 | 에스케이하이닉스 주식회사 | 디코더, 그것의 동작 방법 및 메모리 시스템 |
-
2021
- 2021-07-14 CN CN202110794110.XA patent/CN113687975B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656832A (zh) * | 2017-09-18 | 2018-02-02 | 华中科技大学 | 一种低数据重建开销的纠删码方法 |
CN111984443A (zh) * | 2019-05-24 | 2020-11-24 | 阿里巴巴集团控股有限公司 | 一种分布式系统环境下的编码方法、解码方法和对应装置 |
CN112860476A (zh) * | 2021-02-19 | 2021-05-28 | 上海交通大学 | 一种基于视频分层存储的近似纠删码编码方法及装置 |
CN112835738A (zh) * | 2021-02-20 | 2021-05-25 | 华中科技大学 | 一种条带数据存储结构及其构建、修复和更新方法 |
Non-Patent Citations (1)
Title |
---|
面向分布式存储集群的纠删码数据更新及修复方法研究;章紫琳;《重庆大学》;1-63 * |
Also Published As
Publication number | Publication date |
---|---|
CN113687975A (zh) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113687975B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN108170555B (zh) | 一种数据恢复方法及设备 | |
CN111149093B (zh) | 分布式存储系统的数据编码、解码及修复方法 | |
EP2394220B1 (en) | Distributed storage of recoverable data | |
KR100928882B1 (ko) | Raid 장치 및 갈로아체를 이용한 데이터 복원 장치 | |
US9465692B2 (en) | High reliability erasure code distribution | |
WO2017039795A1 (en) | Systems and methods for verification of code resiliency for data storage | |
CN110089035B (zh) | 存储控制器、数据处理芯片及数据处理方法 | |
CN110750382A (zh) | 用于提高数据修复性能的最小存储再生码编码方法及系统 | |
US20200319973A1 (en) | Layered error correction encoding for large scale distributed object storage system | |
US11249846B2 (en) | Erasure code-based data processing method and apparatus | |
CN114153651B (zh) | 一种数据编码方法、装置、设备及介质 | |
CN111782152A (zh) | 数据存储方法、数据恢复方法、装置、服务器及存储介质 | |
CN102843212B (zh) | 编解码处理方法及装置 | |
CN114816837A (zh) | 一种纠删码融合方法、系统、电子设备及存储介质 | |
CN115113816A (zh) | 一种纠删码数据处理系统、方法、计算机设备及介质 | |
CN114116297B (zh) | 一种数据编码方法、装置、设备及介质 | |
CN105007286B (zh) | 解码方法和装置及云存储方法和系统 | |
CN112286449A (zh) | 一种rs纠删处理设备及分布式存储系统 | |
US9552254B1 (en) | Verification of erasure encoded fragments | |
CN107885615B (zh) | 分布式存储数据的复原方法与系统 | |
CN109558086B (zh) | 一种数据读取方法、系统及相关组件 | |
CN114564337A (zh) | 一种基于x码的分布式存储系统容错方法及系统 | |
US9450617B2 (en) | Distribution and replication of erasure codes | |
CN114691414A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |