CN112825052A - 确定条带一致性的方法及装置 - Google Patents

确定条带一致性的方法及装置 Download PDF

Info

Publication number
CN112825052A
CN112825052A CN201911141650.7A CN201911141650A CN112825052A CN 112825052 A CN112825052 A CN 112825052A CN 201911141650 A CN201911141650 A CN 201911141650A CN 112825052 A CN112825052 A CN 112825052A
Authority
CN
China
Prior art keywords
data blocks
groups
stripe
crc
node
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
Application number
CN201911141650.7A
Other languages
English (en)
Inventor
陈亮
董如良
张进毅
刘强
袁琦钊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201911141650.7A priority Critical patent/CN112825052A/zh
Priority to EP20890994.5A priority patent/EP4050485A4/en
Priority to PCT/CN2020/126855 priority patent/WO2021098526A1/zh
Publication of CN112825052A publication Critical patent/CN112825052A/zh
Priority to US17/746,188 priority patent/US12099404B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Error Detection And Correction (AREA)

Abstract

本申请实施例提供一种确定条带一致性的方法及装置,涉及计算机技术领域,能够降低确定条带一致性所消耗网络资源。该方法包括:运算节点获取目标条带对应的n组CRC数据块;该目标条带包含n个第一数据块,该n个第一数据块包括k个原始数据块和k个原始数据块的m个EC数据块;该n组CRC数据块为n组第二数据块各自的CRC数据块;一组第二数据块包括对一个第一数据块进行m次EC变换得到的m个变换结果;其中,k与m均为正整数,n=m+k;并且运算节点确定n组CRC数据块是否满足线性关系;若n组CRC数据块满足线性关系,则运算节点确定目标条带具有条带一致性。

Description

确定条带一致性的方法及装置
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种确定条带一致性的方法及装置。
背景技术
纠删码(erasure code,EC)技术可以应用于数据存储系统,是一种能够减少数据冗余、保证数据可靠性的数据编码方法。
具体的,在存储系统中,对于k个数据块,首先采用EC算法生成该k个数据块的m个校验数据块(其中,k与m均为大于或者等于1的正整数,k与m的大小关系不作限定),如此,得到k+m个数据块,然后将k+m个数据块存储到数据存储系统的不同的系统节点(如硬盘)中,这k+m个数据块构成一个完整的编码码字(以下称为一个条带),并且这k+m个数据块满足条带一致性,即k+m个数据块中可以容忍任意t(1≤t≤m)个数据块丢失,保证数据可恢复。
目前,确定存储系统中的条带是否具有一致性的方法可以包括:将k+m个数据块从不同的系统节点汇聚到一个运算节点,假设k个数据块分别为D0~Dk-1,m个校验数据块分别为P0~Pm-1,运算节点对该k个数据块D0~Dk-1,采用EC算法确定出对应的m个校验数据块
Figure BDA0002281113360000011
然后运算节点分别对校验数据块Pi与校验数据块
Figure BDA0002281113360000012
进行逐字节比对,若Pi
Figure BDA0002281113360000013
相同,则确定D0~Dk-1和P0~Pm-1构成的条带具有条带一致性;否则,该条带不具有条带一致性。
然而,上述确定条带一致性的方法中,将条带中的所有数据块从各个系统节点汇聚到一个运算节点,若条带包括的数据块比较多,则需要消耗较大的网络带宽,从而可能影响数据存储系统的整体性能。
发明内容
本申请实施例提供一种确定条带一致性的方法及装置,能够降低确定条带一致性所消耗网络资源。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种确定条带一致性的方法,该方法包括:
运算节点获取目标条带对应的n组循环冗余校验(cyclic redundancy check,CRC)数据块;该目标条带包含n个第一数据块,该n个第一数据块包括k个原始数据块和k个原始数据块的m个EC数据块;该n组CRC数据块为n组第二数据块各自的CRC数据块;其中,在所述n组第二数据块中的一组第二数据块包括对相应的一个第一数据块进行m次EC变换得到的m个变换结果;其中,k与m均为正整数,n=m+k;并且运算节点确定n组CRC数据块是否满足线性关系;若n组CRC数据块满足线性关系,则运算节点确定目标条带具有条带一致性。
本申请实施例提供的确定条带一致性的方法,运算节点通过确定目标条带对应的n组CRC数据块是否满足线性关系,以确定该目标条带是否具有条带一致性。由于CRC数据块远小于目标条带包含的第一数据块的大小,运算节点从系统节点获取目标条带对应的CRC数据块,能够降低带宽消耗,并且由于CRC数据块较小,运算节点根据CRC数据块确定目标条带是否具有条带一致性,能够降低运算节点的计算量,降低资源消耗。综上,本申请实施例提供的确定条带一致性的方法能够降低确定条带一致性所消耗的网络资源。
一种可能的实现方式中,对目标条带包含的n个第一数据块{B0,B1,...,Bn-1}分别进行第j次EC变换得到n个第二数据块为
Figure BDA0002281113360000024
该n个第二数据块
Figure BDA0002281113360000025
各自的CRC数据块为
Figure BDA0002281113360000026
上述运算节点确定n组CRC数据块是否满足线性关系的方法可以包括:运算节点确定n组CRC数据块是否满足
Figure BDA0002281113360000027
Figure BDA0002281113360000028
Figure BDA0002281113360000029
表示异或运算。
一种可能的实现方式中,上述运算节点确定目标条带具有条带一致性的方法可以包括:运算节点根据n组CRC数据块满足线性关系的情况,确定n组第二数据块是否满足线性关系;若n组第二数据块满足线性关系,则运算节点确定目标条带具有条带一致性。
本申请实施例中,对于一组数据块,若该组数据块满足线性关系,则该组数据块对应的一组CRC数据块也满足线性关系。相反地,若该组数据块对应的一组CRC数据块不满足线性关系,则该组数据块一定不满足线性关系;若该组数据块对应的一组CRC数据块满足线性关系,则该组数据块不一定满足线性关系。
需要说明的是,在本申请实施例中,对于上述目标条带而言,若上述n组CRC数据块满足线性关系,则上述n组第二数据块以不小于(即大于或者等于)
Figure BDA00022811133600000210
的概率满足线性关系,其中,m是上述目标条带中EC数据块的数量,crclength表示一个CRC数据块的比特大小。
本申请实施例中,对于一个条带,该条带包含的n个数据块为B0,B1,...,Bn-1,该n个数据块组成的向量为[B0 B1 ...... Bn-2 Bn-1],该条带对应的EC变换矩阵H为:
Figure BDA0002281113360000021
若条带具有条带一致性,则该条带满足等式H*vT=0,即为:
Figure BDA0002281113360000022
进一步的,将上述公式展开为如下m个等式:
Figure BDA0002281113360000023
由该m个等式可知:
Figure BDA0002281113360000031
由于
Figure BDA0002281113360000034
因此可以得出hi,0*B0,hi,1*B,……,hi,n-2*Bn-2,hi,n-1*Bn-1满足线性关系。
综上可知,条带中的所有数据块的变换结果(采用EC变换矩阵的变换结果)满足线性关系,则该条带具有条带一致性。
需要说明的是,由于上述n组CRC数据块满足线性关系,则上述n组第二数据块以不小于(即大于或者等于)
Figure BDA0002281113360000032
的概率满足线性关系,因此,在本申请实施例中,若n组CRC数据块满足线性关系,则运算节点确定目标条带具有条带一致性指的是:若n组CRC数据块满足线性关系,则运算节点确定目标条带以不小于
Figure BDA0002281113360000033
的概率满足条带一致性。
一种可能的实现方式中,在确定目标条带是否具有条带一致性的过程中,存储该目标条带中的n个第一数据块的M个系统节点中,可能部分系统节点中已存储有对应的CRC数据块(即系统节点已预先根据第一数据块确定第二数据块,并且确定出了第二数据块的CRC数据块),部分系统节点中未存储对应的CRC数据块。在这种情况下,未存储对应的CRC数据块的系统节点根据EC变换矩阵中对应的变换系数,先对其上存储的第一数据块进行EC变换,得到第二数据块,再确定第二数据块的CRC数据块,然后将CRC数据块发送至运算节点;并且已存储有对应的CRC数据块的系统节点也将其上存储的CRC数据块发送至运算节点,进而运算节点获取到目标条带对应的CRC数据块,并根据目标条带对应的CRC数据块确定该目标条带是否具有条带一致性。需要注意的是,该目标条带对应的CRC数据块的排列顺序与目标条带中n个第一数据块的排列顺序一致。
第二方面,本申请实施例提供一种确定条带一致性的方法,该方法包括:系统节点对所述系统节点上的p个第一数据块进行EC变换,得到p组第二数据块;该p个第一数据块为目标条带中的数据块,该目标条带包括n个第一数据块,该n个第一数据块存储于至少一个系统节点中,n个第一数据块包括k个原始数据块和k个原始数据块的m个EC数据块;其中,在所述n组第二数据块中的一组第二数据块包括对相应的一个第一数据块进行m次EC变换得到的m个变换结果;其中,k与m均为正整数,n=m+k,p为小于或等于n个正整数;并且系统节点确定p组第二数据块各自的CRC数据块,得到p组CRC数据块,该p组CRC数据块用于确定目标条带是否具有条带一致性。
本申请实施例中,存储有目标条带包含的n个第一数据块的每一个系统节点均需要对该系统节点上第一数据块进行处理,并且每个系统节点对第一数据块进行处理的方法相同。
一种可能的实现方式中,上述系统节点对一个第一数据块进行EC变换的方法可以包括:系统节点确定EC变换矩阵中第一位置对应的m个EC变换系数,该第一位置为第一数据块在目标条带中的位置;并且系统节点根据m个EC变换系数对第一数据块进行EC变换,得到一组第二数据块。
本申请实施例中,目标条带中的n个第一数据块是按照一定的顺序排列的,即每一个第一数据块在目标条带中有各自对应的位置,上述确定EC变换矩阵中第一位置对应的m个EC变换系数可以包括:系统节点首先确定该第一数据块在目标条带中的位置(即第一位置),然后将EC变换矩阵中该第一数据块的位置对应的一列元素确定为第一数据块对应的m个EC变换系数。上述根据m个EC变换系数对第一数据块进行EC变换的过程为:将m个EC变换系数与第一数据块分别相乘,得到m个变换结果(即一组第二数据块)。
一种可能的实现方式中,本申请实施例提供的确定条带一致性的方法还可以包括:系统节点向运算节点发送p组CRC数据块。
上述系统节点确定出p组CRC数据块之后,系统节点可以将该p组CRC数据块发送至数据存储系统中的运算节点,以用于确定目标条带是否具有条带一致性;或者,该系统节点可以将该p组CRC数据块存储于该系统节点上,以备后用(即在必要时,系统节点将CRC数据块发送至某一运算节点,用于确定条带一致性)。
本申请实施例提供的确定条带一致性的方法,由于上述各个系统节点可以将目标条带对应的CRC数据块发送至运算节点,系统节点无需向运算节点发送目标条带包含的所有数据块,并且CRC数据块远小于目标条带包含的数据块(目标条带包含的数据块与原始数据块的大小相同,该原始数据块为千字节(KB)的数据块,而CRC数据块为数十比特),因此根据目标条带包含的CRC数据块确定目标条带的条带一致性,能够节省消耗的网络资源。
第三方面,本申请实施例提供一种运算节点,包括获取模块和确定模块;其中,获取模块用于获取目标条带对应的n组CRC数据块;该目标条带包含n个第一数据块,该n个第一数据块包括k个原始数据块和k个原始数据块的m个EC数据块;该n组CRC数据块为n组第二数据块各自的CRC数据块;其中,在所述n组第二数据块中的一组第二数据块包括对相应的一个第一数据块进行m次EC变换得到的m个变换结果;其中,n为大于或等于2的正整数,m为小于n的正整数,n=m+k;确定模块用于确定n组CRC数据块是否满足线性关系;并且在n组CRC数据块满足线性关系的情况下,确定目标条带具有条带一致性。
一种可能的实现方式中,对目标条带包含的n个第一数据块{B0,B1,...,Bn-1}分别进行第j次EC变换得到n个第二数据块为
Figure BDA0002281113360000041
该n个第二数据块
Figure BDA0002281113360000042
各自的CRC数据块为
Figure BDA0002281113360000043
上述确定模块具体用于确定n组CRC数据块是否满足
Figure BDA0002281113360000044
Figure BDA0002281113360000045
表示异或运算。
一种可能的实现方式中,上述确定模块具体用于根据n组CRC数据块满足线性关系的情况,确定n组第二数据块是否满足线性关系;并且在n组第二数据块满足线性关系的情况下,确定目标条带具有条带一致性。
第四方面,本申请实施例提供一种系统节点,包括变换模块和确定模块;其中,变换模块用于对系统节点上的p个第一数据块进行EC变换,得到p组第二数据块;该p个第一数据块为目标条带中的数据块,该目标条带包括n个第一数据块,该n个第一数据块存储于至少一个系统节点中,该n个第一数据块包括k个原始数据块和k个原始数据块的m个EC数据块;其中,在所述n组第二数据块中的一组第二数据块包括对相应的一个第一数据块进行m次EC变换得到的m个变换结果;其中,n为大于或等于2的正整数,m为小于n的正整数,p为小于或等于n个正整数,n=m+k;确定模块用于确定p组第二数据块各自的CRC数据块,得到p组CRC数据块,该p组CRC数据块用于确定目标条带是否具有条带一致性。
一种可能的实现方式中,上述确定模块具体用于确定EC变换矩阵中第一位置对应的m个EC变换系数,该第一位置为第一数据块在目标条带中的位置;上述变换模块具体用于根据m个EC变换系数对第一数据块进行EC变换,得到一组第二数据块。
一种可能的实现方式中,本申请实施例提供的系统节点还包括发送模块;该发送模块用于向运算节点发送p组CRC数据块。
第五方面,本申请实施例提供一种运算节点,包括处理器和与该处理器耦合连接的存储器;该存储器用于存储计算机指令,当运算节点运行时,处理器执行存储器存储的计算机指令,以使得运算节点执行第一方面及其可能的实现方式中任意之一所述的确定条带一致性的方法。
第六方面,本申请实施例提供一种运算节点,该运算节点以芯片的产品形态存在,该运算节点的结构中包括处理器和存储器,存储器用于与处理器耦合,存储器用于存储计算机指令,处理器用于执行存储器中存储的计算机指令,使得该运算节点执行上述第一方面及其可能的实现方式中任意之一所述的确定条带一致性的方法。
第七方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质可以包括计算机指令,当计算机指令在计算机上运行时,使得运算节点执行上述第一方面及其可能的实现方式中任意之一所述确定条带一致性的方法。
第八方面,本申请实施例提供一种系统节点,其特征在于,包括处理器和与该处理器耦合连接的存储器;该存储器用于存储计算机指令,当系统节点运行时,处理器执行存储器存储的计算机指令,以使得系统节点执行上述第二方面及其可能的实现方式中任意之一所述确定条带一致性的方法。
第九方面,本申请实施例提供一种系统节点,该系统节点以芯片的产品形态存在,该系统节点的结构中包括处理器和存储器,存储器用于与处理器耦合,存储器用于存储计算机指令,处理器用于执行存储器中存储的计算机指令,使得该系统节点执行上述第二方面及其可能的实现方式中任意之一所述确定条带一致性的方法。
第十方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质可以包括计算机指令,当计算机指令在计算机上运行时,以使得系统节点上述第二方面及其可能的实现方式中任意之一所述确定条带一致性的方法。
应当理解的是,本申请实施例的第二方面至第十方面技术方案及对应的可能的实施方式所取得的有益效果可以参见上述对第一方面、第二方面及其对应的可能的实施方式的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的条带的示意图;
图2为本申请实施例提供的一种服务器的硬件示意图;
图3为本申请实施例提供的一种数据处理过程示意图;
图4为本申请实施例提供的一种EC变换系数的示意图;
图5为本申请实施例提供的一种确定条带一致性的方法示意图一;
图6为本申请实施例提供的一种确定条带一致性的方法示意图二;
图7为本申请实施例提供的一种运算节点的结构示意图一;
图8为本申请实施例提供的一种运算节点的结构示意图二;
图9为本申请实施例提供的一种系统节点的结构示意图一;
图10为本申请实施例提供的一种系统节点的结构示意图二。
具体实施方式
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一数据块和第二数据块等是用于区别不同的数据块,而不是用于描述数据块的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
首先对本申请实施例提供的确定条带一致性的方法及装置中涉及的一些概念做解释说明。
条带:采用EC技术对数据块(为了便于描述,本申请实施例中将此处的待编码的数据块统称为原始数据块)进行编码,得到EC数据块(即采用EC算法进行编码后的数据块,也可以称为校验数据块),将原始数据块和EC数据块构成的一个完整的编码码字称为一个条带。示例性的,若原始数据块有k个,该k个原始数据块对应的EC数据块有m个(本申请实施例中,k与m的大小关系不作限定)。如图1所示,假设k=6,m=3,6个原始数据块分别记为D0、D1、D2、D3、D4、D5,这6个原始数据块对应的3个EC数据块分别记为P0、P1、P2,如此,这9个数据块构成一个条带(即一个存储阵列)。
应理解,在存储系统中,一个条带中的k+m个数据块可以存储在M个系统节点(例如硬盘)中,M为小于或者等于k+m的正整数。
需要说明的是,上述采用EC算法对k个原始数据块进行编码具体包括:采用预定的编码矩阵(或者可以称为EC变换矩阵或者校验矩阵),对k个原始数据块进行编码得到m个EC数据块。本申请实施例中,采用EC编码得到的条带具有条带一致性,即条带中的所有数据块满足如下公式(1):
H*vT=0 (1)
其中,H为预定的EC变换矩阵(m×n维),vT表示向量v的转置,v是由条带中的所有数据块组成的n维向量,v=[D0 D1 ... Dk-2 Dk-1 P0 ... Pm-1]。
示例性的,EC变换矩阵为:
Figure BDA0002281113360000061
结合EC变换矩阵H,本申请实施例中,规定上述公式(1)展开为如下公式(2)的m个等式:
Figure BDA0002281113360000062
应理解,对于k个原始数据块,根据公式(2)可以求解得到k个原始数据块对应的m个EC数据块,从而得到由k个原始数据块和m个EC数据块组成的条带。本申请实施例中,对于一个采用EC技术得到的条带而言,将EC算法中的EC变换矩阵称为该条带对应的EC变换矩阵。
条带一致性:指条带具有容错能力,即上述k+m个数据块中允许任意t(1≤t≤m)个数据块丢失,在任意t个数据块丢失的情况下,均可以保证恢复原始数据块。例如,上述图1所示的条带(该条带中,m=3)的9个数据块D0、D1、D2、D3、D4、D5、P0、P1以及P2中的D0、D4以及P1丢失时,可以根据数据块D1、D2、D3、D5、P0以及P2恢复数据块D0、D4以及P1,如此,能够保证原始数据块(包括D0、D1、D2、D3、D4以及D5)的信息完整性,即说明该条带具有条带一致性。
EC变换:本申请实施例中,对于一个采用EC算法得到的条带中的数据块进行EC变换指的是采用上述EC变换矩阵对该条带中的数据块进行变换。具体的,对于条带中的一个数据块,对该数据块进行EC变换指的是:采用该EC变换矩阵中该数据块对应的变换系数(该变换系数可以包括多个)对该数据块进行变换。
基于背景技术存在的问题,本申请实施例提供一种确定条带一致性的方法及装置,数据存储系统中的运算节点通过确定目标条带对应的n组第二数据块的n组CRC数据块是否满足线性关系,以确定该目标条带是否具有条带一致性,能够降低确定条带一致性所消耗的网络资源。
数据存储系统中的节点(也可以称为系统节点)具有存储功能,并且具有数据运算能力,在数据存储系统中,部分节点主要用于存储数据,部分节点主要用于处理数据。
本申请实施例中,目标条带的n个数据块存储于M个系统节点中,应理解,在以下实施例中,运算节点可以是这M个系统节点中的一个节点,该运算节点也可以是数据存储系统中的其他系统节点(即除上述M个系统节点之外的系统节点中的一个节点),具体可以根据实际情况确定运算节点,本申请实施例不作限定。
本申请实施例中,系统节点可以集成在一个服务器上以实现该系统节点的功能。下面结合图2具体介绍本发明实施例提供的集成有系统节点的功能的服务器的各个构成部件。如图2所示,该服务器100可以包括:处理器101、存储器102和通信接口103等。
处理器101:是服务器100的核心部件,用于运行服务器100的操作系统与服务器100上的应用程序(包括系统应用程序和第三方应用程序)。在本申请实施例中,处理器101可以用于确定数据块的EC数据块、确定数据块的CRC数据块等等。
本申请实施例中,处理器101具体可以为中央处理器(central processing unit,CPU),通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合,其可以实现或执行结合本发明实施例公开的内容所描述的各种示例性的逻辑方框,模块和电路;处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
存储器102:可用于存储软件程序以及模块,处理器101通过运行存储在存储器102里的软件程序以及模块,从而执行服务器100的各种功能应用以及数据处理。存储器102可包含一个或多个计算机可读存储介质。存储器102包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等,存储数据区可存储服务器100创建的数据等,例如存储目标条带包含的数据块的EC数据块或CRC数据块等。
本申请实施例中,存储器102具体可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);该存储器也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flashmemory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);该存储器还可以包括上述种类的存储器的组合。
通信接口103:用于服务器100与其他设备进行通信的接口电路,通信接口可以为收发器、收发电路等具有收发功能的结构,例如通过通信接口103,不同的系统节点之间进行数据传输。
在数据存储系统中,目标条带包含n个数据块,该n个数据块包括k个原始数据块和该k个原始数据块的m个EC数据块,其中,k与m为均为正整数,n=m+k。应理解,本申请实施例中,采用EC算法对k个原始数据进行编码得到m个EC数据块之后,将得到的n个数据块(该k+m个数据块构成目标条带)均称为第一数据块,该n个第一数据块存储在多个(例如M个,M为小于或者等于n的正整数)系统节点中。
本申请实施例提供的确定条带一致性的方法可以包括两个过程,这两个过程分别是:存储有目标条带包含的n个第一数据块的各个系统节点对其存储的第一数据块做处理的过程;以及运算节点根据对n个第一数据块的处理结果确定目标条带是否具有条带一致性的过程。
下面将分别详细介绍这两个过程以说明本申请实施例提供的确定条带一致性的方法。
本申请实施例中,存储有第一数据块的每一个系统节点均需要对该系统节点上第一数据块进行处理,并且每个系统节点对第一数据块进行处理的方法相同,下面以存储有第一数据块的所有系统节点中的一个系统节点为例说明系统节点对第一数据块的处理过程。
如图3所示,系统节点对第一数据块的处理过程包括S101-S102:
S101、系统节点对该系统节点上的p个第一数据块进行EC变换,得到p组第二数据块。
其中,p为小于或等于n个正整数,目标条带包含的n个第一数据块(即包括k个原始数据块和该k个原始数据块的m个EC数据块,n=m+k)存储于至少一个系统节点,可选的,一个系统节点上可以存储一个第一数据块,也可以存储多个第一数据块(例如存储p个第一数据块)。
本申请实施例中,系统节点对该系统节点上存储的p个第一数据块分别进行EC变换,得到p组第二数据块,可以理解的,系统节点对每一个第一数据块进行EC变换的方法类似,对第一数据块进行EC变换指的是采用目标条带对应的EC变换矩阵中,该第一数据块对应的m个系数(可以称为m个EC变换系数)对该第一数据块进行变换。
一个第一数据块对应一组第二数据块,一组第二数据块包括对一个第一数据块进行m次EC变换得到的m个变换结果,即一组第二数据块包括对相应的一个第一数据块采用EC变换矩阵中对应的m个变换系数进行m次变换得到的m个变换结果(该EC变换结果中的每个数据块与第一数据块大小相同)。
以下以系统节点对一个第一数据块进行EC变换为例说明EC变换过程。具体的,系统节点对第一数据块进行EC变换可以包括S1011-S1012:
S1011、系统节点确定EC变换矩阵中第一位置对应的m个EC变换系数,该第一位置为第一数据块在目标条带中的位置。
需要说明的是,本申请实施例中,目标条带中的n个第一数据块是按照一定的顺序排列的,即每一个第一数据块在目标条带中有各自对应的位置,并且S1011中的EC变换矩阵与上述相关概念介绍处描述的EC变换矩阵的概念相同。
本申请实施例中,采用上述EC算法中的EC变换矩阵对目标条带中包含的n个第一数据块进行EC变换,其中,对于一个第一数据块而言,首先确定该EC变换矩阵中第一数据块对应的m个EC变换系数,其次再采用该m个EC变换系数对第一数据块做m次EC变换。
上述第一位置为第一数据块在目标条带中的位置(以下称为第一位置)。可选的,该第一位置可以为第一数据块在目标条带中的位置索引,具体的,上述确定EC变换矩阵中第一位置对应的m个EC变换系数可以包括:系统节点首先确定该第一数据块在目标条带中的位置(即第一位置),然后将EC变换矩阵中该第一数据块的位置对应的一列元素确定为第一数据块对应的m个EC变换系数。示例性的,假设目标条带的n个第一数据块分别为B0,B1,...,Bn-1,对于这n个第一数据块中的一个数据块Bi,其位置为i,如此,EC变换矩阵的第i列对应的m个元素即为m个EC变换系数,结合图4,该m个EC变换系数为h0,i,h1,i,...,hm-1,i
S1012、系统节点根据m个EC变换系数对第一数据块进行EC变换,得到一组第二数据块。
本发明实施例中,根据m个EC变换系数对第一数据块进行EC变换的过程为:将该m个EC变换系数与第一数据块分别相乘,得到m个变换结果(即一组第二数据块)。结合上述示例,第一数据块Bi的m个EC变换系数为h0,i,h1,i,...,hm-1,i,则EC变换后的一组第二数据块为h0,iBi,h1,iBi,...,hm-1,iBi,其中,h0,iBi表示第1次EC变换的结果,h1,iBi表示第2次EC变换的结果,依次类推,hm-1,iBi为第m次EC变换的结果。
综上,按照上述S1011-S1012所述的过程,可以得到出该系统节点中的p个第一数据块对应的p组第二数据块。
S102、系统节点确定p组第二数据块各自的CRC数据块,得到p组CRC数据块。
该p组CRC数据块用于确定目标条带是否具有条带一致性。本申请实施例中,上述系统节点确定出p组CRC数据块之后,该系统节点可以将该p组CRC数据块存储于该系统节点上,或者将该p组CRC数据块发送至数据存储系统中的运算节点,以用于确定目标条带是否具有条带一致性。
可选的,本申请实施例可以采用现有方法计算第二数据块的CRC数据块,此处不再详述。
综上所述,存储有目标条带包含的n个第一数据块的各个系统节点按照上述S101-S102的方法对其存储的第一数据块进行处理之后,各个系统节点可以将各自得到的CRC数据块进行存储,或者在必要时,系统节点将CRC数据块发送至某一运算节点。
本申请实施例中,由于上述各个系统节点可以将目标条带对应的CRC数据块发送至运算节点,系统节点无需向运算节点发送目标条带包含的所有数据块,并且CRC数据块远小于目标条带包含的数据块(目标条带包含的数据块与原始数据块的大小相同,该原始数据块为千字节(KB)的数据块,而CRC数据块为数十比特),因此根据目标条带包含的CRC数据块确定目标条带的条带一致性,能够节省消耗的网络资源。
基于上述目标条带的n个第一数据块对应的CRC数据块,采用如下方法确定该目标条带是否具有条带一致性,具体的,如图5所示,本申请实施例提供的确定条带一致性的方法可以包括S201-S203:
S201、运算节点获取目标条带对应的n组CRC数据块。
可选的,本申请实施例中,运算节点可以为存储有n个第一数据块的系统节点中的一个节点,运算节点也可以为数据存储系统中的其他系统节点(即除存储有n个第一数据块的系统节点之外的其他节点)。例如,目标条带的n个第一数据块存储于M个系统节点中,当运算节点是这M个系统节点中的一个节点时,运算节点获取目标条带对应的n组CRC数据块的过程具体包括:该运算节点读取该运算节点上存储的目标条带对应的CRC数据块(第一数据块的变换块,即第二数据块的CRC数据块),并且该运算节点从其他M-1个系统节点接收目标条带对应的CRC数据块。
当运算节点是除上述M个系统节点之外的其他节点时,该运算节点获取目标条带对应的n组CRC数据块的过程具体包括:该运算节点从M个系统节点接收目标条带对应的n组CRC数据块。
为了便于理解,如下表1示出了上述n个第一数据块、n组第二数据块以及n组CRC数据块之间的关系,n个第一数据块分别为B0,B1,...,Bn-1
表1
Figure BDA0002281113360000101
S202、运算节点确定n组CRC数据块是否满足线性关系。
结合上述表1,目标条带包含的n个第一数据块为{B0,B1,...,Bn-1},对该n个第一数据块分别进行第j次EC变换得到n个第二数据块为
Figure BDA0002281113360000103
并且该n个第二数据块
Figure BDA0002281113360000104
各自的CRC数据块为
Figure BDA0002281113360000105
可选的,上述运算节点确定n组CRC数据块是否满足线性关系的方法可以包括:运算节点确定n组CRC数据块是否满足
Figure BDA0002281113360000106
Figure BDA0002281113360000107
表示异或运算,可以理解的是,该连续异或的运算可以称为各个数据块的异或和。
Figure BDA0002281113360000102
上述公式(3)中的m个等式均成立的情况下,即说明n组CRC数据块满足线性关系。
应理解,本申请实施例中,n个数据块满足线性关系,即该n个的数据块的异或和为0;同理,若n个的数据块的异或和为0,即该n个数据块满足线性关系。
S203、若n组CRC数据块满足线性关系,则运算节点确定目标条带具有条带一致性。
结合图5,如图6所示,上述S203可以通过S2031-S2032实现:
S2031、运算节点根据n组CRC数据块满足线性关系的情况,确定n组第二数据块是否满足线性关系。
本申请实施例中,对于一组数据块,若该组数据块满足线性关系,则该组数据块对应的一组CRC数据块也满足线性关系。相反地,若该组数据块对应的一组CRC数据块不满足线性关系,则该组数据块一定不满足线性关系;若该组数据块对应的一组CRC数据块满足线性关系,则该组数据块不一定满足线性关系。
需要说明的是,在本申请实施例中,对于上述目标条带而言,若上述n组CRC数据块满足线性关系,则上述n组第二数据块以不小于(即大于或者等于)
Figure BDA0002281113360000111
的概率满足线性关系,其中,m是上述目标条带中EC数据块的数量,crclength表示一个CRC数据块的比特大小,例如CRC数据块的大小为16比特或32比特等。
S2032、若n组第二数据块满足线性关系,则运算节点确定目标条带具有条带一致性。
本申请实施例中,对于一个条带,该条带包含的n个数据块为B0,B1,...,Bn-1,该n个数据块组成的向量为[B0 B1 ...... Bn-2 Bn-1],该条带对应的EC变换矩阵H为:
Figure BDA0002281113360000112
结合上述实施例的相关描述,若条带具有条带一致性,则该条带满足等式H*vT=0,即为:
Figure BDA0002281113360000113
进一步的,将上述公式展开为如下m个等式:
Figure BDA0002281113360000114
由该m个等式可知:
Figure BDA0002281113360000115
由于
Figure BDA0002281113360000117
因此可以得出hi,0*B0,hi,1*B,……,hi,n-2*Bn-2,hi,n-1*Bn-1满足线性关系。
综上可知,条带中的所有数据块的变换结果(采用EC变换矩阵的变换结果)满足线性关系,则该条带具有条带一致性。
本申请实施例中,上述目标条带包含的n个第一数据块采用EC变换矩阵进行EC变换得到n组第二数据块满足线性关系,并且由于该n组第二数据块满足线性关系,因此,可以确定该目标条带具有条带一致性。
需要说明的是,由于上述n组CRC数据块满足线性关系,则上述n组第二数据块以不小于(即大于或者等于)
Figure BDA0002281113360000116
的概率满足线性关系,因此,在本申请实施例中,若n组CRC数据块满足线性关系,则运算节点确定目标条带具有条带一致性指的是:若n组CRC数据块满足线性关系,则运算节点确定目标条带以不小于
Figure BDA0002281113360000121
的概率满足条带一致性。
在一种实现方式中,在确定目标条带是否具有条带一致性的过程中,存储该目标条带中的n个第一数据块的M个系统节点中,可能部分系统节点中已存储有对应的CRC数据块(即系统节点已预先根据第一数据块确定第二数据块,并且确定出了第二数据块的CRC数据块),部分系统节点中未存储对应的CRC数据块。在这种情况下,未存储对应的CRC数据块的系统节点根据EC变换矩阵中对应的变换系数,先对其上存储的第一数据块进行EC变换,得到第二数据块,再确定第二数据块的CRC数据块,然后将CRC数据块发送至运算节点;并且已存储有对应的CRC数据块的系统节点也将其上存储的CRC数据块发送至运算节点,进而运算节点获取到目标条带对应的CRC数据块,并根据目标条带对应的CRC数据块确定该目标条带是否具有条带一致性。需要注意的是,该目标条带对应的CRC数据块的排列顺序与目标条带中n个第一数据块的排列顺序一致。
本申请实施例提供的确定条带一致性的方法,数据存储系统中的系统节点对目标条带包含的n个第一数据块进行EC变换,得到n组第二数据块,并对该n组第二数据块计算对应的n组CRC数据块;从而运算节点通过确定目标条带对应的n组CRC数据块是否满足线性关系,以确定该目标条带是否具有条带一致性。由于CRC数据块远小于目标条带包含的第一数据块的大小,运算节点从系统节点获取目标条带对应的CRC数据块,能够降低带宽消耗,并且由于CRC数据块较小,运算节点根据CRC数据块确定目标条带是否具有条带一致性,能够降低运算节点的计算量,降低资源消耗。综上,本申请实施例提供的确定条带一致性的方法能够降低确定条带一致性所消耗的网络资源。
本申请实施例可以根据上述方法示例对运算节点和系统节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图7示出了上述实施例中所涉及的运算节点的一种可能的结构示意图,如图7所示,运算节点可以包括:获取模块1001和确定模块1002。获取模块1001可以用于支持该运算节点执行上述方法实施例中的S201;确定模块1002可以用于支持该运算节点执行上述方法实施例中的S202和S203(包括S2031-S2032)。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图8示出了上述实施例中所涉及的运算节点的一种可能的结构示意图。如图8所示,运算节点可以包括:处理模块2001和通信模块2002。处理模块2001可以用于对该运算节点的动作进行控制管理,例如,处理模块2001可以用于支持该运算节点执行上述方法实施例中的S201-S203(包括S2031-S2032),和/或用于本文所描述的技术的其它过程。通信模块2002可以用于支持该运算节点与其他网络实体的通信。可选的,如图8所示,该运算节点还可以包括存储模块2003,用于存储该运算节点的程序代码和数据。
其中,处理模块2001可以是处理器或控制器(例如可以是上述如图2所示的处理器101),例如可以是CPU、通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种示例性的逻辑方框、模块和电路。上述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块2002可以是收发器、收发电路或通信接口等(例如可以是上述如图2所示的通信接口103)。存储模块2003可以是存储器(例如可以是上述如图2所示的存储器102)。
当处理模块2001为处理器,通信模块2002为收发器,存储模块2003为存储器时,处理器、收发器和存储器可以通过总线连接。总线可以是外设部件互连标准(peripheralcomponent interconnect,PCI)总线或扩展工业标准结构(extended Industry standardarchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。
在采用对应各个功能划分各个功能模块的情况下,图9示出了上述实施例中所涉及的系统节点的一种可能的结构示意图,如图9所示,系统节点可以包括:变换模块3001和确定模块3002。变换模块3001可以用于支持该系统节点执行上述方法实施例中的S101(包括S1011和S1012);确定模块3002可以用于支持该系统节点执行上述方法实施例中的S102。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图10示出了上述实施例中所涉及的系统节点的一种可能的结构示意图。如图10所示,系统节点可以包括:处理模块4001和通信模块4002。处理模块4001可以用于对该系统节点的动作进行控制管理,例如,处理模块4001可以用于支持该系统节点执行上述方法实施例中的S101(包括S1011和S1012)和S102,和/或用于本文所描述的技术的其它过程。通信模块4002可以用于支持该系统节点与其他网络实体的通信。可选的,如图10所示,该系统节点还可以包括存储模块4003,用于存储该系统节点的程序代码和数据。
其中,处理模块4001可以是处理器或控制器(例如可以是上述如图2所示的处理器101),例如可以是CPU、通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种示例性的逻辑方框、模块和电路。上述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块4002可以是收发器、收发电路或通信接口等(例如可以是上述如图2所示的通信接口103)。存储模块4003可以是存储器(例如可以是上述如图2所示的存储器102)。
当处理模块2001为处理器,通信模块4002为收发器,存储模块4003为存储器时,处理器、收发器和存储器可以通过总线连接。总线可以是PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。
本发明实施例中的运算节点可以是存储阵列的控制器、分布式存储系统中的存储节点或客户端。另一种实现方式,本发明实施例也可以由特定的硬件实现,如FPGA、GPU等。本发明实施例对此不作限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state drives,SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种确定条带一致性的方法,其特征在于,包括:
运算节点获取目标条带对应的n组循环冗余校验CRC数据块;所述目标条带包含n个第一数据块,所述n个第一数据块包括k个原始数据块和所述k个原始数据块的m个纠删码EC数据块;所述n组CRC数据块为n组第二数据块各自的CRC数据块;其中,在所述n组第二数据块中的一组第二数据块包括对相应的一个第一数据块进行m次EC变换得到的m个变换结果;其中,k与m均为正整数,n=m+k;
所述运算节点确定所述n组CRC数据块是否满足线性关系;
若所述n组CRC数据块满足线性关系,则所述运算节点确定所述目标条带具有条带一致性。
2.根据权利要求1所述的方法,其特征在于,对所述目标条带包含的n个第一数据块{B0,B1,...,Bn-1}分别进行第j次EC变换得到n个第二数据块为
Figure FDA0002281113350000011
所述n个第二数据块
Figure FDA0002281113350000012
各自的CRC数据块为
Figure FDA0002281113350000013
所述运算节点确定所述n组CRC数据块是否满足线性关系,包括:
所述运算节点确定所述n组CRC数据块是否满足
Figure FDA0002281113350000014
Figure FDA0002281113350000015
表示异或运算。
3.根据权利要求1或2所述的方法,其特征在于,所述运算节点确定所述目标条带具有条带一致性,包括:
所述运算节点根据所述n组CRC数据块满足线性关系的情况,确定所述n组第二数据块是否满足线性关系;
若所述n组第二数据块满足线性关系,则所述运算节点确定所述目标条带具有条带一致性。
4.一种确定条带一致性的方法,其特征在于,包括:
系统节点对所述系统节点上的p个第一数据块进行纠删码EC变换,得到p组第二数据块;所述p个第一数据块为目标条带中的数据块,所述目标条带包括n个第一数据块,所述n个第一数据块存储于至少一个系统节点中,所述n个第一数据块包括k个原始数据块和所述k个原始数据块的m个EC数据块;其中,在所述p组第二数据块中的一组第二数据块包括对相应的一个第一数据块进行m次EC变换得到的m个变换结果;其中,k与m均为正整数,n=m+k,p为小于或等于n个正整数;
所述系统节点确定所述p组第二数据块各自的循环冗余校验CRC数据块,得到p组CRC数据块,所述p组CRC数据块用于确定所述目标条带是否具有条带一致性。
5.根据权利要求4所述的方法,其特征在于,所述系统节点对一个第一数据块进行EC变换,包括:
所述系统节点确定EC变换矩阵中第一位置对应的m个EC变换系数,所述第一位置为所述第一数据块在所述目标条带中的位置;
所述系统节点根据所述m个EC变换系数对所述第一数据块进行EC变换,得到一组第二数据块。
6.根据权利要求4或5所述的方法,其特征在于,所述方法包括:
所述系统节点向运算节点发送所述p组CRC数据块。
7.一种运算节点,其特征在于,包括获取模块和确定模块;
所述获取模块,用于获取目标条带对应的n组循环冗余校验CRC数据块;所述目标条带包含n个第一数据块,所述n个第一数据块包括k个原始数据块和所述k个原始数据块的m个纠删码EC数据块;所述n组CRC数据块为n组第二数据块各自的CRC数据块;其中,在所述n组第二数据块中的一组第二数据块包括对相应的一个第一数据块进行m次EC变换得到的m个变换结果;其中,n为大于或等于2的正整数,m为小于n的正整数,n=m+k;
所述确定模块,用于确定所述n组CRC数据块是否满足线性关系;并且在所述n组CRC数据块满足线性关系的情况下,确定所述目标条带具有条带一致性。
8.根据权利要求7所述的运算节点,其特征在于,对所述目标条带包含的n个第一数据块{B0,B1,...,Bn-1}分别进行第j次EC变换得到n个第二数据块为
Figure FDA0002281113350000021
所述n个第二数据块
Figure FDA0002281113350000022
各自的CRC数据块为
Figure FDA0002281113350000023
所述确定模块,具体用于确定所述n组CRC数据块是否满足
Figure FDA0002281113350000024
Figure FDA0002281113350000025
Figure FDA0002281113350000026
表示异或运算。
9.根据权利要求7或8所述的运算节点,其特征在于,
所述确定模块,具体用于根据所述n组CRC数据块满足线性关系的情况,确定所述n组第二数据块是否满足线性关系;并且在所述n组第二数据块满足线性关系的情况下,确定所述目标条带具有条带一致性。
10.一种系统节点,其特征在于,包括变换模块和确定模块;
所述变换模块,用于对所述系统节点上的p个第一数据块进行纠删码EC变换,得到p组第二数据块;所述p个第一数据块为目标条带中的数据块,所述目标条带包括n个第一数据块,所述n个第一数据块存储于至少一个系统节点中,所述n个第一数据块包括k个原始数据块和所述k个原始数据块的m个EC数据块;其中,在所述p组第二数据块中的一组第二数据块包括对相应的一个第一数据块进行m次EC变换得到的m个变换结果;其中,n为大于或等于2的正整数,m为小于n的正整数,p为小于或等于n个正整数,n=m+k;
所述确定模块,用于确定所述p组第二数据块各自的循环冗余校验CRC数据块,得到p组CRC数据块,所述p组CRC数据块用于确定所述目标条带是否具有条带一致性。
11.根据权利要求10所述的系统节点,其特征在于,
所述确定模块,具体用于确定EC变换矩阵中第一位置对应的m个EC变换系数,所述第一位置为所述第一数据块在所述目标条带中的位置;
所述变换模块,具体用于根据所述m个EC变换系数对所述第一数据块进行EC变换,得到一组第二数据块。
12.根据权利要求10或11所述的系统节点,其特征在于,所述系统节点还包括发送模块;
所述发送模块,用于向运算节点发送所述p组CRC数据块。
13.一种运算节点,其特征在于,包括处理器和与所述处理器耦合连接的存储器;所述存储器用于存储计算机指令,当所述运算节点运行时,处理器执行存储器存储的所述计算机指令,以使得所述运算节点执行如权利要求1至3任一项所述的方法。
14.一种系统节点,其特征在于,包括处理器和与所述处理器耦合连接的存储器;所述存储器用于存储计算机指令,当所述系统节点运行时,处理器执行存储器存储的所述计算机指令,以使得所述系统节点执行如权利要求4至6任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质可以包括计算机指令,当所述计算机指令在计算机上运行时,以执行如权利要求1至3任一项所述的方法或如权利要求4至6任一项所述的方法。
CN201911141650.7A 2019-11-20 2019-11-20 确定条带一致性的方法及装置 Pending CN112825052A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201911141650.7A CN112825052A (zh) 2019-11-20 2019-11-20 确定条带一致性的方法及装置
EP20890994.5A EP4050485A4 (en) 2019-11-20 2020-11-05 METHOD AND DEVICE FOR DETERMINING BAND COHERENCE
PCT/CN2020/126855 WO2021098526A1 (zh) 2019-11-20 2020-11-05 确定条带一致性的方法及装置
US17/746,188 US12099404B2 (en) 2019-11-20 2022-05-17 Method for determining stripe consistency and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911141650.7A CN112825052A (zh) 2019-11-20 2019-11-20 确定条带一致性的方法及装置

Publications (1)

Publication Number Publication Date
CN112825052A true CN112825052A (zh) 2021-05-21

Family

ID=75907011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911141650.7A Pending CN112825052A (zh) 2019-11-20 2019-11-20 确定条带一致性的方法及装置

Country Status (4)

Country Link
US (1) US12099404B2 (zh)
EP (1) EP4050485A4 (zh)
CN (1) CN112825052A (zh)
WO (1) WO2021098526A1 (zh)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636724B2 (en) * 2001-08-31 2009-12-22 Peerify Technologies LLC Data storage system and method by shredding and deshredding
US7024586B2 (en) * 2002-06-24 2006-04-04 Network Appliance, Inc. Using file system information in raid data reconstruction and migration
US10289688B2 (en) * 2010-06-22 2019-05-14 International Business Machines Corporation Metadata access in a dispersed storage network
US20100218037A1 (en) * 2008-09-16 2010-08-26 File System Labs Llc Matrix-based Error Correction and Erasure Code Methods and Apparatus and Applications Thereof
WO2012089701A1 (en) * 2010-12-27 2012-07-05 Amplidata Nv A distributed object storage system comprising performance optimizations
US8910031B1 (en) * 2011-03-29 2014-12-09 Emc Corporation DIF-CRC based fast hashing
IN2013KO01274A (zh) * 2013-11-08 2015-05-15 Lsi Corp
US20170161148A1 (en) * 2015-12-02 2017-06-08 Netapp, Inc. Detection of and recovery from silent data loss in an erasure-coded storage system
US10698765B2 (en) * 2015-12-23 2020-06-30 Intel Corporation Techniques to recover data in a network storage system
WO2017113276A1 (zh) * 2015-12-31 2017-07-06 华为技术有限公司 分布式存储系统中的数据重建的方法、装置和系统
CN106708651B (zh) * 2016-11-16 2020-09-11 北京三快在线科技有限公司 基于纠删码的部分写入方法及装置、存储介质、设备
CN106681848B (zh) * 2016-12-13 2019-10-18 中国科学院计算技术研究所 一种纠删码raid的数据一致性保障方法及系统
US10705911B2 (en) * 2017-04-24 2020-07-07 Hewlett Packard Enterprise Development Lp Storing data in a distributed storage system
CN107273048B (zh) * 2017-06-08 2020-08-04 浙江大华技术股份有限公司 一种数据写入方法及装置
CN107908499B (zh) * 2017-11-02 2021-03-05 华为技术有限公司 一种数据校验方法及装置
CN111124249B (zh) * 2018-10-30 2023-09-22 伊姆西Ip控股有限责任公司 用于数据处理的方法、设备和计算机程序产品
CN109992445B (zh) * 2019-04-11 2020-10-02 苏州浪潮智能科技有限公司 一种修改写操作的处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US12099404B2 (en) 2024-09-24
WO2021098526A1 (zh) 2021-05-27
US20220276925A1 (en) 2022-09-01
EP4050485A1 (en) 2022-08-31
EP4050485A4 (en) 2022-12-28

Similar Documents

Publication Publication Date Title
CN111090628B (zh) 一种数据处理方法、装置、存储介质及电子设备
US10013191B2 (en) Encoding data for storage in a dispersed storage network
US10949129B2 (en) Adjusting data ingest based on compaction rate in a dispersed storage network
WO2020173092A1 (zh) 数据处理方法、独立硬盘冗余阵列控制器和数据存储系统
WO2016107377A1 (zh) 一种基于准循环ldpc的数据处理方法及系统
US20210144394A1 (en) Method and system for hybrid video coding
US10528282B2 (en) Modifying and utilizing a file structure in a dispersed storage network
CN110572164A (zh) Ldpc译码方法、装置、计算机设备及存储介质
US20190238481A1 (en) Partial task execution in a dispersed storage network
US10430123B2 (en) Hierarchical data recovery processing for extended product codes
US20180336099A1 (en) Tracking data access in a dispersed storage network
CN111857549B (zh) 用于管理数据的方法、设备和计算机程序产品
CN112825052A (zh) 确定条带一致性的方法及装置
CN104583965A (zh) 将编码数据文件存储在多个文件服务器上
WO2019214266A1 (zh) 计算crc编码的方法和装置
CN107463462B (zh) 数据修复方法及数据修复装置
CN117349075A (zh) 一种数据处理方法及相关设备
CN114138543A (zh) 数据条带编码方法、系统、设备及介质
US20190034272A1 (en) Utilizing concentric storage pools in a dispersed storage network
WO2024179488A1 (zh) 译码方法、装置、系统及计算机可读存储介质
WO2021146967A1 (zh) 低密度奇偶校验码编码方法和编码器
CN111858129A (zh) 一种纠删码读请求处理方法、系统、设备及计算机介质
WO2023231313A1 (zh) 数据压缩方法、装置、设备及存储介质
US20240086154A1 (en) Logic circuit for anti-circular shift-and-add multiplication
US20230394711A1 (en) Point cloud prediction processing methods and apparatuses, computer, and storage medium

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