存储数据的方法、装置、设备和计算机可读存储介质制造方法及图纸

技术编号:24408828 阅读:16 留言:0更新日期:2020-06-06 08:16
本申请提供一种存储数据的方法、装置、设备和计算机可读存储介质,方法包括:将数据划分为X个数据分片,X个数据分片构成包括m行和n列的阵列,每行包括至少一个并且至多n个数据分片,每列包括至少一个并且至多m个数据分片,其中X、m、n均为大于或等于2的正整数;用纠错码的编码算法对每行中至少一个数据分片进行编码得到至少一个行校验分片,共得到M个行校验分片,并用纠错码的编码算法对每列中至少一个数据分片进行编码得到至少一个列校验分片,共得到N个列校验分片,其中M≥m,N≥n;存储X个数据分片、M个行校验分片和N个列校验分片。根据本申请的方案,数据存储更加安全,存储效率得到提高。

Methods, devices, devices and computer-readable storage media for storing data

【技术实现步骤摘要】
存储数据的方法、装置、设备和计算机可读存储介质
本专利技术涉及信息
,特别涉及一种存储数据的方法、装置、设备和计算机可读存储介质。
技术介绍
在数据存储使用的纠错编码算法一般都沿用通信领域的纠错编码算法,只关注了编码的容错纠错能力,但并没有很好地满足数据重建时的性能需求,在数据重建时一般都需要读取所有未损坏的数据分片和足够多的校验分片来恢复损坏的数据分片,导致数据重建的性能比较低下,重建时对网络带宽的损耗也比较大。
技术实现思路
有鉴于此,本专利技术实施例致力于提供一种存储数据的方法、装置、设备和计算机可读存储介质,能够在绝大部分情况下可以只读取极少数量的数据分片就可以恢复损坏的数据分片。本专利技术一方面提供一种存储数据的方法,包括:将数据划分为X个数据分片,X个数据分片构成包括m行和n列的阵列,每行包括至少一个并且至多n个数据分片,每列包括至少一个并且至多m个数据分片,其中X、m、n均为大于或等于2的正整数;用纠错码的编码算法对每行中至少一个数据分片进行编码得到至少一个行校验分片,共得到M个行校验分片,并用纠错码的编码算法对每列中至少一个数据分片进行编码得到至少一个列校验分片,共得到N个列校验分片,其中M≥m,N≥n;存储X个数据分片、M个行校验分片和N个列校验分片。在本申请的一个特别实施例中,所述方法还包括:当X个数据分片中有至少一个数据分片的数据损坏时,通过读取损坏数据分片所在行中的未损坏数据分片和行校验分片并采用该行的纠错码的译码算法来恢复损坏数据分片;或者,通过读取损坏数据分片所在列中的未损坏数据分片和列校验分片并采用该列的纠错码的译码算法来恢复损坏数据分片。在本申请的一个特别实施例中,所述存储X个数据分片、M个行校验分片和N个列校验分片,包括:将X个数据分片、M个行校验分片和N个列校验分片分别存储在不同的网络节点中。在本申请的一个特别实施例中,纠错码包括戈雷Golay码、里德-所罗门RS码、里德-穆勒RM码、博斯-乔赫里-霍克文黑姆BCH码、低密度奇偶校验LDPC码、卷积码、和涡轮Turbo码中的至少一种。在本申请的一个特别实施例中,里德-所罗门RS码在有限域GF(256)中生成。在本申请的一个特别实施例中,所述方法还包括:对X个数据分片中每个数据分片求哈希值;存储哈希值。在本申请的一个特别实施例中,所述方法还包括:用纠错码的编码算法对X个数据分片进行编码得到x个全局校验分片;存储x个全局校验分片。在本申请的一个特别实施例中,所述方法还包括:用纠错码的编码算法对x个全局校验分片进行编码得到全局校验码的至少一个局部校验分片;存储至少一个局部校验分片。在本申请的一个特别实施例中,所述方法还包括:对M个行校验分片和/或对N个列校验分片进行计算得到y个全局校验分片。在本申请的一个特别实施例中,用纠错码的编码算法对每行中至少一个数据分片进行编码得到至少一个行校验分片,共得到M个行校验分片,并用纠错码的编码算法对每列中至少一个数据分片进行编码得到至少一个列校验分片,共得到N个列校验分片,其中M≥m,N≥n,包括:纠错码的编码算法是基于编码矩阵计算编码结果,分别采用至少一个全局校验码的编码矩阵的不同片段来计算行校验分片和列校验分片。编码时使用的片段合计覆盖一个完整的编码矩阵的多个行/列校验码,经过计算后就可以得到所述编码矩阵对应的全局校验码。例如,编码算法是一个有限域上的多项式,每一个全局校验码都是用一个mxn的编码矩阵计算出来的,用一个全局校验码的编码矩阵的每一行构成一个1xn的编码矩阵来计算行校验编码,则将这些行校验编码用有限域加法即可计算出该全局校验码。同理,用另一个编码矩阵来每一列构成一个mx1的编码矩阵来计算列校验编码,将这些列校验编码用有限域加法即可计算出另一个全局校验码。在本申请的一个特别实施例中,所述方法还包括:当X个数据分片中有至少一个数据分片的数据损坏时,通过读取未损坏的数据分片和至少一个全局校验分片并采用计算全局校验分片时所采用的纠错码的译码算法来恢复损坏的至少一个数据分片。在另一方面,本申请提供一种存储数据的装置,包括:划分模块,用于将数据划分为X个数据分片,X个数据分片构成包括m行和n列的阵列,每行包括至少一个并且至多n个数据分片,每列包括至少一个并且至多m个数据分片,其中X、m、n均为大于或等于2的正整数;编码模块,用于用纠错码的编码算法对每行中至少一个数据分片进行编码得到至少一个行校验分片,共得到M个行校验分片,并用纠错码的编码算法对每列中至少一个数据分片进行编码得到至少一个列校验分片,共得到N个列校验分片,其中M≥m,N≥n;存储模块,用于存储X个数据分片、M个行校验分片和N个列校验分片。在另一方面,本申请提供一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序用于执行上述存储数据的方法。在另一方面,本申请提供一种数据存储设备,数据存储设备包括:处理器;用于存储处理器可执行指令的存储器;处理器,用于执行上述存储数据的方法。根据本申请的数据存储方法通过生成行和列两个维度上的校验分片,可以对数据分片进行多个维度上的读取和恢复,既提高了可以恢复的数据分片的数量,又降低了需要读取的数据分片的数量,从而提高了存储效率。附图说明图1所示为根据本申请一实施例的存储数据的方法的流程图;图2所示为根据本申请一实施例的数据分片阵列;图3所示为根据本申请一实施例的全局校验分片;图4所示为根据本申请一实施例的存储数据的装置的示意性结构框图;图5所示为根据本申请一实施例的数据存储装置的示意性结构框图。具体实施方式为了使本领域技术人员更加清楚地理解本专利技术的概念和思想,以下结合具体实施例详细描述本专利技术。应理解,本文给出的实施例都只是本专利技术可能具有的所有实施例的一部分。本领域技术人员在阅读本申请的说明书以后,有能力对下述实施例的部分或整体作出改进、改造、或替换,这些改进、改造、或替换也都包含在本专利技术要求保护的范围内。在本文中,术语“第一”、“第二”和其它类似词语并不意在暗示任何顺序、数量和重要性,而是仅仅用于对不同的元件进行区分。在本文中,术语“一”、“一个”和其它类似词语并不意在表示只存在一个所述事物,而是表示有关描述仅仅针对所述事物中的一个,所述事物可能具有一个或多个。在本文中,术语“包含”、“包括”和其它类似词语意在表示逻辑上的相互关系,而不能视作表示空间结构上的关系。例如,“A包括B”意在表示在逻辑上B属于A,而不表示在空间上B位于A的内部。另外,术语“包含”、“包括”和其它类似词语的含义应视为开放性的,而非封闭性的。例如,“A包括B”意在表示B属于A,但是B不一定构成A的全部,A还可能包括C、D、E等其它元素。在本文中,术语“实施例”、“本实施例”、“一实施例”、“一个实施例”并不表示有关描述仅仅适用于一个特定的实施例,而是表示这些描述还可能适用于另外一个或多个实施例中。本领域技术人员应理解,在本文中,任何本文档来自技高网...

【技术保护点】
1.一种存储数据的方法,其特征在于,包括:/n将所述数据划分为X个数据分片,所述X个数据分片构成包括m行和n列的阵列,每行包括至少一个并且至多n个数据分片,每列包括至少一个并且至多m个数据分片,其中X、m、n均为大于或等于2的正整数;/n用纠错码的编码算法对所述每行中至少一个数据分片进行编码得到至少一个行校验分片,共得到M个行校验分片,并用纠错码的编码算法对所述每列中至少一个数据分片进行编码得到至少一个列校验分片,共得到N个列校验分片,其中M≥m,N≥n;/n存储所述X个数据分片、所述M个行校验分片和所述N个列校验分片。/n

【技术特征摘要】
1.一种存储数据的方法,其特征在于,包括:
将所述数据划分为X个数据分片,所述X个数据分片构成包括m行和n列的阵列,每行包括至少一个并且至多n个数据分片,每列包括至少一个并且至多m个数据分片,其中X、m、n均为大于或等于2的正整数;
用纠错码的编码算法对所述每行中至少一个数据分片进行编码得到至少一个行校验分片,共得到M个行校验分片,并用纠错码的编码算法对所述每列中至少一个数据分片进行编码得到至少一个列校验分片,共得到N个列校验分片,其中M≥m,N≥n;
存储所述X个数据分片、所述M个行校验分片和所述N个列校验分片。


2.根据权利要求1所述的方法,还包括:
当所述X个数据分片中有至少一个数据分片的数据损坏时,通过读取损坏数据分片所在行中的未损坏数据分片和行校验分片并采用该行的纠错码的译码算法来恢复所述损坏数据分片;或者,
通过读取损坏数据分片所在列中的未损坏数据分片和列校验分片并采用该列的纠错码的译码算法来恢复所述损坏数据分片。


3.根据权利要求1所述的方法,其中,所述存储所述X个数据分片、所述M个行校验分片和所述N个列校验分片,包括:
将所述X个数据分片、所述M个行校验分片和所述N个列校验分片分别存储在不同的网络节点中。


4.根据权利要求1所述的方法,其中,所述纠错码包括戈雷Golay码、里德-所罗门RS码、里德-穆勒RM码、博斯-乔赫里-霍克文黑姆BCH码、低密度奇偶校验LDPC码、卷积码、和涡轮Turbo码中的至少一种。


5.根据权利要求4所述的方法,其中,所述里德-所罗门RS码在有限域GF(256)中生成。


6.根据权利要求1至5中任一项所述的方法,还包括:
对所述X个数据分片中每个数据分片求哈希值;
存储所述哈希值。


7.根据权利要求1所述的方法,还包括:
用纠错码的编码算法对所述X个数据分片进行编码得到x个全局校验分片;
存储所述x个全局校验分片。


8.根据权利要求7所述的方法,还包括:
用纠错码的编码算法对所述x个全局校验分片进行编码得到全局校验码的...

【专利技术属性】
技术研发人员:王东临
申请(专利权)人:书生星际北京科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1