CN110618895B - 一种基于纠删码的数据更新方法、装置和存储介质 - Google Patents
一种基于纠删码的数据更新方法、装置和存储介质 Download PDFInfo
- Publication number
- CN110618895B CN110618895B CN201910929331.6A CN201910929331A CN110618895B CN 110618895 B CN110618895 B CN 110618895B CN 201910929331 A CN201910929331 A CN 201910929331A CN 110618895 B CN110618895 B CN 110618895B
- Authority
- CN
- China
- Prior art keywords
- data
- updated
- block
- check
- data block
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种基于纠删码的数据更新方法、装置和存储介质,用以降低纠删码更新操作过程中,网络和磁盘带宽的开销。基于纠删码的数据更新方法,包括:获得待更新数据对应的预编码,所述待更新数据包含至少一个数据块;读取所述待更新数据对应的原校验值;针对每一校验块,根据所述预编码和该校验块的原校验值确定该校验块的新校验值;向待更新数据块中写入新数据,以及向各校验块中写入该校验块的新校验值。
Description
技术领域
本发明涉及软件定义存储技术领域,尤其涉及一种基于纠删码的数据更新方法、装置和存储介质。
背景技术
随着海量存储系统的发展和在复杂环境中的应用,存储系统的可靠性受到了严重的挑战。提高存储系统可靠性以及保障数据可用性已成为企业的研究重点。现有的分布式存储系统中,绝大多数是通过多副本技术来提升系统可靠性、可用性、性能以及可扩展性。但在大数据时代,存储规模越来越大,多副本技术的系统开销将越来越大。
相对于副本技术,纠删码技术具有更高存储效率,并且能降低网络中的数据流量。但纠删码读写时候对IO(Input/Output,输入/输出)大小要求比较高,需要满条带读写,如果IO大小不能满足条带大小对齐,需要先读取头尾部分数据来补齐条带。这样,一个IO请求就会变成多次IO请求,大大增加了网络和磁盘带宽消耗。对于普通的纠删码更新操作(小块写),如果数据远小于条带大小,为了补齐条带所消耗的读开销将远大于更新操作本身的写开销。
发明内容
本发明提供一种基于纠删码的数据更新方法、装置和存储介质,用以降低纠删码更新操作过程中,网络和磁盘带宽的开销。
本发明实施例提供一种基于纠删码的数据更新方法,包括:
获得待更新数据对应的预编码,所述待更新数据包含至少一个数据块;
读取所述待更新数据对应的原校验值;
针对每一校验块,根据所述预编码和该校验块的原校验值确定该校验块的新校验值;
向待更新数据块中写入新数据,以及向各校验块中写入该校验块的新校验值。
在一个实施例中,针对每一校验块,根据所述预编码和该校验块的原校验值确定该校验块的新校验值,具体包括:
针对每一校验块,将所述预编码与该校验块对应的原校验值进行异或得到该校验块对应的新校验值。
在一个实施例中,按照以下方法获得待更新数据对应的预编码:
针对每一待更新数据块,读取该待更新数据块的原数据;
根据该待更新数据块的原数据和新数据之和以及编码矩阵中该待更新数据块对应位置处的编码,确定该待更新数据块对应的编码信息;
确定每一待更新数据块的编码信息之和为待更新数据对应的预编码。
在一个实施例中,针对每一待更新数据块,从该待更新数据块读取原数据,具体包括:
针对每一待更新数据块,根据数据存储起始地址和该待更新数据块对应的偏移量,确定该待更新数据块的存储位置;
从确定出的存储位置读取该待更新数据块的原数据。
本发明实施例还提供一种基于纠删码的数据更新装置,包括:
获得单元,用于获得待更新数据对应的预编码,所述待更新数据包含至少一个数据块;
读取单元,用于读取所述待更新数据对应的原校验值;
确定单元,用于针对每一校验块,根据所述预编码和该校验块的原校验值确定该校验块的新校验值;
写入单元,用于向待更新数据块中写入新数据,以及向各校验块中写入该校验块的新校验值。
在一个实施例中,所述确定单元,具体用于针对每一校验块,将所述预编码与该校验块对应的原校验值进行异或得到该校验块对应的新校验值。
在一个实施例中,所述获得单元,具体用于针对每一待更新数据块,读取该待更新数据块的原数据;根据该待更新数据块的原数据和新数据之和以及编码矩阵中该待更新数据块对应位置处的编码,确定该待更新数据块对应的编码信息;确定每一待更新数据块的编码信息之和为待更新数据对应的编码信息。
在一个实施例中,所述获得单元,具体用于针对每一待更新数据块,根据数据存储起始地址和该待更新数据块对应的偏移量,确定该待更新数据块的存储位置;从确定出的存储位置读取该待更新数据块的原数据。
本发明实施例还提供一种计算装置,所述计算装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一基于纠删码的数据更新方法的步骤。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一基于纠删码的数据更新方法的步骤。
采用上述技术方案,本发明至少具有下列优点:
本发明所述基于纠删码的数据更新方法、装置和存储介质,在进行数据更新过程中,只涉及需要被更新的数据块和校验块进行读写操作,无需满条带读写,从而降低了数据更新过程中网络和磁盘带宽的开销。
附图说明
图1为本发明实施例的分布式块存储系统架构示意图;
图2为本发明实施例的n+r纠删码存储虚拟磁盘示意图;
图3为现有的纠删码编码示意图;
图4为现有的纠删码卷写入示意图;
图5为现有的纠删码卷更新流程示意图;
图6为本发明实施例的基于纠删码的数据更新方法实施流程示意图;
图7为本发明实施例的基于纠删码的数据更新流程示意图;
图8为发明实施例的基于纠删码的数据更新装置结构示意图;
图9为本发明实施例的计算装置的结构示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
首先对本发明实施例中涉及的名词进行解释,以便更好的理解本发明实施例。
条带(stripe)是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中的不同磁盘上的方法。条带是一种将多个磁盘驱动器合并为一个卷的方法。磁盘条带化是指也就是将一块连续的数据分成很多小部分,并把它们分别存储到不同磁盘上,这里不同磁盘一般是指磁盘阵列。这样进程在访问数据的时候,可以同时向多个不同部分同时发出I/O请求,由于这些数据存放在不同的磁盘上,因而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的I/O并行能力,从而获得非常好的性能。
需要说明的是,本发明实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
如图1所示,其为本发明实施例中的分布式块存储系统架构示意图,包括控制主机11和存储主机12,其中,控制主机11用于生成虚拟磁盘,作为存储数据路径的前端主机,完成数据接收、转发等功能;存储主机12用于分布式块存储系统中,数据最终的存放地点,将存储资源抽象成多个存储组件,每个组件由大型的稀疏文件链组成。
如图2所示,其为n+r纠删码存储虚拟磁盘示意图,其包含n个数据组件,r个校验组件。
如图3所示,其为现有的纠删码编码示意图,其中,左边为编码矩阵,中间为数据向量,右边为数据向量和校验向量。
如图4所示,其为纠删码卷写入示意图,现在前端控制主机编码,再根据数据块和校验块的存储位置,发送给对应的后端存储组件,其中,数据块和校验块的存储位置由数据存储起始地址与数据块或者校验块的偏移量组成。
如图5所示,其为现有的纠删码卷更新流程示意图,当更新个别数据块时,对应的校验块也必须更新,现在前端控制主机编码,再根据数据块和校验块的存储位置,发送给对应后端存储组件。为了计算新的校验值,需要读取该条带内其他不需要更新的数据块补齐条带。
由于现有的纠删码读写时对IO大小要求比较高,需要满条带读写,如果IO大小不能满足条带大小对齐,需要先读取头尾部分数据来补齐条带,这样,一次IO请求就会变成多次IO请求,大大增加了网络和磁盘带宽消耗。对于普通的纠删码更新操作,如果数据远小于条带大小,为了补齐条带所消耗的读开销,将远大于更新操作本身的写开销,降低了IO效率。有鉴于此,本发明实施例提供了一种基于纠删码的数据更新方法,用以减少数据更新过程中网络和磁盘带宽的开销。
首先,对本发明实施例提供的基于纠删码的数据更新方法实施原理进行介绍。
根据RS纠删码的计算原理,第i个校验值的计算公式如下:
Pi=Bi1Di+Bi2D2+…+BinDn (1)
假设卷已存在的数据块为[D′1,D′2,…,D′n],已存在的校验块为[P′1,P′2,…,P′r],那么有:
P′i=Bi1D′1+Bi2D′2+…+BinD′n (2)
如果此时更新了[Da,…,Db],(0≤a≤b≤n),新数据块记为[D″a,…,D″b],新的校验块为[P″1,P″2,…,P″r],则有:
P″i=Bi1D′1+Bi2D′2+BiaD″a+…BibD″b+BinD′n (3)
由于纠删码算法的运算是伽罗瓦域运算,在伽罗瓦域中加法运算是异或运算,由公式(2)和公式(3)相加可得:
P′i+P″i=Bia(D′a+D″a)+…Bib(D′b+D″b) (4)
公式(4)左右两边同时加上P′i,可得:
P″i=Bia(D′a+D″a)+…Bib(D′b+D″b)+P′i (5)
基于此,本发明实施例提供了一种基于纠删码的数据更新方法,如图6所示,可以包括以下步骤:
S61、获得待更新数据对应的预编码。
其中,待更新数据包含至少一个数据块,需要说明的是,待更新数据的数据块在存储组件中的存储位置可以是连续的,也可以是不连续的。
具体实施时,针对每一待更新数据块,读取该待更新数据块的原数据。具体地,可以根据数据存储起始地址和该待更新数据块对应的偏移量从存储组件的相应存储位置读取该更新数据块的原数据。
根据该待更新数据块的原数据和新数据之和以及编码矩阵中该待更新数据块对应位置处的编码,确定该待更新数据块对应的编码信息。
具体地,针对每一待更新数据块,可以根据以下公式确定待更新数据块对应的编码信息:Wa=Ba(D′a+D″a),其中,Wa表示第a个数据块对应的编码信息,D'a表示第a个数据块存储的原数据,D″a表示第a个数据块更新后的新数据,Ba表示编码矩阵中,第a列的编码,根据不同的校验块,可以确定编码矩阵的行号,这样,对于每一校验块来说,第a个数据块对应的编码矩阵中相应位置处的编码是唯一的。
例如,对于第i个校验块,可以按照以下公式确定第a个数据块对应的编码信息:Wia=Bia(D′a+D″a)。
确定出每一待更新数据块对应的编码信息之后,将各待更新数据块的编码信息之和作为待更新数据对应的预编码。
S62、读取待更新数据对应的原校验值。
本步骤中,可以根据数据存储起始地址和校验值对应的偏移量,从相应的存储位置读取原校验值。
S63、针对每一校验块,根据获得的预编码和该校验块的原校验值确定该校验块的新校验值。
本步骤中,针对每一校验块,将步骤S61中获得的预编码与该校验块对应的原校验值进行异或得到该校验块对应的新校验值。
具体地,针对第i个校验块,可以按照以下公式确定该校验块的新校验值:
P″i=Bia(D′a+D″a)+…Bib(D′b+D″b)+P′i,其中,P″i表示第i个校验块的新校验值,Bia表示编码矩阵中第i行校验码中第a列处的编码,D′a表示第a个数据块存储的原数据,D″a表示第a个数据块更新后的新数据,Bib表示编码矩阵中第i行校验码中第b列处的编码,D′b表示第b个数据块存储的原数据,D″b表示第b个数据块更新后的新数据,其中,a,b均表示待更新数据的数据块标识。
S64、向待更新数据块中写入新数据,以及向各校验块中写入该校验块的新校验值。
如图7所示,其为本发明实施例提供的基于纠删码的数据更新流程示意图。本发明实施例中,先根据需要更新的数据块进行预编码,然后把预编码的结果与各校验块的原校验值进行异或运算得到信校验值后,发送给对应的后端存储组件。
在上述过程中,只需针对需要更新的数据块进行预编码,然后把预编码的结果与校验块的原校验值进行异或运算得到新的校验值,整个过程不用涉及不需要更新的数据块,从而能够减少数据更新过程中,网络和磁盘带宽的消耗,加快数据更新速度,提高数据更新的效率。
假设n代表原始数据块个数,r代表校验块个数,更新的数据块个数为m。一般的纠删码卷更新流程(图5所示)需要n-m次读请求,m+r次写请求,n+r次网络传输,编码效率为r*n次乘法运算和r*(n-1)次加法运算。使用纠删码卷快速更新流程(图7所示)需要m+r次读请求,m+r次写请求,r次网络传输,编码效率为r*m次乘法运算和(r+1)*m次加法运算。假设使用8+2纠删码,8个数据块和2个校验块,使用纠删码卷快速更新方案比一般的更新方案磁盘IO可以减少50%,网络IO减少80%,CPU运算可以减少83%左右。快速更新流程无论是在读IO,网络传输和CPU运算的开销都比一般的更新流程低,大大降低网络带宽和磁盘带宽的消耗和编码的CPU消耗。
基于相同的发明构思,本发明实施例还提供了一种基于纠删码的数据更新装置,如图8所示,可以包括:
获得单元81,用于获得待更新数据对应的预编码,所述待更新数据包含至少一个数据块;
读取单元82,用于读取所述待更新数据对应的原校验值;
确定单元83,用于针对每一校验块,根据所述预编码和该校验块的原校验值确定该校验块的新校验值;
写入单元84,用于向待更新数据块中写入新数据,以及向各校验块中写入该校验块的新校验值。
在一个实施例中,所述确定单元,具体用于针对每一校验块,将所述预编码与该校验块对应的原校验值进行异或得到该校验块对应的新校验值。
在一个实施例中,所述获得单元,具体用于针对每一待更新数据块,读取该待更新数据块的原数据;根据该待更新数据块的原数据和新数据之和以及编码矩阵中该待更新数据块对应位置处的编码,确定该待更新数据块对应的编码信息;确定每一待更新数据块的编码信息之和为待更新数据对应的编码信息。
在一个实施例中,所述获得单元,具体用于针对每一待更新数据块,根据数据存储起始地址和该待更新数据块对应的偏移量,确定该待更新数据块的存储位置;从确定出的存储位置读取该待更新数据块的原数据。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本发明时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
在介绍了本发明示例性实施方式的基于纠删码的数据更新方法和装置之后,接下来,介绍根据本发明的另一示例性实施方式的计算装置。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的计算装置可以至少包括至少一个处理器、以及至少一个存储器。其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行本说明书上述描述的根据本发明各种示例性实施方式的基于纠删码的数据更新方法中的步骤。例如,所述处理器可以执行如图6中所示的步骤S61、获得待更新数据对应的预编码,和步骤S62、读取待更新数据对应的原校验值;以及步骤S63、针对每一校验块,根据获得的预编码和该校验块的原校验值确定该校验块的新校验值;步骤S64、向待更新数据块中写入新数据,以及向各校验块中写入该校验块的新校验值。
下面参照图9来描述根据本发明的这种实施方式的计算装置90。图9显示的计算装置90仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算装置90以通用计算设备的形式表现。计算装置90的组件可以包括但不限于:上述至少一个处理器91、上述至少一个存储器92、连接不同系统组件(包括存储器92和处理器91)的总线93。
总线93表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器92可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)921和/或高速缓存存储器922,还可以进一步包括只读存储器(ROM)923。
存储器92还可以包括具有一组(至少一个)程序模块924的程序/实用工具925,这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置90也可以与一个或多个外部设备94(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置90交互的设备通信,和/或与使得该计算装置90能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口95进行。并且,计算装置90还可以通过网络适配器96与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器96通过总线93与用于计算装置90的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置90使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本发明提供的基于纠删码的数据更新方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本发明各种示例性实施方式的基于纠删码的数据更新方法中的步骤,例如,所述计算机设备可以执行如图6中所示的步骤S61、获得待更新数据对应的预编码,和步骤S62、读取待更新数据对应的原校验值;以及步骤S63、针对每一校验块,根据获得的预编码和该校验块的原校验值确定该校验块的新校验值;步骤S64、向待更新数据块中写入新数据,以及向各校验块中写入该校验块的新校验值。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本发明的实施方式的用于基于纠删码的数据更新的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于纠删码的数据更新方法,其特征在于,包括:
获得待更新数据对应的预编码,所述待更新数据包含至少一个数据块;
读取所述待更新数据对应的原校验值;
针对每一校验块,根据所述预编码和该校验块的原校验值进行异或计算确定该校验块的新校验值,以使得未更新的数据块不涉及写入处理;
向待更新数据块中写入新数据,以及向各校验块中写入该校验块的新校验值。
2.根据权利要求1所述的方法,其特征在于,针对每一校验块,根据所述预编码和该校验块的原校验值确定该校验块的新校验值,具体包括:
针对每一校验块,将所述预编码与该校验块对应的原校验值进行异或得到该校验块对应的新校验值。
3.根据权利要求1所述的方法,其特征在于,按照以下方法获得待更新数据对应的预编码:
针对每一待更新数据块,读取该待更新数据块的原数据;
根据该待更新数据块的原数据和新数据之和以及编码矩阵中该待更新数据块对应位置处的编码,确定该待更新数据块对应的编码信息;
确定每一待更新数据块的编码信息之和为待更新数据对应的预编码。
4.根据权利要求3所述的方法,其特征在于,针对每一待更新数据块,从该待更新数据块读取原数据,具体包括:
针对每一待更新数据块,根据数据存储起始地址和该待更新数据块对应的偏移量,确定该待更新数据块的存储位置;
从确定出的存储位置读取该待更新数据块的原数据。
5.一种基于纠删码的数据更新装置,其特征在于,包括:
获得单元,用于获得待更新数据对应的预编码,所述待更新数据包含至少一个数据块;
读取单元,用于读取所述待更新数据对应的原校验值;
确定单元,用于针对每一校验块,根据所述预编码和该校验块的原校验值进行异或计算确定该校验块的新校验值,以使得未更新的数据块不涉及写入处理;
写入单元,用于向待更新数据块中写入新数据,以及向各校验块中写入该校验块的新校验值。
6.根据权利要求5所述的装置,其特征在于,
所述确定单元,具体用于针对每一校验块,将所述预编码与该校验块对应的原校验值进行异或得到该校验块对应的新校验值。
7.根据权利要求6所述的装置,其特征在于,
所述获得单元,具体用于针对每一待更新数据块,读取该待更新数据块的原数据;根据该待更新数据块的原数据和新数据之和以及编码矩阵中该待更新数据块对应位置处的编码,确定该待更新数据块对应的编码信息;确定每一待更新数据块的编码信息之和为待更新数据对应的预编码。
8.根据权利要求7所述的装置,其特征在于,
所述获得单元,具体用于针对每一待更新数据块,根据数据存储起始地址和该待更新数据块对应的偏移量,确定该待更新数据块的存储位置;从确定出的存储位置读取该待更新数据块的原数据。
9.一种计算装置,其特征在于,所述计算装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至4中任一项所述的方法的步骤。
10.一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910929331.6A CN110618895B (zh) | 2019-09-29 | 2019-09-29 | 一种基于纠删码的数据更新方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910929331.6A CN110618895B (zh) | 2019-09-29 | 2019-09-29 | 一种基于纠删码的数据更新方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110618895A CN110618895A (zh) | 2019-12-27 |
CN110618895B true CN110618895B (zh) | 2023-06-09 |
Family
ID=68924721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910929331.6A Active CN110618895B (zh) | 2019-09-29 | 2019-09-29 | 一种基于纠删码的数据更新方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110618895B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463040B (zh) * | 2020-11-18 | 2022-07-08 | 苏州浪潮智能科技有限公司 | 一种数据写入方法、装置、电子设备及存储介质 |
CN112713964B (zh) * | 2020-12-22 | 2022-08-05 | 潍柴动力股份有限公司 | 数据校验加速方法、装置、计算机设备及存储介质 |
CN112947858B (zh) * | 2021-02-25 | 2023-04-25 | 浪潮电子信息产业股份有限公司 | 一种raid 5校验值的更新方法、装置和介质 |
CN113031869B (zh) * | 2021-03-25 | 2023-02-03 | 联想凌拓科技有限公司 | 一种数据处理方法、设备及计算机可读存储介质 |
CN113311993B (zh) * | 2021-03-26 | 2024-04-26 | 阿里巴巴创新公司 | 数据存储方法及数据读取方法 |
CN113626250B (zh) * | 2021-07-08 | 2024-06-28 | 华中科技大学 | 一种基于纠删码的条带合并方法及系统 |
CN114003174A (zh) * | 2021-11-01 | 2022-02-01 | 联想(北京)有限公司 | 一种纠删码存储方法、系统及电子设备 |
CN113901069B (zh) | 2021-12-08 | 2022-03-15 | 威讯柏睿数据科技(北京)有限公司 | 一种分布式数据库的数据存储方法和装置 |
CN115469818B (zh) * | 2022-11-11 | 2023-03-24 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列写处理方法、装置、设备及介质 |
CN116501262B (zh) * | 2023-06-19 | 2023-09-19 | 新华三信息技术有限公司 | 一种数据存储方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719086A (zh) * | 2009-11-30 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 磁盘阵列容错处理方法和装置及容错系统 |
CN106788468A (zh) * | 2016-11-28 | 2017-05-31 | 北京三快在线科技有限公司 | 一种纠删码更新方法及装置,电子设备 |
CN110190926A (zh) * | 2019-04-26 | 2019-08-30 | 华中科技大学 | 基于网络计算的纠删码修复方法、纠删码更新方法及系统 |
CN110262922A (zh) * | 2019-05-15 | 2019-09-20 | 中国科学院计算技术研究所 | 基于副本数据日志的纠删码更新方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2519815A (en) * | 2013-10-31 | 2015-05-06 | Ibm | Writing data cross storage devices in an erasure-coded system |
-
2019
- 2019-09-29 CN CN201910929331.6A patent/CN110618895B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719086A (zh) * | 2009-11-30 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 磁盘阵列容错处理方法和装置及容错系统 |
CN106788468A (zh) * | 2016-11-28 | 2017-05-31 | 北京三快在线科技有限公司 | 一种纠删码更新方法及装置,电子设备 |
CN110190926A (zh) * | 2019-04-26 | 2019-08-30 | 华中科技大学 | 基于网络计算的纠删码修复方法、纠删码更新方法及系统 |
CN110262922A (zh) * | 2019-05-15 | 2019-09-20 | 中国科学院计算技术研究所 | 基于副本数据日志的纠删码更新方法及系统 |
Non-Patent Citations (2)
Title |
---|
一种网络编码分布式存储系统中的数据更新策略;刘冰星等;《小型微型计算机系统》;20170315(第03期);231-236页 * |
多重条带布局的混合RAID系统研究;蔡杰明等;《小型微型计算机系统》;20170515(第05期);233-241页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110618895A (zh) | 2019-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110618895B (zh) | 一种基于纠删码的数据更新方法、装置和存储介质 | |
Rashmi et al. | Having your cake and eating it too: Jointly optimal erasure codes for {I/O}, storage, and network-bandwidth | |
Kosaian et al. | Parity models: erasure-coded resilience for prediction serving systems | |
US9595979B2 (en) | Multiple erasure codes for distributed storage | |
US10001944B2 (en) | Systems and methods for data organization in storage systems using large erasure codes | |
US20180024771A1 (en) | Storage Sled and Techniques for a Data Center | |
US9405625B2 (en) | Optimizing and enhancing performance for parity based storage | |
US9575657B2 (en) | Dataset replica migration | |
US10031807B2 (en) | Concurrent data retrieval in networked environments | |
US11347589B2 (en) | Evaluation for rebuilding performance of redundant arrays of independent disks | |
US10346066B2 (en) | Efficient erasure coding of large data objects | |
US11074130B2 (en) | Reducing rebuild time in a computing storage environment | |
JP2017204281A (ja) | ストレージシステム、装置およびストレージシステムの方法 | |
US9542107B2 (en) | Flash copy relationship management | |
Pirahandeh et al. | Energy-aware and intelligent storage features for multimedia devices in smart classroom | |
Kosaian et al. | Parity models: A general framework for coding-based resilience in ML inference | |
US11861175B2 (en) | Latency in data storage systems | |
US10152248B2 (en) | Erasure coding for elastic cloud storage | |
US20120303893A1 (en) | Writing of data of a first block size in a raid array that stores and mirrors data in a second block size | |
US20170220441A1 (en) | In-memory data storage with adaptive memory fault tolerance | |
US10664201B2 (en) | Considering input/output workload and space usage at a plurality of logical devices to select one of the logical devices to use to store an object | |
GB2530043A (en) | Device and method for storing data in a plurality of multi-level cell memory chips | |
KR101616347B1 (ko) | 범용 그래픽 프로세서 기반 클라우드 스토리지의 소거 코딩 방법 | |
GB2525613A (en) | Reduction of processing duplicates of queued requests | |
US20160036563A1 (en) | Distributed reed-solomon codes for simple multiple access networks |
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 |