CN111106840A - 一种纠删码解码加速的方法、系统、介质及计算机设备 - Google Patents
一种纠删码解码加速的方法、系统、介质及计算机设备 Download PDFInfo
- Publication number
- CN111106840A CN111106840A CN201811248866.9A CN201811248866A CN111106840A CN 111106840 A CN111106840 A CN 111106840A CN 201811248866 A CN201811248866 A CN 201811248866A CN 111106840 A CN111106840 A CN 111106840A
- Authority
- CN
- China
- Prior art keywords
- inverse matrix
- matrix
- erasure code
- decoding
- sub
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 239000011159 matrix material Substances 0.000 claims abstract description 300
- 230000001133 acceleration Effects 0.000 claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 6
- 239000000872 buffer Substances 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 229910002056 binary alloy Inorganic materials 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000013001 matrix buffer Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/154—Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种纠删码解码加速的方法、系统、介质及计算机设备,该方法包括:判断是否对纠删码解码进行加速;若判断进行加速,则在获取解码所需逆矩阵时,基于逆矩阵相应的子矩阵在已缓存逆矩阵信息中进行查找,若存在所需逆矩阵,则从已缓存逆矩阵信息中获取所需逆矩阵以进行解码,若不存在,则基于逆矩阵相应的子矩阵计算所需逆矩阵以进行解码,并缓存计算得到的所需逆矩阵信息,其中逆矩阵相应于纠删码的编码矩阵的子矩阵。本方法和系统节省计算逆矩阵所需的时间以及计算资源,提高了纠删码解码的效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种纠删码解码加速的方法、系统、介质及计算机设备。
背景技术
目前,在数据通信技术领域,常常采用各种编码技术,以实现数据的快速传输或数据的准确传输的目的。纠删码编码技术是数据通信中常用的一种编码技术。主要是通过纠删码编码算法将原始数据进行编码得到冗余数据,并将原始数据和冗余数据一并存储,以达到容错的目的。其基本思想是将d块原始数据元素(数据块)通过一定的计算,得到p块冗余元素(校验块)。其中,通过合理设计d和p的值,可以实现数据传输速度和准确率的折衷。对于这d+p块的元素,当其中任意的p块元素出错(可包括原始数据和冗余数据)时,均可以通过对应的解码算法恢复出原来的d块数据。
因此,纠删码的解码是数据通信中重要的数据处理过程。在进行纠删码的解码时,需要利用纠删码编码时的编码矩阵的子矩阵的逆矩阵。但是在利用上述逆矩阵时,需要先根据编码矩阵的子矩阵计算其逆矩阵。
矩阵求逆算法的时间复杂度为O(n^3),因此,每次解码运算都需要先求得相应子矩阵需要花费大量的时间,并占用大量的计算资源,从而造成了解码时间和计算资源的浪费。
因此,需要一种能够快速对纠删码进行解码的方法和系统。
发明内容
为了解决现有技术中纠删码解码较慢的问题,提出了一种纠删码解码加速的方法、系统、介质及计算机设备。
根据本申请的一个方面,提供了一种纠删码解码加速的方法,所述方法包括:
判断是否对所述纠删码解码进行加速;
若判断进行加速,则在获取解码所需逆矩阵时,基于所述逆矩阵相应的子矩阵在已缓存逆矩阵信息中进行查找,若存在所需逆矩阵,则从所述已缓存逆矩阵信息中获取所需逆矩阵以进行解码,若不存在,则基于所述逆矩阵相应的子矩阵计算所需逆矩阵以进行解码,并缓存计算得到的所需逆矩阵信息,其中所述逆矩阵相应于所述纠删码的编码矩阵的子矩阵。
其中,判断是否对所述纠删码解码进行加速包括:
获取所述纠删码中数据块的行数和冗余块的行数,并基于所述数据块的行数和所述冗余块的行数判断是否对所述纠删码解码进行加速。
其中,基于所述数据块的行数和所述冗余块的行数判断是否对所述纠删码解码进行加速包括:
若确定所述数据块的行数小于等于第一设定阈值且所述冗余块的行数小于等于第二设定阈值,则判断对所述纠删码解码进行加速。
其中,缓存计算得到的所需逆矩阵信息包括:
缓存所需逆矩阵以及表示该逆矩阵相应的子矩阵在所述编码矩阵中的位置的信息。
其中,从所述已缓存逆矩阵信息中获取所需逆矩阵包括:
获取所需逆矩阵相应的子矩阵在所述编码矩阵中的位置,基于所述位置在所述已缓存逆矩阵信息中进行查询,并获取所需逆矩阵。
根据本发明的另一个方面,提供了一种纠删码解码加速的系统,所述系统包括:
判断模块,用于判断是否对所述纠删码解码进行加速;
加速模块,若判断进行加速,则在获取解码所需逆矩阵时,基于所述逆矩阵相应的子矩阵在已缓存逆矩阵信息中进行查找,若存在所需逆矩阵,则从所述已缓存逆矩阵信息中获取所需逆矩阵以进行解码,若不存在,则基于所述逆矩阵相应的子矩阵计算所需逆矩阵以进行解码,并缓存计算得到的所需逆矩阵信息,其中所述逆矩阵相应于所述纠删码的编码矩阵的子矩阵。
其中,所述判断模块还用于:
获取所述纠删码中数据块的行数和冗余块的行数,并基于所述数据块的行数和所述冗余块的行数判断是否对所述纠删码解码进行加速。
其中,所述判断模块还用于通过下述方式判断是否对所述纠删码解码进行加速:
若确定所述数据块的行数小于等于第一设定阈值且所述冗余块的行数小于等于第二设定阈值,则判断对所述纠删码解码进行加速。
其中,所述加速模块还用于缓存计算得到的所需逆矩阵信息时,缓存所需逆矩阵以及表示该逆矩阵相应的子矩阵在所述编码矩阵中的位置的信息。
其中,所述加速模块还用于从所述已缓存逆矩阵信息中获取所需逆矩阵时,获取所需逆矩阵相应的子矩阵在所述编码矩阵中的位置,基于所述位置在所述已缓存逆矩阵信息中进行查询,并获取所需逆矩阵。
根据本发明的另一个方面,提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现上述方法的步骤。
根据本发明的另一个方面,提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
本申请中的纠删码解码加速的方法和系统,通过在满足缓存空间要求以及查询时间要求的情况下,对纠删码解码所需的逆矩阵进行缓存的方式,节省计算逆矩阵所需的时间以及计算资源,提高了纠删码解码的效率。在对逆矩阵进行缓存的情况下,为了快速地查询到已缓存的逆矩阵,采用key-value容器数据结构缓存逆矩阵,减少了获取逆矩阵的时间,提高了纠删码解码的效率。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请的纠删码解码加速的方法的流程图;
图2是根据本申请的纠删码解码加速的系统的模块图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
纠删码的解码是数据通信中重要的数据处理过程。在进行纠删码的解码时,需要利用纠删码编码时的编码矩阵的子矩阵的逆矩阵。但是在利用上述逆矩阵时,需要先根据编码矩阵的子矩阵计算其逆矩阵。
矩阵求逆算法的时间复杂度为O(n^3),因此,每次解码运算都需要先求得相应子矩阵需要花费大量的时间,并占用大量的计算资源,从而造成了解码时间和计算资源的浪费。
本申请提供的技术方案,在对纠删码解码时,利用合适的数据结构将计算出的编码矩阵的子矩阵的逆矩阵进行缓存,通过这种方式,对于一个子矩阵来说,只需要计算一次其逆矩阵,并将计算出的该逆矩阵进行缓存,这样,当后续的解码过程需要利用该逆矩阵时,仅需要从缓存中查询出该逆矩阵即可,节省了再次计算逆矩阵的时间。采用这种在数据结构中缓存逆矩阵并在需要时查询获取的方式,提高了纠删码解码的效率。
本申请提供了一种纠删码解码加速的方法,所述方法包括:
步骤101,判断是否对纠删码解码进行加速;
步骤102,若判断进行加速,则在获取解码所需逆矩阵时,基于逆矩阵相应的子矩阵在已缓存逆矩阵信息中进行查找,若存在所需逆矩阵,则从所述已缓存逆矩阵信息中获取所需逆矩阵以进行解码,若不存在,则基于所述逆矩阵相应的子矩阵计算所需逆矩阵以进行解码,并缓存计算得到的所需逆矩阵信息,其中逆矩阵相应于所述纠删码的编码矩阵的子矩阵。
如本领域技术人员所熟知的,在利用纠删码编码原理对待传输数据进行编码时,需要将编码矩阵与数据块相乘得到冗余块,在对纠删码进行解码时,则需要通过编码矩阵的逆矩阵来进行解码,实际中,通过编码矩阵的子矩阵的逆矩阵来进行解码。这样,当对接收的纠删码数据进行解码时,如果对于所需的逆矩阵,每次都通过其对应的子矩阵进行计算得到,则会消耗大量的时间和运行资源。
因此,本申请在判断对纠删码进行加速时,解码时需要编码矩阵的子矩阵的逆矩阵时,会先从缓存的逆矩阵的存储结构中进行查询,如该存储结构中有相应的逆矩阵,则从存储结构中直接取出该逆矩阵进行解码;如没有相应的逆矩阵,则通过矩阵求逆运算得到该逆矩阵进行解码,同时将计算得到的该逆矩阵缓存到存储结构中,以便后续需要该逆矩阵时可以直接从存储结构中查询得到,而不需要重复计算该逆矩阵,从而节省计算逆矩阵的时间和运行资源。
上述步骤101中,判断是否对所述纠删码解码进行加速包括:获取纠删码中数据块的行数和冗余块的行数,并基于数据块的行数和冗余块的行数判断是否对所述纠删码解码进行加速。
对于纠删码来说,数据块(data shards)与冗余块(parity shards)的总和小于等于255,这是为了保证MDS(maximum distance separable)性质。在实践中,这个数字会更小,以便取得修复开销和冗余成本的平衡。因此,根据数据块和冗余块的大小,可以计算出在该纠删码解码过程中的所有可能出现的逆矩阵的个数,这为控制逆矩阵缓存的规模提供了依据。当逆矩阵的个数太大时,缓存这些逆矩阵需要的内存空间就会非常大,并且解码时查询所需逆矩阵所需要的时间也会非常多,在这种情况下就不适宜采用这种对逆矩阵进行缓存的方法对解码过程进行加速。
具体地,基于数据块的行数和冗余块的行数判断是否对纠删码解码进行加速包括:若确定数据块的行数小于等于第一设定阈值且冗余块的行数小于等于第二设定阈值,则判断对纠删码解码进行加速。
计算组合数的值,即求可能的逆矩阵个数,其中d表示数据块的大小,p表示冗余块的大小,这里数据块和冗余块的大小分别表示数据块的行数和冗余块的行数。如d=16,p=16时,计算得到组合数则缓存所有逆矩阵至少需要的内存空间为16*16*601080390Byte=143GB,其中,16*16表示一个逆矩阵包括的数据元素个数,这种情况下的内存开销非常大,并且查询也会消耗大量的时间。
因此,在判断是否对纠删码解码过程进行加速时,根据计算的组合数的结果并参考可用缓存大小的实际情况,来进行判断。为了控制缓存的数据量,可以对数据块和冗余块的大小进行一定的限定,如数据块行数小于等于第一设定阈值且冗余块行数小于等于第二设定阈值时,对逆矩阵进行缓存,即进行加速。例如,上述第一设定阈值可以设置为18,第二设定阈值可以设置为4。若上述的阈值条件有任一个不满足,则不缓存逆矩阵。
另外,使用并发安全的key-value容器数据结构(通过利用散列表,hashtable)来作为逆矩阵缓存的数据结构。这是因为key-value容器可以,通过散列表根据键(key)值直接访问内存中存储位置,从而可以加快后续的查询速度。并且,使用锁结构来避免并发情况下同时修改同一内存地址导致数据错误的可能性。key-value容器和锁结构是本领域技术人员熟知的技术内容,因此在此不再赘述。
需要说明的是,数据块加冗余块的行数需要小于64,因为逆矩阵缓存到key-value容器时的key的数据类型为uint64结构。
在上述步骤102中,缓存计算得到的所需逆矩阵信息包括:缓存所需逆矩阵以及表示该逆矩阵相应的子矩阵在所述编码矩阵中的位置的信息。
这里,在缓存逆矩阵时,同时缓存逆矩阵相应的子矩阵在编码矩阵中的位置的信息,是为了当需要某个子矩阵的逆矩阵进行解码时,能快速通过一子矩阵的位置信息查询到该子矩阵的逆矩阵。
如上所述,在本申请中,可以使用key-value容器作为逆矩阵缓存的数据结构。这是因为容器可以保存关键字-值(key-value)的数据对,关键字起到索引的作用,值则表示索引相关联的数据。这样就可以将子矩阵在编码矩阵中的位置的信息保存在关键字中,将逆矩阵保存在与该关键字相应的值中。
另外,在上述步骤102中,从所述已缓存逆矩阵信息中获取所需逆矩阵包括:获取所需逆矩阵相应的子矩阵在所述编码矩阵中的位置,基于所述位置在所述已缓存逆矩阵信息中进行查询,并获取所需逆矩阵。
具体地,通过保存在key-value容器数据结构中的关键字(即,表示子矩阵在所述编码矩阵中的位置的关键字),查找到该关键字相对应的值,该相对应的值即为逆矩阵。
如果在缓存逆矩阵的数据结构中,没有查询到表示一子矩阵在所述编码矩阵中的位置的关键字,则表明该逆矩阵未被缓存过,则需要通过矩阵求逆运算来计算该子矩阵的逆矩阵。
下面说明如何将一子矩阵在所述编码矩阵中的位置表示为关键字的具体例子,实际操作中,只要能将子矩阵在编码矩阵中的位置表示为关键字即可,而不限于下述的具体例子。即,只要将一子矩阵在编码矩阵中的位置与一关键字一一对应,以便解码时能够尽快检索到相应的逆矩阵即可。需要说明的是,下面例子中的方法适用于将编码矩阵在行上分割得到子矩阵的情况。
假设一子矩阵在编码矩阵中所占据的行为第0行、第1行、第2行,则表示第0行的值为二进制数1,表示第1行的值为二进制数10,表示第2行的值为二进制数100,那么表示该子矩阵在编码矩阵中的位置的关键字为:二进制数001+010+100所对应的十进制数,即为7。
假设一子矩阵在编码矩阵中所占据的行为第3行、第4行、第5行,则表示第3行的值为二进制数1000,表示第4行的值为二进制数10000,表示第5行的值为二进制数100000,那么表示该子矩阵在编码矩阵中的位置的关键字为:二进制数1000+10000+100000所对应的十进制数,即为56。
通过上述表示子矩阵在所述编码矩阵中的位置的方式,可以唯一地表示出一子矩阵在编码矩阵中的位置。若子矩阵中有一行在编码矩阵中占据的行数为第n行,则将二进制数1向左位移n位得到该行对应的二进制,将子矩阵中各行对应的二进制数相加并求出该二进制和对应的十进制数,该十进制数即为与该子矩阵在编码矩阵中的位置对应的关键字。其中,第0行对应的二进制数为1。上面的例子是以编码矩阵的第一行是从第0行开始计数为例的,如果编码矩阵的第一行从第1行开始计数,则需要做相应的变化。
需要说明的是,当纠删码的数据块或冗余块的大小发生变化时,则需要重新对是否加速进行判断以及判断为加速时重新缓存逆矩阵。即,缓存的逆矩阵只适用于某一特定数据块大小和冗余块大小的纠删码。
下面详细描述根据本申请的具体实施例,其包括下面的步骤:
步骤一,获取纠删码中数据块的行数和冗余块的行数,确定是否同时满足数据块的行数小于等于第一设定阈值且冗余块的行数小于等于第二设定阈值。
步骤二,确定同时满足上述条件,则判断对纠删码解码进行加速。
步骤三,基于逆矩阵相应的子矩阵在所述编码矩阵中的位置的信息,在缓存逆矩阵信息的key-value容器数据结构中进行查找,若找到对应的key,则将该key所对应的value值中的逆矩阵取出,进行解码;若没有找到对应的key,则表明所查找的逆矩阵未被缓存,则计算该逆矩阵,并进行解码。
步骤四,将计算出的上述逆矩阵以及表示该逆矩阵对应的子矩阵在编码矩阵中位置的key一同缓存在key-value容器数据结构中。
本申请还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现上述方法的步骤。
本申请还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
本申请还提供了一种纠删码解码加速的系统,所述系统包括:
判断模块201,用于判断是否对所述纠删码解码进行加速;
加速模块202,若判断进行加速,则在获取解码所需逆矩阵时,基于所述逆矩阵相应的子矩阵在已缓存逆矩阵信息中进行查找,若存在所需逆矩阵,则从所述已缓存逆矩阵信息中获取所需逆矩阵以进行解码,若不存在,则基于所述逆矩阵相应的子矩阵计算所需逆矩阵以进行解码,并缓存计算得到的所需逆矩阵信息,其中所述逆矩阵相应于所述纠删码的编码矩阵的子矩阵。
所述判断模块201还用于:获取所述纠删码中数据块的行数和冗余块的行数,并基于所述数据块的行数和所述冗余块的行数判断是否对所述纠删码解码进行加速。
所述判断模块201还用于通过下述方式判断是否对所述纠删码解码进行加速:
若确定所述数据块的行数小于等于第一设定阈值且所述冗余块的行数小于等于第二设定阈值,则判断对所述纠删码解码进行加速。
所述加速模块202还用于缓存计算得到的所需逆矩阵信息时,缓存所需逆矩阵以及表示该逆矩阵相应的子矩阵在所述编码矩阵中的位置的信息。
所述加速模块202还用于从所述已缓存逆矩阵信息中获取所需逆矩阵时,获取所需逆矩阵相应的子矩阵在所述编码矩阵中的位置,基于所述位置在所述已缓存逆矩阵信息中进行查询,并获取所需逆矩阵。
本申请中的纠删码解码加速的方法和系统,通过在满足缓存空间要求以及查询时间要求的情况下,对纠删码解码所需的逆矩阵进行缓存的方式,节省计算逆矩阵所需的时间以及计算资源,提高了纠删码解码的效率。在对逆矩阵进行缓存的情况下,为了快速地查询到已缓存的逆矩阵,采用key-value容器数据结构缓存逆矩阵,减少了获取逆矩阵的时间,提高了纠删码解码的效率。
上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本申请的保护范围之内。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
以上实施例仅用以说明本申请的技术方案而非限制,仅仅参照较佳实施例对本申请进行了详细说明。本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或者等同替换,而不脱离本申请技术方案的精神和范围,均应涵盖在本申请的权利要求范围当中。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (12)
1.一种纠删码解码加速的方法,其特征在于,所述方法包括:
判断是否对所述纠删码解码进行加速;
若判断进行加速,则在获取解码所需逆矩阵时,基于所述逆矩阵相应的子矩阵在已缓存逆矩阵信息中进行查找,若存在所需逆矩阵,则从所述已缓存逆矩阵信息中获取所需逆矩阵以进行解码,若不存在,则基于所述逆矩阵相应的子矩阵计算所需逆矩阵以进行解码,并缓存计算得到的所需逆矩阵信息,其中所述逆矩阵相应于所述纠删码的编码矩阵的子矩阵。
2.如权利要求1所述的方法,其特征在于,判断是否对所述纠删码解码进行加速包括:
获取所述纠删码中数据块的行数和冗余块的行数,并基于所述数据块的行数和所述冗余块的行数判断是否对所述纠删码解码进行加速。
3.如权利要求2所述的方法,其特征在于,基于所述数据块的行数和所述冗余块的行数判断是否对所述纠删码解码进行加速包括:
若确定所述数据块的行数小于等于第一设定阈值且所述冗余块的行数小于等于第二设定阈值,则判断对所述纠删码解码进行加速。
4.如权利要求1所述的方法,其特征在于,缓存计算得到的所需逆矩阵信息包括:
缓存所需逆矩阵以及表示该逆矩阵相应的子矩阵在所述编码矩阵中的位置的信息。
5.如权利要求4所述的方法,其特征在于,从所述已缓存逆矩阵信息中获取所需逆矩阵包括:
获取所需逆矩阵相应的子矩阵在所述编码矩阵中的位置,基于所述位置在所述已缓存逆矩阵信息中进行查询,并获取所需逆矩阵。
6.一种纠删码解码加速的系统,其特征在于,所述系统包括:
判断模块,用于判断是否对所述纠删码解码进行加速;
加速模块,若判断进行加速,则在获取解码所需逆矩阵时,基于所述逆矩阵相应的子矩阵在已缓存逆矩阵信息中进行查找,若存在所需逆矩阵,则从所述已缓存逆矩阵信息中获取所需逆矩阵以进行解码,若不存在,则基于所述逆矩阵相应的子矩阵计算所需逆矩阵以进行解码,并缓存计算得到的所需逆矩阵信息,其中所述逆矩阵相应于所述纠删码的编码矩阵的子矩阵。
7.如权利要求6所述系统,其特征在于,所述判断模块还用于:
获取所述纠删码中数据块的行数和冗余块的行数,并基于所述数据块的行数和所述冗余块的行数判断是否对所述纠删码解码进行加速。
8.如权利要求7所述系统,其特征在于,所述判断模块还用于通过下述方式判断是否对所述纠删码解码进行加速:
若确定所述数据块的行数小于等于第一设定阈值且所述冗余块的行数小于等于第二设定阈值,则判断对所述纠删码解码进行加速。
9.如权利要求6所述系统,其特征在于,所述加速模块还用于缓存计算得到的所需逆矩阵信息时,缓存所需逆矩阵以及表示该逆矩阵相应的子矩阵在所述编码矩阵中的位置的信息。
10.如权利要求9所述系统,其特征在于,所述加速模块还用于从所述已缓存逆矩阵信息中获取所需逆矩阵时,获取所需逆矩阵相应的子矩阵在所述编码矩阵中的位置,基于所述位置在所述已缓存逆矩阵信息中进行查询,并获取所需逆矩阵。
11.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现权利要求1至5中任意一项所述方法的步骤。
12.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至5中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811248866.9A CN111106840A (zh) | 2018-10-25 | 2018-10-25 | 一种纠删码解码加速的方法、系统、介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811248866.9A CN111106840A (zh) | 2018-10-25 | 2018-10-25 | 一种纠删码解码加速的方法、系统、介质及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111106840A true CN111106840A (zh) | 2020-05-05 |
Family
ID=70418299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811248866.9A Pending CN111106840A (zh) | 2018-10-25 | 2018-10-25 | 一种纠删码解码加速的方法、系统、介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111106840A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858169A (zh) * | 2020-07-10 | 2020-10-30 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据恢复方法、系统及相关组件 |
CN112000509A (zh) * | 2020-08-18 | 2020-11-27 | 中山大学 | 一种基于向量指令的纠删码编码方法、系统及装置 |
CN112181707A (zh) * | 2020-08-21 | 2021-01-05 | 山东云海国创云计算装备产业创新中心有限公司 | 分布式存储数据恢复调度方法、系统、设备及存储介质 |
CN112612409A (zh) * | 2020-12-01 | 2021-04-06 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统纠删矩阵缓存的老化方法及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7472334B1 (en) * | 2003-10-15 | 2008-12-30 | Scott Thomas P | Efficient method for the reconstruction of digital information |
CN104991740A (zh) * | 2015-06-24 | 2015-10-21 | 华中科技大学 | 一种加速纠删码编解码过程的通用矩阵优化方法 |
CN105677508A (zh) * | 2015-12-16 | 2016-06-15 | 浪潮(北京)电子信息产业有限公司 | 一种云存储中纠删码数据的修改方法及系统 |
US20170286212A1 (en) * | 2011-09-06 | 2017-10-05 | International Business Machines Corporation | Decoding data streams in a distributed storage network |
US20180018235A1 (en) * | 2016-07-15 | 2018-01-18 | Quantum Corporation | Joint de-duplication-erasure coded distributed storage |
CN107707600A (zh) * | 2017-05-26 | 2018-02-16 | 贵州白山云科技有限公司 | 一种数据存储方法及装置 |
-
2018
- 2018-10-25 CN CN201811248866.9A patent/CN111106840A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7472334B1 (en) * | 2003-10-15 | 2008-12-30 | Scott Thomas P | Efficient method for the reconstruction of digital information |
US20170286212A1 (en) * | 2011-09-06 | 2017-10-05 | International Business Machines Corporation | Decoding data streams in a distributed storage network |
CN104991740A (zh) * | 2015-06-24 | 2015-10-21 | 华中科技大学 | 一种加速纠删码编解码过程的通用矩阵优化方法 |
CN105677508A (zh) * | 2015-12-16 | 2016-06-15 | 浪潮(北京)电子信息产业有限公司 | 一种云存储中纠删码数据的修改方法及系统 |
US20180018235A1 (en) * | 2016-07-15 | 2018-01-18 | Quantum Corporation | Joint de-duplication-erasure coded distributed storage |
CN107707600A (zh) * | 2017-05-26 | 2018-02-16 | 贵州白山云科技有限公司 | 一种数据存储方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858169A (zh) * | 2020-07-10 | 2020-10-30 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据恢复方法、系统及相关组件 |
CN111858169B (zh) * | 2020-07-10 | 2023-07-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据恢复方法、系统及相关组件 |
CN112000509A (zh) * | 2020-08-18 | 2020-11-27 | 中山大学 | 一种基于向量指令的纠删码编码方法、系统及装置 |
CN112181707A (zh) * | 2020-08-21 | 2021-01-05 | 山东云海国创云计算装备产业创新中心有限公司 | 分布式存储数据恢复调度方法、系统、设备及存储介质 |
CN112612409A (zh) * | 2020-12-01 | 2021-04-06 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统纠删矩阵缓存的老化方法及设备 |
CN112612409B (zh) * | 2020-12-01 | 2022-11-11 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统纠删矩阵缓存的老化方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111106840A (zh) | 一种纠删码解码加速的方法、系统、介质及计算机设备 | |
WO2017193716A1 (zh) | 一种极化码的编码和速率匹配方法、装置及设备 | |
US10411735B1 (en) | Systems and methods for an iterative decoding scheme | |
CN109474346B (zh) | 一种光信号生成方法、装置、电子设备及存储介质 | |
RU2369008C2 (ru) | Устройство и способ кодирования-декодирования блочного кода проверки на четность с низкой плотностью с переменной длиной блока | |
RU2580797C1 (ru) | Способ мягкого декодирования блоковых кодов | |
CN111625534A (zh) | 用于哈希运算的数据结构及基于该结构的哈希表存储、查询方法 | |
JP2020046871A (ja) | メモリシステム | |
KR101631128B1 (ko) | 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더 | |
CN114499743A (zh) | 通信数据的处理方法、装置、设备及存储介质 | |
CN111384972B (zh) | 多进制ldpc解码算法的优化方法、装置及解码器 | |
JP2022124682A (ja) | メモリシステム | |
KR20160116980A (ko) | Ldpc 복호기의 vss 알고리즘을 위한 h 행렬의 스케줄링 장치 및 그 방법 | |
US10862512B2 (en) | Data driven ICAD graph generation | |
CN114513285B (zh) | 传输数据检测与校正的方法、装置、设备及可读存储介质 | |
CN111224674B (zh) | 多进制ldpc码的解码方法、装置及解码器 | |
CN113131947B (zh) | 译码方法、译码器和译码装置 | |
CN111431541B (zh) | 一种获得crc码的方法及装置 | |
CN111384976B (zh) | 稀疏校验矩阵的存储方法和读取方法 | |
US8402340B2 (en) | Parity-check-code decoder and recording controller | |
CN110796238B (zh) | 基于arm架构fpga硬件系统的卷积神经网络权重压缩方法及其装置 | |
KR20220114724A (ko) | 극 부호 연속 제거 비트 반전 복호 장치 및 방법 | |
CN112445800A (zh) | 一种数据流水号的生成方法、系统及电子设备 | |
CN111030709A (zh) | 基于bch译码器的译码方法、bch译码器及应用其的电路 | |
WO2023015881A1 (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200505 |