CN112015325A - 一种生成解码矩阵的方法、解码方法和对应装置 - Google Patents
一种生成解码矩阵的方法、解码方法和对应装置 Download PDFInfo
- Publication number
- CN112015325A CN112015325A CN201910451394.5A CN201910451394A CN112015325A CN 112015325 A CN112015325 A CN 112015325A CN 201910451394 A CN201910451394 A CN 201910451394A CN 112015325 A CN112015325 A CN 112015325A
- Authority
- CN
- China
- Prior art keywords
- matrix
- pcm
- failure
- decoding
- transformation
- 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
- 239000011159 matrix material Substances 0.000 title claims abstract description 318
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000009466 transformation Effects 0.000 claims abstract description 55
- 238000000926 separation method Methods 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 230000015556 catabolic process Effects 0.000 abstract description 2
- 238000006731 degradation reaction Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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
-
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本申请提出一种生成解码矩阵的方法、解码方法和对应装置,涉及编码容错技术领域,所述方法包括:对构造的奇偶校验PCM矩阵进行矩阵变换,分离出单位失效矩阵HL;将变换后的PCM矩阵去除所述单位失效矩阵HL得到的可读取的数据块所对应的列HS作为解码矩阵;其中,所述奇偶校验PCM矩阵包括校验块矩阵和单位矩阵,所述单位失效矩阵HL为变换后的PCM矩阵中失效数据块所对应的列。针对分布式系统环境,在不影响系统容错能力以及存储代价的前提下优化降级读写代价。
Description
技术领域
本发明涉及编码容错技术领域,具体涉及一种生成解码矩阵的方法、解码方法和对应装置。
背景技术
目前,随着云计算和大数据技术的飞速发展,当前大数据中心也正在进行技术变革。随着数据中心的规模日益增大,硬件故障、软件失效的频率也在增加,这时存储系统的可靠性就显得尤为重要,数据的存储成本与可靠性都是分布式系统设计时需要考虑的因素。而纠删码可以在保证与其同样的数据可靠性的前提下,最小化系统的存储开销。目前业界分布式系统中普遍采用纠删码的方式进行存储,这种方式相较于多副本的存储方式可以在保证相同容错能力的条件下,节省接近一半的存储空间。但是,这种方式也存在着磁盘重构和降级读写时需要占用大量计算资源的问题;另一方面,不同于多副本的存储方式可以在一个磁盘失效时直接读取另一个磁盘上的副本,纠删码在一个数据磁盘失效后,需要读取额外的校验磁盘,并通过计算还原出原数据,这一过程被称为降级读写,计算的速度直接影响了系统读写的速度,同时影响了分布式系统的响应时间的问题。
传统的文件系统中的RaidFile中仅支持数据的Buffer模式的写入,当数据对于写入的延迟要求较高时,RaidFile并不能满足用户的写入需求。因此在磁盘失效时,为了应对用户的请求以及重新恢复数据,系统常常需要快速进行降级读写以及磁盘重构,这引起了计算资源的分配以及加速解码算法的问题。
发明内容
本申请提供一种生成解码矩阵的方法、解码方法和对应装置,针对分布式系统环境,在不影响系统容错能力以及存储代价的前提下优化降级读写代价。
采取的技术方案如下:
第一方面,本发明提供一种生成解码矩阵的方法,应用于分布式系统,包括:
对构造的奇偶校验PCM矩阵进行矩阵变换,分离出单位失效矩阵HL;
将变换后的PCM矩阵去除所述单位失效矩阵HL得到的可读取的数据块所对应的列HS作为解码矩阵;
其中,所述奇偶校验PCM矩阵包括校验块矩阵和单位矩阵,所述单位失效矩阵HL为变换后的PCM矩阵中失效数据块所对应的列。
优选地,对构造的奇偶校验PCM矩阵进行矩阵变换,分离出单位失效矩阵HL包括:
构造大小为m*n奇偶校验PCM矩阵,其中,n=k+m,k为原始数据块的数量,m为校验数据块的数量,所述PCM矩阵的前k列为编码矩阵中生成的校验块矩阵,后m列为单位矩阵;
对所述PCM矩阵进行矩阵变换,使得失效数据块所对应的列为单位矩阵,并将所述失效数据块所对应的列分离出来构成单位失效矩阵HL。
优选地,对所述PCM矩阵进行矩阵变换之前还包括:
标记所述PCM矩阵中失效数据块所对应的列。
优选地,对所述PCM矩阵进行矩阵变换之前还包括:
判断失效数据块所对应的列是否为单位矩阵,当不是单位矩阵时,执行矩阵变换的步骤;
当时单位矩阵时,跳过矩阵变换的步骤。
优选地,对所述PCM矩阵进行矩阵变换,使得失效数据块所对应的列为单位矩阵包括:
对于失效数据块对应的列,记为{a1,a2,…,ar};
对于任意i属于[1,r],读取失效数据对应列ai;使其第i行的元素通过行变换变为1;
将ai列除第i行的元素外的剩余元素都通过行变换变为0。
优选地,使其第i行的元素通过行变换变为1包括:
将所述PCM矩阵的第i行所有元素都除以ai列的第i行的元素。
优选地,将ai列除第i行的元素外的剩余元素都通过行变换变为0包括:
对于PCM矩阵中的除第i行外的其他行,所述其他行在ai列中的元素x与第i行元素做乘法,再与这一行做减法操作。
第二方面,本发明提供一种解码方法,包括:
利用解码矩阵乘以原始数据块与校验数据块之和为0获得原始数据块;
所述解码矩阵为奇偶校验PCM矩阵进行矩阵变换分离出可读取的数据块所对应的列HS;
其中,所述奇偶校验PCM矩阵包括校验块矩阵和单位矩阵
第三方面,本发明提供一种生成解码矩阵的装置,包括:
变换模块,设置为对构造的奇偶校验PCM矩阵进行矩阵变换,分离出单位失效矩阵HL;
抽出模块,设置为将变换后的PCM矩阵去除所述单位失效矩阵HL得到的可读取的数据块所对应的列HS作为解码矩阵;
其中,所述奇偶校验PCM矩阵包括校验块矩阵和单位矩阵,所述单位失效矩阵HL为变换后的PCM矩阵中失效数据块所对应的列。
优选地,所述变换模块包括:
构造单元,设置为构造大小为m*n奇偶校验PCM矩阵,其中,n=k+m,k为原始数据块的数量,m为校验数据块的数量,所述PCM矩阵的前k列为编码矩阵中生成的校验块矩阵,后m列为单位矩阵;
分离单元,设置为对所述PCM矩阵进行矩阵变换,使得失效数据块所对应的列为单位矩阵,并将所述失效数据块所对应的列分离出来构成单位失效矩阵HL。
优选地,所述的装置还包括:标记模块,设置为标记所述PCM矩阵中失效数据块所对应的列。
优选地,所述的装置还包括:
判断模块,设置为判断所述失效数据块所对应的列是否为单位矩阵,当不是单位矩阵时,使能分离单元;当时单位矩阵时,不使能分离单元。
第四方面,本发明提供一种解码装置,包括:
解码模块,设置为利用解码矩阵乘以原始数据块与校验数据块之和为0获得原始数据块;
所述解码矩阵为奇偶校验PCM矩阵进行矩阵变换分离出可读取的数据块所对应的列HS;
其中,所述奇偶校验PCM矩阵包括校验块矩阵和单位矩阵。
本申请和现有技术相比,具有如下有益效果:
本申请在分布式系统重构或降级读写的过程中,通过优化解码过程中的矩阵运算,减少乘法运算次数,加速运算速度,从而减少分布式系统响应时间。
此外,还最大限度地提高编解码速度,以应对分布式系统不同场景下对响应时间的需求。
本申请通过优化解码矩阵加速解码时的矩阵运算的方法,即可以适用于任何一种通过矩阵运算进行编解码的纠删码,且不需要更改编码本身,有着广泛的适用性,并保证用户的请求响应的及时性和数据存储的可靠性。
附图说明
图1为本发明实施例的一种生成解码矩阵的方法的流程图;
图2为相关技术中的生成解码矩阵的示意图;
图3为本发明实施例的一种生成解码矩阵的装置的结构示意图;
图4为本发明实施例的一种生成解码矩阵的装置的结构示意图;
图5为本发明实施例的一种生成解码矩阵的装置的结构示意图;
图6为本发明实施例的分布式系统环境下的解码过程的流程图。
具体实施方式
下面将结合附图及实施例对本申请的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本申请实施例以及实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在一种配置中,分布式系统包括多个数据分区,每个数据分区包括一个或者多个用于存储数据的数据盘,每个数据盘可包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存(memory)。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。内存可能包括一个或多个模块。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
实施例一
如图1所示,本发明实施例提供一种生成解码矩阵的方法,应用于分布式系统,包括:
S101、对构造的奇偶校验PCM矩阵进行矩阵变换,分离出单位失效矩阵HL;
S102、将变换后的PCM矩阵去除所述单位失效矩阵HL得到的可读取的数据块所对应的列HS作为解码矩阵;
其中,所述奇偶校验PCM矩阵包括校验块矩阵和单位矩阵,所述单位失效矩阵HL为变换后的PCM矩阵中失效数据块所对应的列。
本发明实施例中,步骤S101中,对构造的奇偶校验PCM矩阵进行矩阵变换,分离出单位失效矩阵HL包括:
构造大小为m*n奇偶校验PCM矩阵,其中,n=k+m,k为原始数据块的数量,m为校验数据块的数量,所述PCM矩阵的前k列为编码矩阵中生成的校验块矩阵,后m列为单位矩阵;
对所述PCM矩阵进行矩阵变换,使得失效数据块所对应的列为单位矩阵,并将所述失效数据块所对应的列分离出来构成单位失效矩阵HL。
PCM(Parity Check Matrix,奇偶校验矩阵)是一个描述所有磁盘节点中对应条带元素间线性关系的矩阵,是一个m*n(n=k+m)的矩阵。前k列为编码矩阵中生成校验块的r*k的矩阵,后m列为一个r*r的单位矩阵。PCM矩阵与数据块和校验块组成的向量相乘的结果正好为0,因此描述了数据块与各个校验块间的线性关系,其中每一个矩阵的每一列都对应了一个相应的数据块。在相关技术中,通过将PCM矩阵中失效数据块所对应的列抽出,组成两个新的矩阵:HL代表失效数据块所对应的列组成的矩阵;HS代表可读取的数据块所对应的列,并将其分别放在等号的两边,分别乘以对应数据块,行成如图2所示的关系式。对关系式两边相乘HL的逆矩阵即可得到解码矩阵。但是在相关技术的算法中,HL矩阵的求逆并与HS矩阵做乘法是十分耗费计算资源的,因此本发明实施例从PCM矩阵生成解码矩阵的过程做了优化,首先对PCM矩阵进行矩阵变换,使分离出的HL为一个单位矩阵,由此可以减少HL的求逆运算和HL矩阵的逆矩阵与HS矩阵的乘法运算。本发明实施例通过使用PCM矩阵来生成解码矩阵,并优化生成解码矩阵的运算过程,进一步减少耗费的计算资源以及计算时间,来保证数据块失效时,磁盘重构以及降级读写的速度,保证数据的可靠性以及系统的响应时间。
本发明实施例中,步骤S102对所述PCM矩阵进行矩阵变换之前还包括:标记所述PCM矩阵中失效数据块所对应的列;
本发明实施例中,步骤S102对所述PCM矩阵进行矩阵变换之前还包括:
判断失效数据块所对应的列是否为单位矩阵,当不是单位矩阵时,执行矩阵变换的步骤;
当时单位矩阵时,跳过矩阵变换的步骤。
本发明实施例中,步骤S102对所述PCM矩阵进行矩阵变换,使得失效数据块所对应的列为单位矩阵包括:
对于失效数据块对应的列,记为{a1,a2,…,ar};
对于任意i属于[1,r],读取失效数据对应列ai;使其第i行的元素通过行变换变为1;
将ai列除第i行的元素外的剩余元素都通过行变换变为0。
本发明实施例对于失效数据块对应的PCM矩阵的列,分别对其进行标号,记为{a1,a2,…,ar}。对于任意i属于[1,r],可以得到失效数据对应列ai。使其第i行的元素通过行变换变为1,之后,将ai列的剩余元素都通过行变换变为0。分别对i=[1,r]进行上述操作,即可将HL矩阵变为一个单位矩阵。
对于PCM矩阵,由于等式右端为零矩阵,矩阵行变换不影响等式的成立。并且,由于原PCM矩阵中本身有一个单位矩阵存在,可以容易的通过行变换将HL矩阵变为单位矩阵,大幅减少了运算的步骤。
本发明实施例中,使其第i行的元素通过行变换变为1包括:
将所述PCM矩阵的第i行所有元素都除以ai列的第i行的元素。
本发明实施例中,将ai列除第i行的元素外的剩余元素都通过行变换变为0包括:
对于PCM矩阵中的除第i行外的其他行,所述其他行在ai列中的元素x与第i行元素做乘法,再与这一行做减法操作。
本发明实施例具有如下有益效果:
1、使用矩阵变换的方式减少了解码矩阵生成过程中,一个矩阵求逆和一个矩阵乘法的运算。
2、对所有使用矩阵进行编解码的纠删码都有加速运算的效果,适用性较广泛。
3、可以直接在解码矩阵生成中加入本方案,而不需要更改原纠删码方案。
实施例二
本实施例以奇偶校验PCM矩阵的大小为m*n例说明生成解码矩阵的过程:
构造大小为m*n奇偶校验PCM矩阵,其中,n=k+m,k为原始数据块的数量,m为校验数据块的数量,所述PCM矩阵的前k列为编码矩阵中生成的校验块矩阵,后m列为单位矩阵;
对所述PCM矩阵进行矩阵变换,使得分离出的失效矩阵HL为单位矩阵,所述失效矩阵HL为矩阵变换后抽出的失效数据块所对应的列;
将变换后的PCM矩阵去除失效矩阵HL得到的可读取的数据块所对应的列HS作为解码矩阵。
本实施例,对所述PCM矩阵进行矩阵变换之前还包括:
标记所述PCM矩阵中失效数据块所对应的列。
本实施例,对所述PCM矩阵进行矩阵变换之前还包括:
判断所述失效矩阵HL是否为单位矩阵,当不是单位矩阵时,执行矩阵变换的步骤;
当时单位矩阵时,跳过矩阵变换的步骤。
实施例三
本发明实施例提供一种解码方法,包括:
利用解码矩阵乘以原始数据块与校验数据块之和为0获得原始数据块;
所述解码矩阵为奇偶校验PCM矩阵进行矩阵变换分离出可读取的数据块所对应的列HS;
其中,所述奇偶校验PCM矩阵包括校验块矩阵和单位矩阵。
实施例四
如图3所示,本发明实施例提供一种生成解码矩阵的装置,包括:
变换模块100,设置为对构造的奇偶校验PCM矩阵进行矩阵变换,分离出单位失效矩阵HL
抽出模块200,设置为将变换后的PCM矩阵去除所述单位失效矩阵HL得到的可读取的数据块所对应的列HS作为解码矩阵;
其中,所述奇偶校验PCM矩阵包括校验块矩阵和单位矩阵,所述单位失效矩阵HL为变换后的PCM矩阵中失效数据块所对应的列。
如图4所示,所述变换模块100包括:
构造单元,设置为构造大小为m*n奇偶校验PCM矩阵,其中,n=k+m,k为原始数据块的数量,m为校验数据块的数量,所述PCM矩阵的前k列为编码矩阵中生成的校验块矩阵,后m列为单位矩阵;
分离单元,设置为对所述PCM矩阵进行矩阵变换,使得失效数据块所对应的列为单位矩阵,并将所述失效数据块所对应的列分离出来构成单位失效矩阵HL。
如图4所示,本实施例所述的装置,还包括:标记模块300,设置为标记所述PCM矩阵中失效数据块所对应的列。
如图5所示,本实施例所述的装置,还包括:
判断模块500,设置为判断所述失效数据块所对应的列是否为单位矩阵,当不是单位矩阵时,使能分离单元;当时单位矩阵时,不使能分离单元。
实施例五
本发明实施例提供一种解码装置,包括:
解码模块,设置为利用解码矩阵乘以原始数据块与校验数据块之和为0获得原始数据块;
所述解码矩阵为奇偶校验PCM矩阵进行矩阵变换分离出可读取的数据块所对应的列HS;
其中,所述奇偶校验PCM矩阵包括校验块矩阵和单位矩阵。
实施例六
如图6所示,本发明实施例说明生成解码矩阵的过程:
生成一个m*n(n=k+m)的PCM矩阵,前k列为编码矩阵中生成校验块的r*k的矩阵,后m列为一个r*r的单位矩阵;
标记所述PCM矩阵中失效数据块所对应的列{a1,a2,…,ar},并使i=0;
判断{a1,a2,…,ar}是否可以组成一个单位矩阵;
如果是,则从所述PCM矩阵中去除失效数据块所对应的列{a1,a2,…,ar}得到解码矩阵;
如果否,则令PCM矩阵的第i行所有元素都除以该第ai列的元素,使该元素变为1;将第ai列中,除第i行元素外的其他元素,都通过与这一行做减法操作变为0;从所述PCM矩阵中去除失效数据块所对应的列{a1,a2,…,ar}得到解码矩阵。
虽然本发明所揭示的实施方式如上,但其内容只是为了便于理解本发明的技术方案而采用的实施方式,并非用于限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭示的核心技术方案的前提下,可以在实施的形式和细节上做任何修改与变化,但本发明所限定的保护范围,仍须以所附的权利要求书限定的范围为准。
Claims (13)
1.一种生成解码矩阵的方法,应用于分布式系统,其特征在于,包括:
对构造的奇偶校验PCM矩阵进行矩阵变换,分离出单位失效矩阵HL;
将变换后的PCM矩阵去除所述单位失效矩阵HL得到的可读取的数据块所对应的列HS作为解码矩阵;
其中,所述奇偶校验PCM矩阵包括校验块矩阵和单位矩阵,所述单位失效矩阵HL为变换后的PCM矩阵中失效数据块所对应的列。
2.如权利要求1所述的方法,其特征在于,对构造的奇偶校验PCM矩阵进行矩阵变换,分离出单位失效矩阵HL包括:
构造大小为m*n奇偶校验PCM矩阵,其中,n=k+m,k为原始数据块的数量,m为校验数据块的数量,所述PCM矩阵的前k列为编码矩阵中生成的校验块矩阵,后m列为单位矩阵;
对所述PCM矩阵进行矩阵变换,使得失效数据块所对应的列为单位矩阵,并将所述失效数据块所对应的列分离出来构成单位失效矩阵HL。
3.如权利要求2所述的方法,其特征在于,对所述PCM矩阵进行矩阵变换之前还包括:
标记所述PCM矩阵中失效数据块所对应的列。
4.如权利要求2所述的方法,其特征在于,对所述PCM矩阵进行矩阵变换之前还包括:
判断失效数据块所对应的列是否为单位矩阵,当不是单位矩阵时,执行矩阵变换的步骤;
当时单位矩阵时,跳过矩阵变换的步骤。
5.如权利要求2所述的方法,其特征在于,对所述PCM矩阵进行矩阵变换,使得失效数据块所对应的列为单位矩阵包括:
对于失效数据块对应的列,记为{a1,a2,…,ar};
对于任意i属于[1,r],读取失效数据对应列ai;使其第i行的元素通过行变换变为1;
将ai列除第i行的元素外的剩余元素都通过行变换变为0。
6.如权利要求5所述的方法,其特征在于,使其第i行的元素通过行变换变为1包括:
将所述PCM矩阵的第i行所有元素都除以ai列的第i行的元素。
7.如权利要求5所述的方法,其特征在于,将ai列除第i行的元素外的剩余元素都通过行变换变为0包括:
对于PCM矩阵中的除第i行外的其他行,所述其他行在ai列中的元素x与第i行元素做乘法,再与这一行做减法操作。
8.一种解码方法,其特征在于,包括:
利用解码矩阵乘以原始数据块与校验数据块之和为0获得原始数据块;
所述解码矩阵为奇偶校验PCM矩阵进行矩阵变换分离出可读取的数据块所对应的列HS;
其中,所述奇偶校验PCM矩阵包括校验块矩阵和单位矩阵。
9.一种生成解码矩阵的装置,其特征在于,包括:
变换模块,设置为对构造的奇偶校验PCM矩阵进行矩阵变换,分离出单位失效矩阵HL;
抽出模块,设置为将变换后的PCM矩阵去除所述单位失效矩阵HL得到的可读取的数据块所对应的列HS作为解码矩阵;
其中,所述奇偶校验PCM矩阵包括校验块矩阵和单位矩阵,所述单位失效矩阵HL为变换后的PCM矩阵中失效数据块所对应的列。
10.如权利要求9所述的装置,其特征在于,所述变换模块包括:
构造单元,设置为构造大小为m*n奇偶校验PCM矩阵,其中,n=k+m,k为原始数据块的数量,m为校验数据块的数量,所述PCM矩阵的前k列为编码矩阵中生成的校验块矩阵,后m列为单位矩阵;
分离单元,设置为对所述PCM矩阵进行矩阵变换,使得失效数据块所对应的列为单位矩阵,并将所述失效数据块所对应的列分离出来构成单位失效矩阵HL。
11.如权利要求10所述的装置,其特征在于,还包括:标记模块,设置为标记所述PCM矩阵中失效数据块所对应的列。
12.如权利要求10所述的装置,其特征在于,还包括:
判断模块,设置为判断所述失效数据块所对应的列是否为单位矩阵,当不是单位矩阵时,使能分离单元;当时单位矩阵时,不使能分离单元。
13.一种解码装置,其特征在于,包括:
解码模块,设置为利用解码矩阵乘以原始数据块与校验数据块之和为0获得原始数据块;
所述解码矩阵为奇偶校验PCM矩阵进行矩阵变换分离出可读取的数据块所对应的列HS;
其中,所述奇偶校验PCM矩阵包括校验块矩阵和单位矩阵。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910451394.5A CN112015325B (zh) | 2019-05-28 | 2019-05-28 | 一种生成解码矩阵的方法、解码方法和对应装置 |
PCT/CN2020/091466 WO2020238736A1 (zh) | 2019-05-28 | 2020-05-21 | 一种生成解码矩阵的方法、解码方法和对应装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910451394.5A CN112015325B (zh) | 2019-05-28 | 2019-05-28 | 一种生成解码矩阵的方法、解码方法和对应装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015325A true CN112015325A (zh) | 2020-12-01 |
CN112015325B CN112015325B (zh) | 2024-03-26 |
Family
ID=73500611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910451394.5A Active CN112015325B (zh) | 2019-05-28 | 2019-05-28 | 一种生成解码矩阵的方法、解码方法和对应装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112015325B (zh) |
WO (1) | WO2020238736A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244374A (zh) * | 2021-11-22 | 2022-03-25 | 成都博尔微晶科技有限公司 | 一种校验矩阵生成方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1993892A (zh) * | 2004-08-10 | 2007-07-04 | 三星电子株式会社 | 用于编码和解码块低密度奇偶校验码的装置和方法 |
US20150082126A1 (en) * | 2013-09-19 | 2015-03-19 | Fusion-Io, Inc. | Scoring variable nodes for low density parity check code decoding |
CN104488196A (zh) * | 2012-11-05 | 2015-04-01 | 三菱电机株式会社 | 纠错编码方法及纠错编码装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2134018A1 (en) * | 2008-05-23 | 2009-12-16 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Method for recovery of lost and/ or corrupted data |
US8914706B2 (en) * | 2011-12-30 | 2014-12-16 | Streamscale, Inc. | Using parity data for concurrent data authentication, correction, compression, and encryption |
CN103678029A (zh) * | 2013-12-18 | 2014-03-26 | 华中科技大学 | 一种容多个设备和扇区错的编码的优化方法 |
CN104850468B (zh) * | 2015-05-31 | 2018-04-27 | 上海交通大学 | 基于校验矩阵的纠删码解码方法 |
CN108132854B (zh) * | 2018-01-15 | 2020-11-17 | 成都信息工程大学 | 一种可同时恢复数据元素及冗余元素的纠删码解码方法 |
-
2019
- 2019-05-28 CN CN201910451394.5A patent/CN112015325B/zh active Active
-
2020
- 2020-05-21 WO PCT/CN2020/091466 patent/WO2020238736A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1993892A (zh) * | 2004-08-10 | 2007-07-04 | 三星电子株式会社 | 用于编码和解码块低密度奇偶校验码的装置和方法 |
CN104488196A (zh) * | 2012-11-05 | 2015-04-01 | 三菱电机株式会社 | 纠错编码方法及纠错编码装置 |
US20150082126A1 (en) * | 2013-09-19 | 2015-03-19 | Fusion-Io, Inc. | Scoring variable nodes for low density parity check code decoding |
Non-Patent Citations (1)
Title |
---|
张洋;王秀敏;陈豪威;: "基于FPGA的低密度奇偶校验码编码器设计", 浙江大学学报(工学版), vol. 45, no. 09, pages 1582 - 1586 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244374A (zh) * | 2021-11-22 | 2022-03-25 | 成都博尔微晶科技有限公司 | 一种校验矩阵生成方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112015325B (zh) | 2024-03-26 |
WO2020238736A1 (zh) | 2020-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210342225A1 (en) | Data Reconstruction in Distributed Storage Systems | |
US20170075741A1 (en) | Prioritizing Data Reconstruction in Distributed Storage Systems | |
WO2018000812A1 (zh) | 数据存储方法及装置 | |
US8775860B2 (en) | System and method for exact regeneration of a failed node in a distributed storage system | |
US10353787B2 (en) | Data stripping, allocation and reconstruction | |
CN110750382A (zh) | 用于提高数据修复性能的最小存储再生码编码方法及系统 | |
CA3177662C (en) | Data-storage method and apparatus, and data-recovery method and apparatus | |
US20220138046A1 (en) | Data reconstruction method and apparatus, computer device, and storage medium and system | |
WO2023056904A1 (zh) | 校验块的生成方法及装置 | |
CN114444274B (zh) | 一种从非结构网格中重构原结构网格的方法、介质及装置 | |
CN112435157A (zh) | 包括不同类型的存储器装置的图形处理系统及其操作方法 | |
CN112015325B (zh) | 一种生成解码矩阵的方法、解码方法和对应装置 | |
US20200336157A1 (en) | Systematic and xor-based coding technique for distributed storage systems | |
CN112463880B (zh) | 一种区块链数据存储方法及相关装置 | |
CN116501553B (zh) | 数据恢复方法、装置、系统、电子设备及存储介质 | |
WO2020238653A1 (zh) | 一种分布式系统环境下的编码方法、解码方法和对应装置 | |
Li et al. | Exploiting decoding computational locality to improve the I/O performance of an XOR-coded storage cluster under concurrent failures | |
CN113504875A (zh) | 一种基于多级调度的纠删码系统恢复方法及系统 | |
CN107615248B (zh) | 分布式数据存储方法、控制设备和系统 | |
US11165440B1 (en) | Systems and methods for geometric partitioning in object storage | |
US20190020359A1 (en) | Systematic coding technique for erasure correction | |
US11914475B2 (en) | Erasure recovery in a distributed storage system | |
US10817193B2 (en) | Multi-layer encoding for distributed container-based storage of smaller data objects | |
CN116662063B (zh) | 一种闪存的纠错配置方法、纠错方法、系统、设备及介质 | |
CN112835533A (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 |