首页 / 专利库 / 泵和压缩机 / 轴向柱塞泵 / 斜盘 / 具有最优更新代价的编码及解码方法

具有最优更新代价的编码及解码方法

阅读:1010发布:2021-01-13

专利汇可以提供具有最优更新代价的编码及解码方法专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种具有最优更新代价的编码及解码方法,利用相互独立的 水 平、斜向与反斜向校验的编码方案,实现磁盘阵列,使其能容忍至多三 块 磁盘同时失效,通过合理的编码设计,大幅减少了数据更新代价,从而提升了写入性能,当至多3个磁盘上的数据不可用时,利用其余健康磁盘上存活的原始数据或校验数据,高效恢复出完整数据。,下面是具有最优更新代价的编码及解码方法专利的具体信息内容。

1.一种具有最优更新代价的编码方法,其特征在于,包括:
根据磁盘阵列中的磁盘数量,确定质数p使得阵列中磁盘数量n满足n=p或者n=p+1;
确定磁盘上的数据的大小,并将每个磁盘的地址空间以该大小为基本单位进行分块,并且一个磁盘上,每p-1个块视为一组,而所有磁盘的同样起始位置的一组数据块,共同构成了一个条带;
生成对应于磁盘阵列的编码矩阵,其中,编码矩阵中每一列对应于一个磁盘,而编码矩阵中的每个元素对应于条带中的一个数据块或校验块,所述校验块包括平校验块、斜向校验块和反斜向校验块;
根据水平校验块、斜向校验块和反斜向校验块的生成公式将每个条带的数据块的值按行优先顺序依次填入编码矩阵中的对应的元素位置,并根据所述水平校验块、斜向校验块和反斜向校验块的生成公式算出编码矩阵中所有校验块的值,并写入编码矩阵中对应的元素位置。
2.如权利要求1所述的具有最优更新代价的编码方法,其特征在于,所述水平校验块的生成公式如下:
其中,Ci,p为行号为i、列号为p的水平校验块的
值,p为质数,Ci,j为行号为i、列号为j的数据块的值。
3.如权利要求2所述的具有最优更新代价的编码方法,其特征在于,所述斜向校验的生成公式如下:
其中,Ci,i+1为行号为i、列号为i+1
的水平校验块的值, 为行号为p、列号为j的数据块的值,p为以i-j的值对p取模。
4.如权利要求3所述的具有最优更新代价的编码方法,其特征在于,所述反斜向校验的生成公式如下:
其中,Ci,p-1-i为行号为i、列号
为p-1-i的水平校验块的值, 为行号为p、列号为j的数据块的值,p为以i+j的值对p取模。
5.一种具有最优更新代价的解码方法,其特征在于,用于对如权利要求1~4任一项所述的具有最优更新代价的编码方法进行解码,所述解码方法包括:
当磁盘阵列上至多三块磁盘失效时,定位出失效的磁盘,将失效磁盘上存储的数据标记为失效数据,将其余数据均标记为存活数据;
生成对应于所述磁盘阵列的编码矩阵的校验矩阵,其中,所述校验矩阵是一个3w行wn列的01矩阵,n为磁盘阵列中的磁盘数量,n=p或者n=p+1,p为质数,w=p-1,矩阵的每一行对应于一个校验块的生成公式,其中,所述校验块的生成公式包括水平校验块、斜向校验块和反斜向校验块的生成公式,校验矩阵的每一列对应于编码矩阵中的一个元素;
将校验矩阵分割成两个子矩阵,其中,所有失效数据对应的校验矩阵中的失效元素所对应的列构成失效矩阵,所有存活数据对应的校验矩阵中的存活元素所对应的列构成存活矩阵,根据所有存活数据、失效矩阵和存活矩阵恢复出失效磁盘上的失效数据。
6.如权利要求5所述的具有最优更新代价的解码方法,其特征在于,根据所有存活数据、失效矩阵和存活矩阵恢复出失效磁盘上的失效数据中,通过如下公式计算得出失效数据:
-1 -1
L=HL *HS*S,其中,L为失效数据,HL为失效矩阵,HS为存活矩阵,HL 为01矩阵的广义逆矩阵,S为存活数据。
7.如权利要求6所述的具有最优更新代价的解码方法,其特征在于,生成对应于所述磁盘阵列的编码矩阵的校验矩阵中,所述编码矩阵中的元素Ci,j对应于所述校验矩阵的第j*w+i列的元素,当且仅当第i行对应的校验块的生成公式中出现第j列所对应的元素时校验矩阵中的元素Hi,j取值为1,Ci,j表示行号为i、列号为j的编码矩阵中的元素,Hi,j表示行号为i、列号为j的校验矩阵中的元素。

说明书全文

具有最优更新代价的编码及解码方法

技术领域

[0001] 本发明涉及一种具有最优更新代价的编码及解码方法。

背景技术

[0002] 随着存储的发展带来的数据存储需求的增加,现有的数据中心通常采用大量磁盘以达到足够的存储容量。对于这些数据中心来说,数据可靠性至关重要,因此具有容错能的磁盘阵列被广泛采用。近来,能容忍三磁盘失效的阵列最近受到广泛关注,这是由于在大规模数据中心里,磁盘失效的几率非常之高,同一个磁盘阵列中多块磁盘同时失效的情况时有发生,极易造成无法恢复的数据丢失,而容忍三盘失效的阵列能提供足够的数据保护能力,从而带来更高的数据可靠性。
[0003] 为了用尽可能少的成本让磁盘阵列具有容错能力,纠删码是一项被普遍采用的技术。其具体原理是对原始数据按某种方式进行编码,得到一定的校验数据,然后我们将校验数据与原始数据一并存入磁盘阵列。当有磁盘失效时,我们用磁盘阵列中尚可正常读取的数据,经过解码的步骤,从而恢复出原始的数据,从而能达到数据保护的目的。这类编码通常分为最大距离可分码(MDS编码)和非最大距离可分码(non-MDS编码),前者理论上能用最少的额外空间开销达到容错能力,而后者则牺牲一定存储效率以换取更好的性能。这两类编码在实际中均有应用。
[0004] 对于纠删码来说,更新代价是一个重要的性能指标,它被定义为更新一个数据块平均造成多少校验块的修改。这个指标对于写操作频繁的磁盘阵列来说至关重要。然而,现有的能容忍三个磁盘失效的MDS编码普遍具有高昂的更新代价。以常见的以异或(XOR)运算为基础的编码如STAR,Tr iple-Star等编码为例,它们的更新代价都很高,更新一个数据块平均会造成大约5个校验块被更新,远远超过理论的下限值3。这是由于它们在计算校验块的过程中存在依赖关系。对于另一类MDS编码如Reed-Solomon编码,由于它们的运算是基于伽罗华域,因此计算代价高昂,间接限制了写入速度。
[0005] 而对于各类non-MDS编码,它们普遍存在其他方面的缺点。首先一个共同的问题是,这些编码的存储效率不是最优,因此存储等量数据的情况下,non-MDS编码相比于MDS编码需要更多的存储空间,因此也需要更多的写入时间。此外,尽管有些non-MDS编码的存储效率接近最优,如HoVer和HDD1编码,但有相关评测表明,它们的解码效率非常低下,因此限制了磁盘阵列的重构速度。

发明内容

[0006] 本发明的目的在于提供一种具有最优更新代价的编码及解码方法,通过合理的编码设计,能够大幅减少了数据更新代价,从而提升了写入性能
[0007] 为解决上述问题,本发明提供一种具有最优更新代价的编码方法,包括:
[0008] 根据磁盘阵列中的磁盘数量,确定质数p使得阵列中磁盘数量n满足n=p或者n=p+1;
[0009] 确定磁盘上的数据块的大小,并将每个磁盘的地址空间以该大小为基本单位进行分块,并且一个磁盘上,每p-1个块视为一组,而所有磁盘的同样起始位置的一组数据块,共同构成了一个条带;
[0010] 生成对应于磁盘阵列的编码矩阵,其中,编码矩阵中每一列对应于一个磁盘,而编码矩阵中的每个元素对应于条带中的一个数据块或校验块,所述校验块包括平校验块、斜向校验块和反斜向校验块;
[0011] 根据水平校验块、斜向校验块和反斜向校验块的生成公式将每个条带的数据块的值按行优先顺序依次填入编码矩阵中的对应的元素位置,并根据所述水平校验块、斜向校验块和反斜向校验块的生成公式算出编码矩阵中所有校验块的值,并写入编码矩阵中对应的元素位置。
[0012] 进一步的,在上述方法中,所述水平校验块的生成公式如下:
[0013] 其中,Ci,p为行号为i、列号为p的水平校验块的值,p为质数,Ci,j为行号为i、列号为j的数据块的值。
[0014] 进一步的,在上述方法中,所述斜向校验的生成公式如下:
[0015] 其中,Ci,i+1为行号为i、列号为i+1的水平校验块的值, 为行号为p、列号为j的数据块的值,p为以i-j的值对p取模。
[0016] 进一步的,在上述方法中,所述反斜向校验的生成公式如下:
[0017] 其中,Ci,p-1-i为行号为i、列号为p-1-i的水平校验块的值, 为行号为p、列号为j的数据块的值,p为以i+j的值对p取模。
[0018] 根据本发明的另一面,还提供一种具有最优更新代价的解码方法,用于对上述的具有最优更新代价的编码方法进行解码,所述解码方法包括:
[0019] 当磁盘阵列上至多三块磁盘失效时,定位出失效的磁盘,将失效磁盘上存储的数据标记为失效数据,将其余数据均标记为存活数据;
[0020] 生成对应于所述磁盘阵列的编码矩阵的校验矩阵,其中,所述校验矩阵是一个3w行wn列的01矩阵,n为磁盘阵列中的磁盘数量,n=p或者n=p+1,p为质数,w=p-1,矩阵的每一行对应于一个校验块的生成公式,其中,所述校验块的生成公式包括水平校验块、斜向校验块和反斜向校验块的生成公式,校验矩阵的每一列对应于编码矩阵中的一个元素;
[0021] 将校验矩阵分割成两个子矩阵,其中,所有失效数据对应的校验矩阵中的失效元素所对应的列构成失效矩阵,所有存活数据对应的校验矩阵中的存活元素所对应的列构成存活矩阵,根据所有存活数据、失效矩阵和存活矩阵恢复出失效磁盘上的失效数据。
[0022] 进一步的,在上述方法中,根据所有存活数据、失效矩阵和存活矩阵恢复出失效磁盘上的失效数据中,通过如下公式计算得出失效数据:
[0023] L=HL-1*HS*S,其中,L为失效数据,HL为失效矩阵,HS为存活矩阵,HL-1为01矩阵的广义逆矩阵,S为存活数据。
[0024] 进一步的,在上述方法中,生成对应于所述磁盘阵列的编码矩阵的校验矩阵中,所述编码矩阵中的元素Ci,j对应于所述校验矩阵的第j*w+i列的元素,当且仅当第i行对应的校验块的生成公式中出现第j列所对应的元素时校验矩阵中的元素Hi,j取值为1,Ci,j表示行号为i、列号为j的编码矩阵中的元素,Hi,j表示行号为i、列号为j的校验矩阵中的元素。
[0025] 与现有技术相比,本发明利用相互独立的水平、斜向与反斜向校验的编码方案,实现磁盘阵列,使其能容忍至多三块磁盘同时失效,通过合理的编码设计,大幅减少了数据更新代价,从而提升了写入性能,当至多3个磁盘上的数据不可用时,利用其余健康磁盘上存活的原始数据或校验数据,高效恢复出完整数据。附图说明
[0026] 图1是本发明一实施例的条带的水平校验计算方式的示意图;
[0027] 图2是本发明一实施例的条带的斜向校验计算方式的示意图;
[0028] 图3是本发明一实施例的条带的反斜向校验计算方式的示意图;
[0029] 图4是本发明一实施例的支持六个磁盘的阵列的校验矩阵示意图;
[0030] 图5是本发明一实施例的支持六个磁盘的阵列的数据块编号示意图;
[0031] 图6是本发明一实施例的假定第0,1,3号磁盘失效的解码示意图。

具体实施方式

[0032] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0033] 如图1所示,本发明提供一种具有最优更新代价的编码方法,包括:
[0034] 步骤S11,根据磁盘阵列中的磁盘数量,确定合适的质数p使得阵列中磁盘数量n满足n=p或者n=p+1,在此,若无法找到合适的p值,则无法直接采用本实施例的编码方案;
[0035] 步骤S12,确定磁盘上的数据块的大小,并将每个磁盘的地址空间以该大小为基本单位进行分块,并且一个磁盘上,每p-1个块视为一组,而所有磁盘的同样起始位置的一组数据块,共同构成了一个条带;
[0036] 步骤S13,生成对应于磁盘阵列的编码矩阵,其中,编码矩阵中每一列对应于一个磁盘,而编码矩阵中的每个元素对应于条带中的一个数据块或校验块,所述校验块包括水平校验块、斜向校验块和反斜向校验块,在编码矩阵中对每个元素的操作,均对应于实际磁盘阵列中对相应的数据块或校验块的操作;
[0037] 步骤S14,根据水平校验块、斜向校验块和反斜向校验块的生成公式将每个条带的数据块的值按行优先顺序依次填入编码矩阵中的对应的元素位置,并根据所述水平校验块、斜向校验块和反斜向校验块的生成公式算出编码矩阵中所有校验块的值,并写入编码矩阵中对应的元素位置。
[0038] 本发明的具有最优更新代价的编码方法的一优选的实施例中,所述水平校验块的生成公式如下:
[0039] 其中,Ci,p为行号为i、列号为p的水平校验块的值,p为质数,Ci,j为行号为i、列号为j的数据块的值。
[0040] 本发明的具有最优更新代价的编码方法的一优选的实施例中,所述斜向校验的生成公式如下:
[0041] 其中,Ci,i+1为行号为i、列号为i+1的水平校验块的值, 为行号为p、列号为j的数据块的值,p为以i-j的值对p取模。
[0042] 本发明的具有最优更新代价的编码方法的一优选的实施例中,所述反斜向校验的生成公式如下:
[0043] 其中,Ci,p-1-i为行号为i、列号为p-1-i的水平校验块的值, 为行号为p、列号为j的数据块的值,p为以i+j的值对p取模。
[0044] 图1至图3通过一个实例展示了本发明的三种校验的编码方式。该例子将编码用于包含8块磁盘的磁盘阵列,这些磁盘依次编号为0-7。此时,该编码对应的质数为p=7,因此该编码可用一个6*8的矩阵来表示。图1展示了其水平校验的编码方式,图中的每种形状用来表示一个校验块的生成方式,其中校验块的数值是由其他相同形状的数据块通过异或运算(表示为⊕)相加所得。例如,第一行的水平校验的计算公式为:C0,7=C0,0⊕C0,2⊕C0,3⊕C0,4⊕C0,5。图2展示了斜向校验的计算方式,该图与图1用相同方式表示。举例来说,斜向校验块C0,1的计算公式为C0,1=C0,0⊕C5,2⊕C4,3⊕C2,5⊕C1,6。反斜向校验的例子由图3给出,例如校验块C0,6的计算公式为C0,6=C0,0⊕C1,1⊕C2,2⊕C4,4⊕C5,5。
[0045] 当该编码用于规模为p的磁盘阵列时,我们只需将第一列置成0,该列不再存放任何数据,而是将所有数据都存放在其他列的数据块中。水平校验块、斜向校验块和反斜向校验块的生成公式仍然保持不变。在实际阵磁盘列中,由于第一列不用来存放任何数据或者校验块,所以令其它每一列各对应于一块磁盘,这使得磁盘阵列的规模恰为p。
[0046] 与现有的三盘容错技术相比,本实施例利用相互独立的水平、斜向与反斜向校验的编码方案,实现磁盘阵列,使其能容忍至多三块磁盘同时失效本实施例通过合理的编码设计,大幅减少了数据更新代价,从而提升了写入性能。本实施例编码采用了三种类型的校验,分别称为水平、斜向和反斜向校验,并且通过独特的校验计算方式,使得三种校验的计算互相独立。当更新任意一个数据块时,始终只有一个水平、一个斜向和一个反斜向校验块需要修改,从而使该编码具有最优的更新代价。该编码同时还具有MDS(Maximum Di stance Separable,最大距离可分码)性质,即具有最佳存储效率。相比于现有的编码,该实施例在保证高可靠性的同时,能够显著减少数据更新过程中的校验块更新数量,因此能大幅提升了磁盘阵列的写性能。
[0047] 根据本发明的另一面,本发明还提供一种对应于上述具有最优更新代价的编码方法的解码方法,包括:
[0048] 步骤S21,当磁盘阵列上至多三块磁盘失效时,定位出失效的磁盘,将失效磁盘上存储的数据标记为失效数据,将其余数据均标记为存活数据;
[0049] 步骤S22,生成对应于所述磁盘阵列的编码矩阵的校验矩阵H,其中,所述校验矩阵是一个3w行wn列的01矩阵,n为磁盘阵列中的磁盘数量,n=p或者n=p+1,p为质数,w=p-1,矩阵的每一行对应于一个校验块的生成公式,其中,所述校验块的生成公式包括水平校验块、斜向校验块和反斜向校验块的生成公式,校验矩阵的每一列对应于编码矩阵中的一个元素;
[0050] 步骤S23,将校验矩阵H分割成两个子矩阵,其中,所有失效数据对应的校验矩阵中的失效元素所对应的列构成失效矩阵HL,所有存活数据S对应校验矩阵中的存活元素所对应的列构成存活矩阵HS,根据所有存活数据、失效矩阵HL和存活矩阵HS恢复出失效磁盘上的失效数据。
[0051] 本发明的具有最优更新代价的的解码方法的一优选的实施例中,步骤S23,根据所有存活数据、失效矩阵HL和存活矩阵HS恢复出失效磁盘上的失效数据中,失效矩阵HL和存活矩阵HS两个矩阵之间的关系如图6所示,HL与失效数据的乘积,必然等于HS与存活数据的乘积。记失效数据为L,存活数据为S,那么用公式表示即为:
[0052] HL*L=HS*S;
[0053] 根据图6所示的公式,所有的失效数据L看作未知量,而存活数据S、HL和HS均为-1已知量,那么失效数据L可通过如下公式计算得出,其中HL 为01矩阵的广义逆矩阵:
[0054] L=HL-1*HS*S。
[0055] 本发明的具有最优更新代价的的解码方法的一优选的实施例中,步骤S22生成对应于所述磁盘阵列的编码矩阵的校验矩阵中,所述编码矩阵中的元素Ci,j对应于所述校验矩阵的第j*w+i列的元素,当且仅当第i行对应的校验块的生成公式中出现第j列所对应的元素时校验矩阵中的元素Hi,j取值为1,Ci,j表示行号为i、列号为j的编码矩阵中的元素,Hi,j表示行号为i、列号为j的校验矩阵中的元素。
[0056] 具体的,当至多3块磁盘同时失效时,本实施例可借助“校验矩阵”对磁盘阵列进行重构,从而恢复出失效磁盘上的数据。首先我们给出该校验矩阵的构造方法。令n为磁盘阵列中的磁盘数量,则n必须满足n=p或者n=p+1;再令w=p-1,则校验矩阵H是一个3w行wn列的01矩阵。矩阵的每一行对应于一个校验块的生成公式,其中,所述校验块的生成公式包括水平校验块、斜向校验块和反斜向校验块的生成公式,矩阵的每一列对应于磁盘阵列的条带中的一个元素。具体来说,所述编码矩阵中的元素Ci,j对应于所述校验矩阵的第j*w+i列的元素,当且仅当第i行对应的校验块的生成公式中出现第j列所对应的元素时校验矩阵中的元素Hi,j取值为1,Ci,j表示行号为i、列号为j的编码矩阵中的元素,Hi,j表示行号为i、列号为j的校验矩阵中的元素。
[0057] 具体的,图4给出了一个校验矩阵构造的样例,该样例中,采用了适用于6个磁盘的编码。该编码可用4*6的矩阵来表示,其数据块/校验块的分布如图5所示。图4还展示了校验矩阵的一个关键性质。若我们将条带中所有数据块按磁盘顺序依次取出,组成一个列向量,则校验矩阵与该向量的乘积始终为0,这是由校验矩阵的性质所决定的:如果将校验矩阵的每一行中含有1的列取出,则它们所对应的元素构成一个校验计算公式,它们的和必为0。
[0058] 本实施例中当至多3个磁盘上的数据不可用时,利用其余健康磁盘上存活的原始数据或校验数据,高效恢复出完整数据。相比于现有的编码,该实施例在保证高可靠性的同时,能够显著减少数据更新过程中的校验块更新数量,因此能大幅提升了磁盘阵列的写性能。
[0059] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0060] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0061] 显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
相关专利内容
标题 发布/更新时间 阅读量
斜盘关节轴承 2020-05-13 131
倾斜转盘溜槽 2020-05-13 919
斜盘发动机 2020-05-12 82
压缩机斜盘 2020-05-12 138
斜盘 2020-05-11 91
压缩机斜盘 2020-05-12 806
倾斜盘装置 2020-05-12 872
斜盘式泵 2020-05-11 372
斜盘压缩机的斜盘 2020-05-11 966
斜盘 2020-05-12 55
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈