CN111404554B - 一种纠删码的编码矩阵生成方法、装置及电子设备 - Google Patents
一种纠删码的编码矩阵生成方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111404554B CN111404554B CN201910934050.XA CN201910934050A CN111404554B CN 111404554 B CN111404554 B CN 111404554B CN 201910934050 A CN201910934050 A CN 201910934050A CN 111404554 B CN111404554 B CN 111404554B
- Authority
- CN
- China
- Prior art keywords
- matrix
- data
- coding
- rows
- new
- 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
-
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明实施例提供了一种纠删码的编码矩阵生成方法、装置及电子设备。其中,方法包括:确定待保护数据的纠删码模式中所配置的数据块数目和校验块数目;在预设的生成矩阵中抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵,所述生成矩阵为第二数目行、第三数目列的可逆矩阵,所述第二数目大于所述校验块数目,所述第三数目大于所述数据块数目;基于所述编码子矩阵,构建第一数目行、所述数据块数目列的编码矩阵,所述编码矩阵中第一至第所述数据块数目行的元素构成的子矩阵为单位矩阵,其他行的元素构成的子矩阵为所述编码子矩阵,所述第一数目为所述数据块数目和所述校验块数目之和。可以有效降低生成编码矩阵所需要的计算量。
Description
技术领域
本发明涉及云存储技术领域,特别是涉及一种纠删码的编码矩阵生成方法、装置及电子设备。
背景技术
在一些应用场景中,可以将数据以多个数据块的形式进行存储,但是存储的数据块可能发生丢失。相关技术中,可以利用纠删码对数据块进行保护,以在部分数据块丢失的情况下,能够恢复丢失的数据块。
示例性的,假设待保护的数据被划分为n个数据块,则可以构建n+m行、n列的编码矩阵,其中,编码矩阵中的前n行的元素所构成的矩阵为单位矩阵,n、m均为正整数,将该编码矩阵与n个数据块构成的矩阵进行乘积运算,以对该数据进行编码,得到的编码数据中包括n+m个数据块。根据矩阵的原理,当这n+m个数据块发生数据块丢失,并且丢失的数据块不多于m个时,可以利用编码矩阵和这n+m个数据块中剩余的数据块,恢复丢失的数据块。因此,在使用纠删码的情况下,可以对数据提供m个冗余的保护,即最多可以允许丢失m个所保存的数据块(下文称该纠删码方式为n+m纠删码模式)。
但是对于不同的纠删码模式,如果n与m的和不同,如4+1纠删码模式(n与m之和为5)和5+2纠删码模式(n与m之和为7),所需要的编码矩阵的尺寸不同,无法通用。需要针对不同纠删码模式分别构建不同尺寸的编码矩阵。如何降低纠删码的编码矩阵构建所需要的计算成本,成为亟待解决的技术问题。
发明内容
本发明实施例的目的在于提供一种纠删码的编码矩阵生成方法、装置及电子设备,以实现降低生成纠删码的编码矩阵的计算成本。具体技术方案如下:
在本发明实施例的第一方面,提供了一种纠删码的编码矩阵生成方法,所述方法包括:
确定待保护数据的纠删码模式中所配置的数据块数目和校验块数目;
在预设的生成矩阵中抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵,所述生成矩阵为第二数目行、第三数目列的可逆矩阵,所述第二数目大于所述校验块数目,所述第三数目大于所述数据块数目;
基于所述编码子矩阵,构建第一数目行、所述数据块数目列的编码矩阵,所述编码矩阵中第一至第所述数据块数目行的元素构成的子矩阵为单位矩阵,其他行的元素构成的子矩阵为所述编码子矩阵,所述第一数目为所述数据块数目和所述校验块数目之和。
在一种可能的实施例中,所述在预设的生成矩阵中抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵,包括:
在预设的生成矩阵中随机抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵。
在一种可能的实施例中,在所述基于所述编码子矩阵,构建第一数目行、所述数据块数目列的编码矩阵之后,所述方法包括:
利用所述编码矩阵,对所述待保护数据进行编码,得到所述第一数目个数据块,作为所述待保护数据的编码数据。
在一种可能的实施例中,在所述利用所述编码矩阵,对所述带保护数据进行编码,得到编码数据之后,所述方法还包括:
当所述待保护数据的纠删码模式中所配置的校验块数目增加时,从所述生成矩阵中抽取增加数目个未被抽取的行中已经被抽取的所述数据块数目列的元素,作为新增子矩阵,所述新增数目为所述校验块数目所增加的数目;
利用所述新增子矩阵,对所述待保护数据进行编码,得到所述新增数目个数据块;
在所述编码数据中增加所述新增数目个数据块,作为新的编码数据;
在所述编码矩阵中增加所述新增矩阵,作为新的编码矩阵。
在一种可能的实施例中,在所述利用所述编码矩阵,对所述带保护数据进行编码,得到编码数据之后,所述方法还包括:
当所述待保护数据的纠删码模式中所配置的校验块数目减少时,在所述编码数据中删除减少数目个数据块,得到新的编码数据,所述减少数目为所述校验块数目所减少的数目;
在所述编码矩阵的所述编码子矩阵中删除与所述减少数目个数据块对应的行,得到新的编码矩阵。
在本发明实施例的第二方面,提供了一种纠删码的编码矩阵生成装置,所述装置包括:
模式确定模块,用于确定待保护数据的纠删码模式中所配置的数据块数目和校验块数目;
子矩阵抽取模块,用于在预设的生成矩阵中抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵,所述生成矩阵为第二数目行、第三数目列的可逆矩阵,所述第二数目大于所述校验块数目,所述第三数目大于所述数据块数目;
矩阵构建模块,用于基于所述编码子矩阵,构建第一数目行、所述数据块数目列的编码矩阵,所述编码矩阵中第一至第所述数据块数目行的元素构成的子矩阵为单位矩阵,其他行的元素构成的子矩阵为所述编码子矩阵,所述第一数目为所述数据块数目和所述校验块数目之和。
在一种可能的实施例中,所述子矩阵抽取模块,具体用于在预设的生成矩阵中随机抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵。
在一种可能的实施例中,所述装置还包括纠删码编码模块,用于在所述基于所述编码子矩阵,构建第一数目行、所述数据块数目列的编码矩阵之后,利用所述编码矩阵,对所述待保护数据进行编码,得到所述第一数目个数据块,作为所述待保护数据的编码数据。
在一种可能的实施例中,所述装置还包括纠删码升级模块,用于在所述利用所述编码矩阵,对所述带保护数据进行编码,得到编码数据之后,当所述待保护数据的纠删码模式中所配置的校验块数目增加时,从所述生成矩阵中抽取增加数目个未被抽取的行中已经被抽取的所述数据块数目列的元素,作为新增子矩阵,所述新增数目为所述校验块数目所增加的数目;
利用所述新增子矩阵,对所述待保护数据进行编码,得到所述新增数目个数据块;
在所述编码数据中增加所述新增数目个数据块,作为新的编码数据;
在所述编码矩阵中增加所述新增矩阵,作为新的编码矩阵。
在一种可能的实施例中,所述装置包括纠删码降级模块,用于在所述利用所述编码矩阵,对所述带保护数据进行编码,得到编码数据之后,当所述待保护数据的纠删码模式中所配置的校验块数目减少时,在所述编码数据中删除减少数目个数据块,得到新的编码数据,所述减少数目为所述校验块数目所减少的数目;
在所述编码矩阵的所述编码子矩阵中删除与所述减少数目个数据块对应的行,得到新的编码矩阵。
在本发明实施例的第三方面,提供了一种电子设备,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法步骤。
在本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。
本发明实施例提供的纠删码的编码矩阵生成方法、装置及电子设备,可以针对不同的纠删码模式,只需要从预先生成的生成矩阵中抽取相应的编码子矩阵,再与对应尺度的单位矩阵集合,即可构建得到适合该纠删码模式的编码矩阵,可以有效降低生成编码矩阵所需要的计算量。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的纠删码的编码矩阵生成方法的一种流程示意图;
图2为本发明实施例提供的基于编码矩阵的纠删码实现方法的一种流程示意图;
图3为本发明实施例提供的纠删码模式升级方法的一种流程示意图;
图4为本发明实施例提供的纠删码模式降级方法的一种流程示意图;
图5为本发明实施例提供的纠删码的编码矩阵生成装置的一种结构示意图;
图6为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为更清楚的对本发明实施例提供的纠删码的编码矩阵生成方法进行说明,下面首先对相关技术中的纠删码的原理进行示例性的说明。未描述方便,下面以3+2纠删码模式进行说明。假设数据为2字节数据,则数据可以表示成如下矩阵的形式:
其中第一行的0为该数据的第一个数据块的第一个字节,第一行的1为该数据的第一个数据块的第二个字节,第二行的211为该数据的第二个数据块的第一个字节,剩余的数值的含义可以依次类推,不再赘述。
3+2纠删码模式的编码矩阵为5行3列的矩阵,并且其中第一行至第三行的元素构成的子矩阵为单位矩阵,编码矩阵可以如下所示:
可以是将编码矩阵与该数据进行矩阵乘法,以对该数据进行编码。即编码过程可以如下式所示:
等式右边的矩阵即为该数据编码后得到的编码数据,同理于前述对该数据的矩阵的解释,该编码数据包括5个2字节的数据块。
3+2纠删码模式提供有2的冗余,以编码数据中丢失了两个数据块为例,假设丢失的为该矩阵中的第二行和第三行,即编码数据的第二个数据块和第三个数据块,此时剩余的编码数据可以表示为:
根据矩阵的原理,可知下式成立:
式1.
其中,等式左边的第一个矩阵为编码矩阵删除第二行和第三行后剩余的矩阵。等式两边分别乘以等式左边的第一个矩阵的逆矩阵,由于矩阵与自身的逆矩阵的乘积为单位矩阵,因此该等式可以变化为:
其中,等式右边的第一个矩阵为式1中等式坐标的第一个矩阵的逆矩阵。即在编码数据丢失两个数据块的情况下,可以利用编码矩阵将编码数据剩余的数据块恢复成原始的数据。但是前提条件是,从n+m行、n列的编码矩阵中删除m行后得到的n行n列矩阵为可逆矩阵。
由于n+m纠删码模式的情况下,编码矩阵的尺寸为n+m行n列,因此纠删码模式所配置的n或者m发生变化时,编码矩阵的尺寸也将发生变化,因此不同纠删码模式无法共用同一个编码矩阵,导致更改纠删码模式所配置的n或m后,需要重新构建编码矩阵,如果每次重新构建编码矩阵需要花费较多计算量,则可能导致通过纠删码对数据进行保护的计算成本过高。
有鉴于此,本发明实施例提供了一种纠删码的编码矩阵生成方法,可以参见图1,图1所示为本发明实施例提供的纠删码的编码矩阵生成方法的一种流程示意图,可以包括:
S101,确定待保护的数据的纠删码模式中所配置的数据块数目和校验块数目。
以n+m纠删码模式为例,其中所配置的数据块数目为n,校验块数目为m。
S102,在预设的生成矩阵中抽取校验块数目行、数据块数目列的元素,作为编码子矩阵。
其中,生成矩阵为第二数目行第三数目列的可逆矩阵,示例性的,生成矩阵可以是64行16列的可逆矩阵。第二数目和第三数目为预设正整数,抽取可以是按照预设规则抽取,也可以是随机抽取,例如利用随机数表的方式进行随机抽取,本实施例对此不做限制。
所抽取的校验块数目行在生成矩阵中可以是连续的,也可以是不连续。所抽取的数据块数目列在生成矩阵中可以是连续的,也可以是不连续的。为描述方便,假设生成矩阵如下所示:
其中,a11-a46的取值根据应用场景的不同可以不同。则在一种可能的实施例中,如果数据块数目为4,校验块数目为2,则可以是抽取其中的2行4列元素。
下面将对生成矩阵的性质进行证明性描述,可以将该生成矩阵与第三数目行的单位矩阵拼接得到如下如下所示的矩阵,为描述方便,将该矩阵记为大矩阵,该单位矩阵和生成矩阵可以视为大矩阵中的两个子矩阵:
在大矩阵中随机移除该单位矩阵中的x行,并且随机保留生成矩阵中的x行,x为小于第二数目和第三数目的较小值的任一正整数。由于生成矩阵为第二数目行、第三数目列的矩阵,单位矩阵为第三数目行的矩阵,因此单位矩阵中移除x行后,剩余第三数目-x行,与生成矩阵中剩余的x行拼接可以得到第三数目行、第三数目列的矩阵。示例性的,以x等于2为例,在大矩阵中移除单位矩阵中的第一行、第二行,保留生成矩阵中的第一行、第三行,则大矩阵剩余的部分为:
根据矩阵的原理,可知该矩阵仍然为可逆矩阵。将该矩阵的第五行,减去a13倍的第一行,可以得到如下矩阵:
由于是线性变化,因此仍然是可逆矩阵。同理,将该矩阵的第五行分别减去a14倍的第二行,a15倍的第三行以及a16倍的第四行,并将该矩阵的第六行分别减去a33倍的第一行,减去a34倍的第二行,减去a35倍的第三行,减去a36倍的第四行,可以得到如下矩阵:
由于前述所做的均为线性变化,因此该矩阵仍然为可逆矩阵。在该矩阵为可逆矩阵的基础上,易知如下矩阵也同样为可逆矩阵:
即从生成矩阵中任意抽取的2行、以及与这2行对应的2列的元素所构成的矩阵仍为可逆矩阵。同理,通过对列进行随机抽取,将该结论推广至从生成矩阵中任意抽取的x行、x列元素所构成的矩阵仍为可逆矩阵,在此不再赘述。
S103,基于编码子矩阵,构建第一数目行、数据块数目列的编码矩阵。
其中,第一数目为数据块数目和校验块数目之和,以n+m纠删码模式为例,第一数目为n+m,编码矩阵为n+m行、n列的矩阵。编码矩阵中第一至第数据块数目行的元素构成的子矩阵为单位矩阵,其他行的元素构成的子矩阵为该编码子矩阵。为描述方便,假设编码子矩阵是从生成矩阵中随机抽取4行5的元素构成的,抽取的4行分别为生成矩阵中的第i1、i2、i3、i4行,抽取的5列分别为生成矩阵中的j1、j2、j3、j4、j5列,,其中i1-i4可以是连续的,也可以是不连续的,j1-j5可以是连续的,也可以是不连续的。可以将编码矩阵表示为如下形式:
其中,ai1,j1为生成矩阵中第i1行第j1列的元素,ai1,j2-ai4,j5的含义同理。该矩阵可以视为由一单位矩阵和编码子矩阵构成的矩阵。在该单位矩阵中随机移除y行,并在编码子矩阵中随机移除y行,示例性的,以y=2为例,移除单位矩阵中的第2行、第4行,保留编码子矩阵中的第2行、第4行。则可以得到如下所示的矩阵:
根据S102中的相关描述,该矩阵可以通过线性变换重构得到如下矩阵:
该矩阵可以视为生成矩阵中随机抽取2行2列元素所构成的子矩阵,由S102中的证明可知,该矩阵为可逆矩阵。因此可以逆向推到得到前述的矩阵:
也为可逆矩阵。由于编码矩阵中的单位矩阵为数据块数目行的矩阵,编码子矩阵为第校验块数目行的矩阵,因此在编码矩阵中随机移除y行,并在编码子矩阵中随机保留y行,实际上是在编码矩阵中移除了y+(校验块数目-y)行,即移除了校验块数目行。因此,本发明实施例中得到的编码矩阵,满足条件:该编码矩阵为第一数目行、数据块数目列,并且该编码矩阵的第1行至第数据块数目行的元素构成的子矩阵为单位矩阵,并在该该编码矩阵中移除校验块数目行后,剩余矩阵为可逆矩阵。
而根据前述纠删码的原理描述,n+m纠删码模式的编码矩阵需要满足条件:该编码矩阵为n+m行、n列,并且该编码矩阵的第1至第n行的元素构成的子矩阵为单位矩阵,并且在该编码矩阵中移除m行后,剩余矩阵为可逆矩阵。对照该条件可知,本发明实施例中得到的编码矩阵,满足该条件,可以作为数据块数目+校验块数目列纠删码模式的编码矩阵,而该纠删码模式即为待保护数据的纠删码模式。即利用本发明实施例得到的编码矩阵,能够对待保护数据通过指定的纠删码模式进行保护。
选用该实施例,可以针对不同的纠删码模式,只需要从预先生成的生成矩阵中抽取相应的编码子矩阵,再与对应尺度的单位矩阵集合,即可构建得到适合该纠删码模式的编码矩阵,可以有效降低生成编码矩阵所需要的计算量。
参见图2,图2所示为利用编码矩阵实现纠删码的一种流程示意图,可以包括:
S201,确定待保护数据的纠删码模式中所配置的数据块数目和校验块数目。
该步骤与S101相同,可以参见前述S201中的相关描述,在此不再赘述。
S202,在预设的生成矩阵中抽取校验块数目行、数据块数目列的元素,作为编码子矩阵。
该步骤与S102相同,可以参见前述S202中的相关描述,在此不再赘述。
S203,将编码子矩阵与数据块数目行的单位矩阵拼接,得到编码矩阵。
关于拼接的示例,可以参见S103中的相关描述,在此不再赘述。
S204,利用编码矩阵,对待保护数据进行编码,得到第一数目个数据块,作为待保护数据的编码数据。
可以参见前述关于纠删码的原理的描述,在此不再赘述。得到的编码数据中包括第一数目个数据块,即为待保护数据提供了校验块数目的冗余保护。但是在一些应用场景中,出于实际需求,可能需要对待保护数据的保护进行升级或降级。其中,升级是指增加为待保护数据提供的冗余,降级是指减少为待保护数据提供的冗余。
示例性的,假设待保护数据的纠删码模式为4+2纠删码模式,即待保护数据包括4个数据块,纠删码提供了2的冗余保护。根据实际需求,可以将待保护数据的纠删码模式升级为4+3纠删码模式,也可以是将待保护数据的纠删码模式降级为4+1纠删码模式。相关技术中,由于纠删码模式发生变化,需要重新构建编码矩阵,并根据重新构建的编码矩阵,对待保护数据重新编码,导致升级、降级需要的计算成本较高。
有鉴于此,在上述利用编码矩阵实现纠删码的方法的基础上,本发明实施例提供了一种纠删码升级方法和纠删码降级方法,其中,升级方法可以参加图3,图3所示为本发明实施例提供的纠删码升级方法的一种流程示意图,可以包括:
S301,当待保护数据的纠删码模式中所配置的校验块数目增加时,从生成矩阵中抽取增加数目个未被抽取的行中已经被抽取的数据块数目列的元素,作为新增子矩阵。
其中,新增数目为校验块数目所增加的数目。未被抽取的行,是指在得到编码子矩阵时从生成矩阵中抽取的校验数目行以外的其他行,已经被抽取的数据块数目列是指在得到编码子矩阵时从生成矩阵中抽取的数据块数目列。
示例性的,以4+2纠删码模式升级为4+3纠删码模式为例,新增数目为1。编码子矩阵为生成矩阵中抽取2行、4列的元素得到的,假设抽取的2行为生成矩阵中的第1行、第2行,抽取的4列为生成矩阵中的第1-4列,则可以是将生成矩阵中除第1行、第2行以外的其他任一行中第1-4列的元素所组成的子矩阵,作为新增子矩阵。
S302,利用新增子矩阵,对待保护数据进行编码,得到新增数目个数据块。
新增子矩阵为新增数目行、数据块数目列的矩阵,因此将新增子矩阵与待保护数据进行矩阵乘法后,得到的结果为新增数目行的矩阵,该矩阵中的每行可以视为一个数据块(可以参见前述纠删码原理的相关描述,在此不再赘述)。
S303,在编码数据中增加新增数目个数据块,作为新的编码数据。
S304,在编码矩阵中增加新增矩阵,作为新的编码矩阵。
图3所示仅为本在一种可能的流程图,在其他可能的实施例中,S304也可以是在S303之前执行的,还可以是与S303同时执行或交替执行,本实施例对此不做限制。
示例性的,以4+2纠删码模式升级为4+3纠删码模式为例,新的编码矩阵可以视为由4行4列的单位矩阵、2行4列的编码子矩阵,以及1行4列的新增矩阵构成的,由于新增矩阵也是从生成矩阵中抽取的,因此编码子矩阵和新增矩阵构成的子矩阵可以视为从生成矩阵中抽取的3行4列的子矩阵,同理于S103中的证明,4行4列的单位矩阵,与从生成矩阵中抽取的3行4列的子矩阵拼接得到的矩阵,可以作为4+3纠删码模式的编码矩阵,即新的编码矩阵可以作为4+3纠删码模式的编码矩阵。
而根据矩阵乘法的原理,新的编码矩阵与待保护数据进行矩阵乘法运算,得到的七个数据块中,有六个数据块与原先的编码矩阵与待保护数据进行矩阵乘法运算得到的六个数据块相同。剩下的一个数据块,等于新增矩阵与待保护数据进行矩阵乘法的乘积。因此,在编码数据中加入该新增数目个数据块后,得到的新的编码数据,等同于利用新的编码矩阵对待保护数据进行编码得到的编码数据。而选用该实施例,只需要计算新增矩阵与待保护数据进行矩阵乘法的结果,新增矩阵为新的编码矩阵的一部分,因此计算量小于利用新的编码矩阵对待保护数据进行编码。即选用该实施例,可以降低纠删码模式升级所需要的计算成本。
降级方法可以参加图4,图4所示为本发明实施例提供的纠删码降级方法的一种流程示意图,可以包括:
S401,当待保护数据的纠删码模式中所配置的校验块减少时,在编码数据中删除减少数目个数据块,得到新的编码数据。
其中,减少数目为校验块数目所减少的数目。示例性的,以4+2纠删码模式降级为4+1纠删码模式为例,则减少数目为1。4+2纠删码模式中,得到的编码数据包括6个数据块,其中4个数据块与待保护数据所包括的4个数据块相同,其他2的数据块为冗余的数据块,在一种可能的实施例中,可以是在2个冗余的数据块块中随机抽取一个数据块删除。
S402,在编码矩阵的编码子矩阵中删除与减少数目个数据块对应的行,得到新的编码矩阵。
其中,一个数据块对应的行是指,该数据块是该行与待保护数据进行矩阵乘法得到的结果。以下式为例:
其中,等式左边第一个矩阵为编码矩阵,第二个矩阵待保护数据,等式右边为编码数据,编码数据的第一行为编码数据的第一个数据块,第二行为第二个数据块,依次类推。则编码数据的第一个数据块,对应于编码矩阵中的第一行,第二个数据块对应于编码矩阵中的第二行,依次类推。假设S401中删除的为编码数据中的第四个数据块,则在该步骤中对应删除编码矩阵中的第四行。
以4+2纠删码模式降级为4+1纠删码模式为例,编码矩阵可以视为由4行4列的单位矩阵与2行4列的编码子矩阵构成的矩阵。在编码子矩阵中删除1行后,剩余的1行4列可以视为从生成矩阵中抽取的1行4列的子矩阵。同理于S103中的证明,4行4列的单位矩阵,与从生成矩阵中抽取的1行4列的子矩阵拼接得到的矩阵,可以作为4+1纠删码模式的编码矩阵,即新的编码矩阵可以作为4+1纠删码模式的编码矩阵。
而根据矩阵乘法的原理,新的编码矩阵与待保护数据进行矩阵乘法运算,得到的五个数据块,与原先的编码矩阵与待保护数据进行矩阵乘法运算得到的六个数据块中的五个数据块相同。原先的编码矩阵与待保护数据进行矩阵乘法运算得到的六个数据块中剩下的一个数据块,该数据块与编码子矩阵中被删除的行对应,因此在原先的编码矩阵与待保护数据进行矩阵乘法运算得到的六个数据块中删除该数据块后,得到的新的编码数据,等同于新的编码矩阵与待保护数据进行矩阵乘法运算的编码数据。而选用该实施例,只需要在编码数据中删除数据块即可得到新的编码数据,而无需利用新的编码矩阵重新对待保护数据进行编码。即选用该实施例,可以降低纠删码模式降级所需要的计算成本。
参见图5,图5所示为本发明实施例提供的纠删码的编码矩阵生成装置,所述装置包括:
模式确定模块501,用于确定待保护数据的纠删码模式中所配置的数据块数目和校验块数目;
子矩阵抽取模块502,用于在预设的生成矩阵中抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵,所述生成矩阵为第二数目行、第三数目列的可逆矩阵,所述第二数目大于所述校验块数目,所述第三数目大于所述数据块数目;
矩阵构建模块503,用于基于所述编码子矩阵,构建第一数目行、所述数据块数目列的编码矩阵,所述编码矩阵中第一至第所述数据块数目行的元素构成的子矩阵为单位矩阵,其他行的元素构成的子矩阵为所述编码子矩阵,所述第一数目为所述数据块数目和所述校验块数目之和。
在一种可能的实施例中,所述子矩阵抽取模块502,具体用于在预设的生成矩阵中随机抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵。
在一种可能的实施例中,所述装置还包括纠删码编码模块,用于在所述基于所述编码子矩阵,构建第一数目行、所述数据块数目列的编码矩阵之后,利用所述编码矩阵,对所述待保护数据进行编码,得到所述第一数目个数据块,作为所述待保护数据的编码数据。
在一种可能的实施例中,所述装置还包括纠删码升级模块,用于在所述利用所述编码矩阵,对所述带保护数据进行编码,得到编码数据之后,当所述待保护数据的纠删码模式中所配置的校验块数目增加时,从所述生成矩阵中抽取增加数目个未被抽取的行中已经被抽取的所述数据块数目列的元素,作为新增子矩阵,所述新增数目为所述校验块数目所增加的数目;
利用所述新增子矩阵,对所述待保护数据进行编码,得到所述新增数目个数据块;
在所述编码数据中增加所述新增数目个数据块,作为新的编码数据;
在所述编码矩阵中增加所述新增矩阵,作为新的编码矩阵。
在一种可能的实施例中,所述装置包括纠删码降级模块,用于在所述利用所述编码矩阵,对所述带保护数据进行编码,得到编码数据之后,当所述待保护数据的纠删码模式中所配置的校验块数目减少时,在所述编码数据中删除减少数目个数据块,得到新的编码数据,所述减少数目为所述校验块数目所减少的数目;
在所述编码矩阵的所述编码子矩阵中删除与所述减少数目个数据块对应的行,得到新的编码矩阵。
本发明实施例还提供了一种电子设备,如图6所示,包括:
存储器6 01用于存放计算机程序;
处理器602,用于执行存储器601上所存放的程序时,实现如下步骤:
确定待保护数据的纠删码模式中所配置的数据块数目和校验块数目;
在预设的生成矩阵中抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵,所述生成矩阵为第二数目行、第三数目列的可逆矩阵,所述第二数目大于所述校验块数目,所述第三数目大于所述数据块数目;
基于所述编码子矩阵,构建第一数目行、所述数据块数目列的编码矩阵,所述编码矩阵中第一至第所述数据块数目行的元素构成的子矩阵为单位矩阵,其他行的元素构成的子矩阵为所述编码子矩阵,所述第一数目为所述数据块数目和所述校验块数目之和。
在一种可能的实施例中,所述在预设的生成矩阵中抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵,包括:
在预设的生成矩阵中随机抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵。
在一种可能的实施例中,在所述基于所述编码子矩阵,构建第一数目行、所述数据块数目列的编码矩阵之后,所述方法包括:
利用所述编码矩阵,对所述待保护数据进行编码,得到所述第一数目个数据块,作为所述待保护数据的编码数据。
在一种可能的实施例中,在所述利用所述编码矩阵,对所述带保护数据进行编码,得到编码数据之后,所述方法还包括:
当所述待保护数据的纠删码模式中所配置的校验块数目增加时,从所述生成矩阵中抽取增加数目个未被抽取的行中已经被抽取的所述数据块数目列的元素,作为新增子矩阵,所述新增数目为所述校验块数目所增加的数目;
利用所述新增子矩阵,对所述待保护数据进行编码,得到所述新增数目个数据块;
在所述编码数据中增加所述新增数目个数据块,作为新的编码数据;
在所述编码矩阵中增加所述新增矩阵,作为新的编码矩阵。
在一种可能的实施例中,在所述利用所述编码矩阵,对所述带保护数据进行编码,得到编码数据之后,所述方法还包括:
当所述待保护数据的纠删码模式中所配置的校验块数目减少时,在所述编码数据中删除减少数目个数据块,得到新的编码数据,所述减少数目为所述校验块数目所减少的数目;
在所述编码矩阵的所述编码子矩阵中删除与所述减少数目个数据块对应的行,得到新的编码矩阵。
上述电子设备提到的存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一纠删码的编码矩阵生成方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一纠删码的编码矩阵生成方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种纠删码的编码矩阵生成方法,其特征在于,所述方法包括:
确定待保护数据的纠删码模式中所配置的数据块数目和校验块数目;
在预设的生成矩阵中抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵,所述生成矩阵为第二数目行、第三数目列的可逆矩阵,所述第二数目大于所述校验块数目,所述第三数目大于所述数据块数目;
基于所述编码子矩阵,构建第一数目行、所述数据块数目列的编码矩阵,所述编码矩阵中第一至第所述数据块数目行的元素构成的子矩阵为单位矩阵,其他行的元素构成的子矩阵为所述编码子矩阵,在所述编码矩阵中移除所述校验块数目行后,剩余矩阵为可逆矩阵,所述第一数目为所述数据块数目和所述校验块数目之和;
在所述基于所述编码子矩阵,构建第一数目行、所述数据块数目列的编码矩阵之后,所述方法还包括:
利用所述编码矩阵,对所述待保护数据进行编码,得到所述第一数目个数据块,作为所述待保护数据的编码数据;
在所述利用所述编码矩阵,对所述待保护数据进行编码,得到编码数据之后,所述方法还包括:
当所述待保护数据的纠删码模式中所配置的校验块数目增加时,从所述生成矩阵中抽取新增数目个未被抽取的行中已经被抽取的所述数据块数目列的元素,作为新增子矩阵,所述新增数目为所述校验块数目所增加的数目;
利用所述新增子矩阵,对所述待保护数据进行编码,得到所述新增数目个数据块;
在所述编码数据中增加所述新增数目个数据块,作为新的编码数据;
在所述编码矩阵中增加所述新增子矩阵,作为新的编码矩阵。
2.根据权利要求1所述的方法,其特征在于,所述在预设的生成矩阵中抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵,包括:
在预设的生成矩阵中随机抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵。
3.根据权利要求1所述的方法,其特征在于,在所述利用所述编码矩阵,对所述待保护数据进行编码,得到编码数据之后,所述方法还包括:
当所述待保护数据的纠删码模式中所配置的校验块数目减少时,在所述编码数据中删除减少数目个数据块,得到新的编码数据,所述减少数目为所述校验块数目所减少的数目;
在所述编码矩阵的所述编码子矩阵中删除与所述减少数目个数据块对应的行,得到新的编码矩阵。
4.一种纠删码的编码矩阵生成装置,其特征在于,所述装置包括:
模式确定模块,用于确定待保护数据的纠删码模式中所配置的数据块数目和校验块数目;
子矩阵抽取模块,用于在预设的生成矩阵中抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵,所述生成矩阵为第二数目行、第三数目列的可逆矩阵,所述第二数目大于所述校验块数目,所述第三数目大于所述数据块数目;
矩阵构建模块,用于基于所述编码子矩阵,构建第一数目行、所述数据块数目列的编码矩阵,所述编码矩阵中第一至第所述数据块数目行的元素构成的子矩阵为单位矩阵,其他行的元素构成的子矩阵为所述编码子矩阵,在所述编码矩阵中移除所述校验块数目行后,剩余矩阵为可逆矩阵,所述第一数目为所述数据块数目和所述校验块数目之和;
所述装置还包括纠删码编码模块,用于在所述基于所述编码子矩阵,构建第一数目行、所述数据块数目列的编码矩阵之后,利用所述编码矩阵,对所述待保护数据进行编码,得到所述第一数目个数据块,作为所述待保护数据的编码数据;
所述装置还包括纠删码升级模块,用于在所述利用所述编码矩阵,对所述待保护数据进行编码,得到编码数据之后,当所述待保护数据的纠删码模式中所配置的校验块数目增加时,从所述生成矩阵中抽取新增数目个未被抽取的行中已经被抽取的所述数据块数目列的元素,作为新增子矩阵,所述新增数目为所述校验块数目所增加的数目;
利用所述新增子矩阵,对所述待保护数据进行编码,得到所述新增数目个数据块;
在所述编码数据中增加所述新增数目个数据块,作为新的编码数据;
在所述编码矩阵中增加所述新增子矩阵,作为新的编码矩阵。
5.根据权利要求4所述的装置,其特征在于,所述子矩阵抽取模块,具体用于在预设的生成矩阵中随机抽取所述校验块数目行、所述数据块数目列的元素,作为编码子矩阵。
6.根据权利要求4所述的装置,其特征在于,所述装置包括纠删码降级模块,用于在所述利用所述编码矩阵,对所述待保护数据进行编码,得到编码数据之后,当所述待保护数据的纠删码模式中所配置的校验块数目减少时,在所述编码数据中删除减少数目个数据块,得到新的编码数据,所述减少数目为所述校验块数目所减少的数目;
在所述编码矩阵的所述编码子矩阵中删除与所述减少数目个数据块对应的行,得到新的编码矩阵。
7.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-3任一所述的方法步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-3任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910934050.XA CN111404554B (zh) | 2019-09-29 | 2019-09-29 | 一种纠删码的编码矩阵生成方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910934050.XA CN111404554B (zh) | 2019-09-29 | 2019-09-29 | 一种纠删码的编码矩阵生成方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111404554A CN111404554A (zh) | 2020-07-10 |
CN111404554B true CN111404554B (zh) | 2023-09-01 |
Family
ID=71430242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910934050.XA Active CN111404554B (zh) | 2019-09-29 | 2019-09-29 | 一种纠删码的编码矩阵生成方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111404554B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858142A (zh) * | 2020-07-24 | 2020-10-30 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据处理方法、装置及电子设备和存储介质 |
CN114879904B (zh) * | 2022-04-22 | 2024-05-03 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据存储纠删方法、装置、设备及可读存储介质 |
CN117349074A (zh) * | 2022-06-29 | 2024-01-05 | 中兴通讯股份有限公司 | Rs译码硬件实现方法、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681793A (zh) * | 2012-04-16 | 2012-09-19 | 华中科技大学 | 一种基于纠删码集群存储***的局部式数据更新方法 |
CN103152652A (zh) * | 2013-03-15 | 2013-06-12 | 浙江大学 | 一种基于柯西rs编码的视频帧数据网络传输方法 |
CN103546166A (zh) * | 2013-10-31 | 2014-01-29 | 中国科学院微电子研究所 | 一种喷泉码的校验矩阵构造方法、编解码方法及装置 |
CN106484559A (zh) * | 2016-10-17 | 2017-03-08 | 成都信息工程大学 | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 |
CN108197484A (zh) * | 2018-01-23 | 2018-06-22 | 中南民族大学 | 一种分布式存储环境下实现节点数据安全的方法 |
CN110262922A (zh) * | 2019-05-15 | 2019-09-20 | 中国科学院计算技术研究所 | 基于副本数据日志的纠删码更新方法及*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101455978B1 (ko) * | 2007-03-27 | 2014-11-04 | 엘지전자 주식회사 | Ldpc 부호를 이용한 부호화 방법 |
US8683296B2 (en) * | 2011-12-30 | 2014-03-25 | Streamscale, Inc. | Accelerated erasure coding system and method |
US10656996B2 (en) * | 2016-12-21 | 2020-05-19 | PhazrIO Inc. | Integrated security and data redundancy |
US10277253B2 (en) * | 2016-12-21 | 2019-04-30 | PhazrIO Inc. | High performance data redundancy and fault tolerance |
EP3364541B1 (en) * | 2016-12-24 | 2019-08-14 | Huawei Technologies Co., Ltd. | Storage controller, data processing chip, and data processing method |
-
2019
- 2019-09-29 CN CN201910934050.XA patent/CN111404554B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681793A (zh) * | 2012-04-16 | 2012-09-19 | 华中科技大学 | 一种基于纠删码集群存储***的局部式数据更新方法 |
CN103152652A (zh) * | 2013-03-15 | 2013-06-12 | 浙江大学 | 一种基于柯西rs编码的视频帧数据网络传输方法 |
CN103546166A (zh) * | 2013-10-31 | 2014-01-29 | 中国科学院微电子研究所 | 一种喷泉码的校验矩阵构造方法、编解码方法及装置 |
CN106484559A (zh) * | 2016-10-17 | 2017-03-08 | 成都信息工程大学 | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 |
CN108197484A (zh) * | 2018-01-23 | 2018-06-22 | 中南民族大学 | 一种分布式存储环境下实现节点数据安全的方法 |
CN110262922A (zh) * | 2019-05-15 | 2019-09-20 | 中国科学院计算技术研究所 | 基于副本数据日志的纠删码更新方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN111404554A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111404554B (zh) | 一种纠删码的编码矩阵生成方法、装置及电子设备 | |
US8775860B2 (en) | System and method for exact regeneration of a failed node in a distributed storage system | |
US20190347160A1 (en) | Erasure code-based partial write-in | |
CN111078662B (zh) | 一种区块链数据存储方法与装置 | |
CN105811996B (zh) | 一种基于准循环ldpc的数据处理方法及*** | |
US10754727B2 (en) | Method and apparatus for storing data and method and apparatus for recovering data | |
CN111858142A (zh) | 一种数据处理方法、装置及电子设备和存储介质 | |
CN106788468B (zh) | 一种纠删码更新方法及装置,电子设备 | |
JP2014510505A (ja) | 低密度パリティチェック符号を使用する符号化および復号技法 | |
CN114385409A (zh) | 基于纠删码的编码方法、分布式***、设备及存储介质 | |
CN104658609A (zh) | 用于存储器***的纠错码分布的方法和*** | |
CN114116321A (zh) | 一种冗余数据管理方法、装置、计算机设备和存储介质 | |
CN113468118A (zh) | 一种文件增量存储方法、装置、计算机设备及存储介质 | |
KR20210057787A (ko) | Turbo 곱 코드 디코딩 방법, 장치, 디코더 및 컴퓨터 기록 매체 | |
KR101923116B1 (ko) | 분산 저장 시스템에서 부분접속 복구 부호를 이용하는 부호화/복호화 장치 및 방법 | |
CN112565201B (zh) | 一种区块链中的私钥处理方法、装置及计算机存储介质 | |
CN111400670B (zh) | 一种水印添加方法、装置、设备及存储介质 | |
JP5809026B2 (ja) | デジタルデータのエンコード又はデコード方法、データ配布装置、およびデータ管理装置 | |
CN109800859B (zh) | 一种神经网络批归一化的优化方法及装置 | |
KR102193969B1 (ko) | 동적 데이터의 안전한 분산 데이터 관리를 위한 방법 및 시스템 | |
Hamidi et al. | A framework for ABFT techniques in the design of fault-tolerant computing systems | |
CN107615248B (zh) | 分布式数据存储方法、控制设备和*** | |
CN114333917B (zh) | 基于rdp纠删算法的数据纠错方法、装置、设备及介质 | |
CN115686926A (zh) | 硬件实现方法、终端及存储介质 | |
CN115421975A (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 |