CN101452409A - 数据校验冗余方法及装置 - Google Patents

数据校验冗余方法及装置 Download PDF

Info

Publication number
CN101452409A
CN101452409A CNA2007101717191A CN200710171719A CN101452409A CN 101452409 A CN101452409 A CN 101452409A CN A2007101717191 A CNA2007101717191 A CN A2007101717191A CN 200710171719 A CN200710171719 A CN 200710171719A CN 101452409 A CN101452409 A CN 101452409A
Authority
CN
China
Prior art keywords
data
new
checking
checking data
current
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.)
Granted
Application number
CNA2007101717191A
Other languages
English (en)
Other versions
CN101452409B (zh
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.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
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 Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN 200710171719 priority Critical patent/CN101452409B/zh
Publication of CN101452409A publication Critical patent/CN101452409A/zh
Application granted granted Critical
Publication of CN101452409B publication Critical patent/CN101452409B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种数据校验冗余方法,包括更新校验数据的方法:获取更新数据;读取所述更新数据待存储位置的当前数据;计算当前数据和更新数据的异或值;读取校验数据存储位置的当前校验数据;计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据;在所述校验数据存储位置写入新的校验数据。本发明还公开了一种数据校验冗余装置。所述数据校验冗余方法及装置能够快速更新校验数据,并且提升网络存储系统整体性能。

Description

数据校验冗余方法及装置
技术领域
本发明涉及一种数据校验冗余方法及装置。
背景技术
分布式网络存储系统中,为了充分利用系统带宽,一般采用分条机制,将文件分块存储在多个网络存储设备上。如图1所示,N个网络存储设备组成的系统中,文件按M字节顺序分割成数据块D1、D2、......、Dk-1、Dk、Dk+1、Dk+2、......、D2k-1、D2k、......,这些数据块轮转地循环存储在其中K个网络存储设备上。每个网络存储设备上的文件块,一起称为一个分条。文件分条后,读写文件的并行度增大,性能提高,但可靠性下降,故障概率增大,K个分条中任何一个分条的数据被破坏,都会导致文件不可用。
为了解决分条导致的可靠性问题,需要对文件数据进行冗余备份。对于有高可靠性要求的系统,则需要实时的冗余备份。冗余技术又称为RAID技术,RAID是英文Redundant Array of Inexpensive Disks的缩写,即廉价磁盘冗余阵列。RAID就是一种由多块硬盘构成的冗余阵列存储设备。一种常用的数据实时冗余备份方法是远程同步镜像。远程同步镜像是一种同步复制技术,将本地数据以完全同步的方式复制到异地,每一个本地的I/O事务均需等待远程复制的完成确认信息,方予以释放。同步镜像使远程复制总能与本地要求复制的内容相一致。当某个网络存储设备出现故障时,被镜像的远程数据副本可以保证业务继续执行而没有数据的丢失。如图2所示,文件的数据块D1、D2、......、Dk-1、Dk、Dk+1、Dk+2、......、D2k-1、D2k、......,轮转地循环存储在网络存储设备i、i+1、......、i+k-2、i+k-1这K个网络存储设备上。写入这些数据块时,同时在网络存储设备i+1、i+2、......、i+k-1、i这K个网络存储设备上复制这些数据块。例如,在网络存储设备i上写入D1时,也同时在网络存储设备i+1上写入D1,这样即使网络存储设备i出现故障,仍然可以从网络存储设备i+1取得D1。在申请号为200510024963.6的中国专利申请中还有更多与上述远程同步镜像相关的内容。
远程同步镜像的缺点是存储空间开销大,至少需要额外消耗与被保护数据等量的存储空间,这是复制冗余方法的固有缺陷,可以复制多个数据副本,副本越多,可靠性越高,但消耗的存储空间越大。
远程同步镜像采用的是复制冗余方法,除此还有校验冗余方法。RAID5是一种常用的校验冗余级别,是一种存储性能、数据安全和存储成本兼顾的存储解决方案。以四个硬盘组成的RAID5为例,其数据存储方式如图3所示。图中,P0为D0,D1和D2的奇偶校验信息,其它以此类推。由图中可以看出,RAID5不直接对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。因此,采用校验冗余方法,可以减少存储空间开销,只需要使用1/n(n>=2)的原始数据存储空间,例如四个硬盘组成的RAID5的奇偶校验信息只需占用1个硬盘的存储空间。
上述校验冗余方法的实际操作过程举例如下,参照图4所示,每k-1(k>2)个内容连续的数据块Dp(k-1)+1、Dp(k-1)+2、......、Dp(k-1)+k-1视为一个校验组,每一个校验组都有1个校验数据块Cp+1,所述校验数据块 Cp + 1 = Dp ( k - 1 ) + 1 ⊕ Dp ( k - 1 ) + 2 ⊕ . . . ⊕ Dp ( k - 1 ) + k - 1 , p=0,1,2,......。例如,
C 1 = D 1 ⊕ D 2 ⊕ . . . ⊕ Dk - 1 ,
C 2 = Dk ⊕ Dk + 1 ⊕ . . . ⊕ D 2 k - 2 ,
校验数据块与数据块分别存储在k个不同的网络存储设备上,这样任何1个数据块被破坏,都能够根据其他k-2个数据块和校验数据块,进行恢复。例如,由于网络存储设备i故障,导致数据块D1被破坏,则可以从网络存储设备i+1、i+2、......、i+k-2分别读取数据块D2、D3、......、Dk-1,从网络存储设备i+k-1读取校验数据块C1,然后由它们计算出D1的值并恢复D1,D1按下述公式计算得到: D 1 = C 1 ⊕ D 2 ⊕ . . . ⊕ Dk - 1 .
为了实现对数据进行冗余保护的实时性,每个数据块写入时,都必须同步更新校验数据块的内容。但根据上述校验数据块的算法可以看到,上述更新校验数据块的算法性能开销很大。
假设Dp(k-1)+q的内容改变为newDp(k-1)+q,则对应地,Cp+1的内容也要改变,则相对应的新的校验数据块newCp+1的算法如下:
newCp + 1 = Dp ( k - 1 ) + 1 ⊕ Dp ( k - 1 ) + 2 ⊕ . . . ⊕ newDp ( k - 1 ) + q ⊕ . . . ⊕
Dp ( k - 1 ) + k - 1 .
例如,D1的内容改变,则有 newC 1 = newD 1 ⊕ D 2 ⊕ . . . ⊕ Dk - 1 .
从上面newCp+1的计算公式可以看出,已知newDp(k-1)+q,为了得到newCp+1,需要先读取Dp(k-1)+1、Dp(k-1)+2、...、Dp(k-1)+q-1、Dp(k-1)+q+1、Dp(k-1)+k-1,然后进行计算。整个过程需要k-2次网络读操作和k-2次异或运算,效率非常低,其中,k-2次网络读操作是主要的性能开销。并且,在得到newCp+1后,写入newCp+1。
比较写数据块与校验数据块的过程,改变Dp(k-1)+q的内容,只需要1次网络写操作,而为了对应地改变Cp+1的内容,却需要k-2次网络读操作和1次网络写操作。将网络读操作和网络写操作视为同等时间量级的操作,不考虑计算开销,则写校验数据块的耗时是写数据块的k-1倍。而有校验冗余的写操作耗时(写数据+写校验数据)是没有校验冗余的写操作的k倍。因此,当网络存储设备的规模较大时,上述更新校验数据的操作耗时很大,效率也较低。并且,当网络存储设备的规模较大时,上述更新校验数据的所涉及的网络存储设备也较多,从而对网络带宽的消耗很大,因而网络存储系统整体性能较低。
发明内容
本发明提供一种数据校验冗余方法及装置,解决现有技术校验冗余方法操作耗时、网络贷款消耗较大的问题。
为解决上述问题,本发明提供一种数据校验冗余方法,包括更新校验数据的方法,所述更新校验数据的方法包括下列步骤,
获取更新数据;
读取所述更新数据待存储位置的当前数据;
计算当前数据和更新数据的异或值;
读取校验数据存储位置的当前校验数据;
计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据;
在所述校验数据存储位置写入新的校验数据。
所述数据校验冗余方法还包括,在所述校验数据存储位置写入新的校验数据后,在所述更新数据待存储位置写入更新数据。
相应地,本发明提供一种数据校验冗余装置,包括接收单元、第一读取单元、计算单元、第二读取单元和校验数据更新单元,
所述接收单元用于接收更新数据,并向计算单元发送;
所述第一读取单元用于读取更新数据待存储位置的当前数据,并向计算单元发送;
所述计算单元用于根据第一读取单元发送的当前数据和接收单元发送的更新数据,计算所述当前数据和更新数据的异或值,并向校验数据更新单元发送;
所述第二读取单元用于读取校验数据存储位置的当前校验数据,并向校验数据更新单元发送;
所述校验数据更新单元用于根据第二读取单元发送的当前校验数据和计算单元发送的当前数据和更新数据的异或值,计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据。
可选的,所述数据校验冗余装置还包括用于读取接收单元中的更新数据,并将更新数据写入所述更新数据待存储位置的写入单元。
可选的,所述写入单元在所述校验数据更新单元写入新的校验数据后,将更新数据写入所述更新数据待存储位置。
本发明还提供另一种数据校验冗余方法,包括更新校验数据的方法,所述更新校验数据的方法包括下列步骤,
获取更新数据;
若更新数据待存储位置有数据,则读取所述更新数据待存储位置的当前数据,计算当前数据和更新数据的异或值,若校验数据存储位置有数据,则读取当前校验数据,并计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;若校验数据存储位置无数据,则将当前数据和更新数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;
若更新数据待存储位置无数据,则在校验数据存储位置有数据时,读取当前校验数据,并计算当前校验数据和更新数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;在校验数据存储位置无数据时,将所述更新数据作为新的校验数据,并在校验数据存储位置写入新的校验数据。
所述数据校验冗余方法还包括,在所述校验数据存储位置写入新的校验数据后,在所述更新数据待存储位置写入更新数据。
相应地,本发明还提供一种数据校验冗余装置,包括接收单元、第一判断单元、第一读取单元、计算单元、第二判断单元、第二读取单元和校验数据更新单元,
所述接收单元用于接收更新数据,并向计算单元发送;
所述第一判断单元用于判断更新数据待存储位置是否有数据,并向第一读取单元和计算单元发送判断结果;
所述第一读取单元用于在获得所述更新数据待存储位置有数据的判断结果后,读取所述更新数据待存储位置的当前数据,并向计算单元发送;
所述计算单元用于在获得第一读取单元发送的当前数据后,计算当前数据和更新数据的异或值,并向校验数据更新单元发送;或在获得所述更新数据待存储位置没有数据的判断结果后,将更新数据向校验数据更新单元发送;
所述第二判断单元用于判断校验数据存储位置是否有数据,并向第二读取单元和校验数据更新单元发送判断结果;
所述第二读取单元用于在获得校验数据存储位置有校验数据的判断结果后,读取校验数据,并向校验数据更新单元发送;
所述校验数据更新单元用于在获得第二读取单元发送的校验数据和计算单元发送的数据后,计算校验数据和计算单元发送的数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;或在获得校验数据存储位置没有校验数据的判断结果后,将计算单元发送的数据作为新的校验数据,并在校验数据存储位置写入新的校验数据。
可选的,所述数据校验冗余装置还包括用于读取接收单元中的更新数据,并将更新数据写入所述更新数据待存储位置的写入单元。
可选的,所述校验数据更新单元在写入新的校验数据后向所述写入单元发送完成更新校验数据的通知。
可选的,所述写入单元在所述校验数据更新单元完成写入新的校验数据后,将更新数据写入所述更新数据待存储位置。
本发明还提供一种数据校验冗余方法,包括异步执行的数据更新步骤和校验数据更新步骤,
所述数据更新步骤包括,
获取当前数据和更新数据的异或值并暂存,或获取更新数据并暂存;将更新数据写入更新数据待存储位置;
所述校验数据更新步骤包括,
获取更新数据或当前数据和更新数据的异或值;
若校验数据存储位置有校验数据,则读取所述校验数据存储位置的当前校验数据,计算更新数据和当前校验数据的异或值或更新数据和当前数据的异或值与当前校验数据的异或值作为新的校验数据;若校验数据存储位置无校验数据,则将更新数据或更新数据和当前数据的异或值作为新的校验数据;
在所述校验数据存储位置写入新的校验数据。
相应地,本发明还提供一种数据校验冗余装置,包括接收单元、第一判断单元、第一读取单元、计算单元、写入单元、后台发送单元、第二判断单元、第二读取单元和校验数据更新单元,
所述接收单元用于接收更新数据,并向计算单元发送;
所述第一判断单元用于判断更新数据待存储位置是否有数据,并向第一读取单元和计算单元发送判断结果;
所述第一读取单元用于在获得所述更新数据待存储位置有数据的判断结果后,读取所述更新数据待存储位置的当前数据,并向计算单元发送;
所述计算单元用于在获得第一读取单元发送的当前数据后,计算当前数据和更新数据的异或值,并向后台发送单元发送;或在获得所述更新数据待存储位置没有数据的判断结果后,将更新数据向后台发送单元发送;
所述写入单元用于在计算单元向后台发送单元发送数据后,读取接收单元中的更新数据,将更新数据写入所述更新数据待存储位置;
所述后台发送单元用于将计算单元发送的数据发送给校验数据更新单元的;
所述第二判断单元用于判断校验数据存储位置是否有数据,并向第二读取单元和校验数据更新单元发送判断结果;
所述第二读取单元用于在获得校验数据存储位置有校验数据的判断结果后,读取校验数据,并向校验数据更新单元发送;
所述校验数据更新单元用于在获得第二读取单元发送的校验数据和后台发送单元发送的数据后,计算校验数据和后台发送单元发送的数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;或在获得校验数据存储位置没有校验数据的判断结果后,将后台发送单元发送的数据作为新的校验数据,并在校验数据存储位置写入新的校验数据。
与现有技术相比,上述公开的数据校验冗余方法及装置具有以下优点:上述所公开的数据校验冗余方法及装置最多只需进行原始数据和原始校验数据的本地读操作,两次更新数据或一次更新数据及一次更新数据与原始数据的异或值的网络传输操作,再进行一次新校验数据的本地写操作就能完成更新校验数据,从而减少了数据的读取操作步骤,因而能快速更新校验数据,操作耗时大大降低。
上述所公开的数据校验冗余方法及装置在更新校验数据时,由于只需上述的两次网络传输操作,因而也减少了所涉及的网络存储设备,因而网络通信量也减少了,减少了对网络带宽的消耗,对提升网络存储系统整体性能也有益。
附图说明
图1是现有技术分布式网络存储系统示意图;
图2是现有技术远程同步镜像示意图;
图3是现有技术校验冗余方法的盘阵示意图;
图4是现有技术数据校验冗余方法的数据存储示意图;
图5是本发明数据校验冗余方法的第一种实施方式流程图;
图6是对应于图5的本发明数据校验冗余装置的实施方式示意图;
图7是本发明数据校验冗余方法的第二种实施方式流程图;
图8是对应于图7的本发明数据校验冗余装置的实施方式示意图;
图9A是本发明数据校验冗余方法的第三种实施方式中更新数据步骤流程图;
图9B是本发明数据校验冗余方法的第三种实施方式中更新校验数据步骤流程图;
图10是对应于图9A、图9B的数据校验冗余装置的实施方式示意图。
具体实施方式
本发明所公开的数据校验冗余方法及装置最多只需进行原始数据和原始校验数据的本地读操作,两次更新数据或一次更新数据及一次更新数据与原始数据的异或值的网络传输操作,再进行一次新校验数据的本地写操作就能完成更新校验数据,从而减少了数据的读取操作步骤,因而能快速更新校验数据,操作耗时大大降低。
本发明所公开的数据校验冗余方法及装置在更新校验数据时,由于只需上述的两次网络传输操作,因而也减少了所涉及的网络存储设备,因而网络通信量也减少了,减少了对网络带宽的消耗,对提升网络存储系统整体性能也有益。
根据上述对校验冗余方法介绍,目前校验数据块的算法为:
Cp + 1 = Dp ( k - 1 ) + 1 ⊕ Dp ( k - 1 ) + 2 ⊕ . . . ⊕ newDp ( k - 1 ) + q ⊕ . . . ⊕ Dp ( k - 1 ) + k - 1
(1)
下面对于上述算法进一步推导如下:
假设更新校验数据块之前的校验数据块oldCp+1的值为:
oldCp + 1 = Dp ( k - 1 ) + 1 ⊕ Dp ( k - 1 ) + 2 ⊕ . . . ⊕ oldDp ( k - 1 ) + q ⊕ . . . ⊕ Dp ( k - 1 ) + k - 1
= Dp ( k - 1 ) + 1 ⊕ Dp ( k - 1 ) + 2 ⊕ . . . ⊕ oldDp ( k - 1 ) + q - 1 ⊕ oldDp ( k - 1 ) + q + 1 ⊕ . . .
⊕ Dp ( k - 1 ) + k - 1 ⊕ oldDp ( k - 1 ) + q ,
所以 Dp ( k - 1 ) + 1 ⊕ Dp ( k - 1 ) + 2 ⊕ . . . ⊕ oldDp ( k - 1 ) + q - 1 ⊕ oldDp ( k - 1 ) + q + 1 ⊕ . . .
⊕ Dp ( k - 1 ) + k - 1 = oldDp ( k - 1 ) + q ⊕ oldCp + 1 , - - - ( 2 )
那么当数据块Dp(k-1)+q的值改变为newDp(k-1)+q时,新的校验数据块newCp+1则可按公式(2)的形式计算如下:
newCp + 1 = Dp ( k - 1 ) + 1 ⊕ Dp ( k - 1 ) + 2 ⊕ . . . ⊕ newDp ( k - 1 ) + q ⊕ . . . ⊕ Dp ( k - 1 ) + k - 1
= Dp ( k - 1 ) + 1 ⊕ Dp ( k - 1 ) + 2 ⊕ . . . ⊕ oldDp ( k - 1 ) + q - 1 ⊕ oldDp ( k - 1 ) + q + 1 ⊕ . . .
⊕ Dp ( k - 1 ) + k - 1 ⊕ newDp ( k - 1 ) + q
= old Dp ( k - 1 ) + q ⊕ oldCp + 1 ⊕ newDp ( k - 1 ) + q . - - - ( 3 )
从公式(3)可以看出,已知newDp(k-1)+q,写入newDp(k-1)+q需要1次网络写操作,而为了得到newCp+1,需要先读取oldDp(k-1)+q和oldCp+1,然后进行计算。整个过程需要2次网络读操作和2次异或运算。忽略异或运算的开销,则改变Cp+1的内容(计算newCp+1以及写入newCp+1),需要2次网络读操作和1次网络写操作。将网络读操作和网络写操作视为同等时间量级的操作,则改变校验数据块的耗时是写数据块的3倍。因此,有校验冗余的写操作耗时(写数据+写校验数据)是没有校验冗余的写操作的4倍。
根据前述的分析,现有算法中有校验冗余的写操作耗时是没有校验冗余的写操作耗时的k倍,当网络存储设备数目k很大时,有校验冗余的写操作耗时很大,性能很低。而根据上述新的更新校验数据的算法,有校验冗余的写操作耗时是没有校验冗余的写操作的4倍,这是一个固定值,不受网络存储设备数目的影响,因此新的更新校验数据的算法使得有校验冗余的写操作耗时减小。
并且,上述新的更新校验数据的算法将校验过程与网络存储设备的相关度,由k-1(k>2)降低到了下限固定值2。所述相关度就是完成更新校验数据块和更新数据块所需的网络存储设备的数量。因此,占用的网络带宽大幅下降,有益于提升网络存储系统的整体性能。
下面对现有算法,即应用公式(1)的算法和上述新的更新校验数据的算法,即应用公式(3)的算法进行比较以辅助说明。例如,k=3时,现有算法中有校验冗余的写操作耗时是没有校验冗余的写操作耗时的3倍,而上述新的更新校验数据的算法是4倍;k=4时,现有算法和上述新的更新校验数据的算法都是4倍,二者持平;k=5时,现有算法是5倍,而上述新的更新校验数据的算法仍然是4倍,因此k>4后,上述新的更新校验数据的算法性能优于现有算法,且k越大,上述新的更新校验数据的算法相对于现有算法的优势越明显。因此,上述新的更新校验数据的算法尤其适合大规模的网络存储环境。
而对于上述的新的更新校验数据的算法,还可作进一步分析。校验冗余的方法可以分为两种形式:一种是以磁盘为粒度,校验冗余是基于磁盘块,与文件的状态无关,是一种无状态的操作。写入数据时,默认为老的磁盘块内容已经存在;而另一种是以文件为粒度,校验冗余是基于文件的分条机制,是一种有状态的操作。在生成新文件和追加文件内容的时候,可以根据存储位置的文件状态来优化操作。
例如,对于上述的新的更新数据的算法,在写入新数据,生成新的校验数据时,就可能尚不存在老的数据oldDp(k-1)+q,和/或老的校验数据oldCp+1。因此,上述新的更新校验数据的算法可以继续优化成以下形式:
newCp + 1 = newDp ( k - 1 ) + q ⊕ oldDp ( k - 1 ) + q , oldCp + 1 = 0 ; newDp ( k - 1 ) + q ⊕ oldCp + 1 , oldDp ( k + 1 ) + q = 0 ; newDp ( k - 1 ) + q , oldDp ( k - 1 ) + q = oldCp + 1 = 0 ;
在上述三种优化后的算法中,第一种算法是基于老的校验数据oldCp+1不存在的情况,因此该算法减少了1次读取老的校验数据oldCp+1的网络读操作。第二种算法是基于老的数据oldDp(k-1)+q不存在的情况,因此该算法减少了1次读取老的数据oldDp(k-1)+q的网络读操作。第三种算法是基于老的校验数据oldCp+1和老的数据oldDp(k-1)+q不存在的情况,因此减少了1次读取老的校验数据oldCp+1的网络读操作和减少了1次读取老的数据oldDp(k-1)+q的网络读操作。因此,上述第一种、第二种算法有校验冗余的写操作耗时(写数据+写校验数据)是没有校验冗余的写操作的3倍。而第三种算法有校验冗余的写操作耗时(写数据+写校验数据)是没有校验冗余的写操作的2倍。因此基于文件分条的校验冗余方法通过优化能进一步减少网络通信和算术运算的次数,加快了校验数据生成的速度。根据所述分析,基于文件分条的校验冗余方法可以具有比基于磁盘块的校验冗余方法更高的效率。
基于上述的分析,本发明数据校验冗余方法及数据校验冗余装置就是采用上述新的更新校验数据的算法。
参照图5所示,本发明数据校验冗余方法的第一种实施方式包括下列步骤,
步骤s1,接收更新数据;
步骤s2,读取更新数据待存储位置的当前数据;
步骤s3,计算当前数据和更新数据的异或值;
步骤s4,读取当前校验数据;
步骤s5,计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据;
步骤s6,将所述新的校验数据写入校验数据存储位置以完成更新校验数据;
步骤s7,将更新数据写入所述更新数据待存储位置。
所述数据校验冗余方法还包括,在所述校验数据存储位置写入新的校验数据后,在所述更新数据待存储位置写入更新数据。
对应上述的实施方式,举例如下:假设当前数据存储系统中存有一组8位数据10110101,所述8位数据的当前校验数据通过将所述8位数据组中的数据逐位异或计算得到,即 C 8 = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 1 = 1 . 而当来到一组新的8位数据11110101时,只有第2位数据发生了改变,需要进行数据更新,因而第2位数据为更新数据。而当前8位数据组的第2位数据位当前数据。因而,首先接收新的8位数据组的第2位数据,然后读取当前8位数据组的第2位数据,当前8位数据组的第2位数据为0。然后计算当前8位数据组的第2位数据和新的8位数据组的第2位数据的异或值,当前8位数据组的第2位数据为0,而新的8位数据组的第2位数据为1,因此所述异或值为1。接下来,读取当前校验数据,当前校验数据为1。接着,计算当前8位数据组的第2位数据和新的8位数据组的第2位数据的异或值1与当前校验数据1的异或值作为新的校验数据。根据上述数据,所述作为新的校验数据的异或值为0。最后,将所述新的校验数据写入校验数据存储位置完成校验数据更新,并将新的8位数据组的第2位数据写入相应数据存储位置,覆盖当前8位数据组的第2位数据,来完成数据更新。
以上为一组数据中只有1位数据改变的情况,当有2位数据改变的情况时,可以分两次实施上例方法以获得新的校验数据。下面简要举例如下:当前一组4位数据为1111,对应这组数据的校验数据为 C 1 = 1 ⊕ 1 ⊕ 1 ⊕ 1 = 0 . 而新的一组数据为0101,则可以将更新数据和校验数据的过程分成两步:第一步先构建一组中间数据0111,然后依照上例的方法获得所述这组中间数据的校验数据。所述这组中间数据的校验数据当前数据组的第1位数据1和中间数据组的第1位数据0的异或值与当前数据组的校验数据1的异或值。即中间数据组的校验数据 C 2 = 1 ⊕ 0 ⊕ 0 = 1 . 第二步,以中间数据组位当前数据,则继续依照上例方法,新的数据组的校验数据为中间数据组的第3位数据1和新的数据组的第3位数据0的异或值与中间数据组的校验数据1的异或值。即新的数据组的校验数据 C 3 = 1 ⊕ 0 ⊕ 1 = 0 . 而为了验证该方法的正确性,按前述的原始算法将新的数据组的数据逐位异或得到 C 4 = 1 ⊕ 1 ⊕ 1 ⊕ 1 = 0 . 因此,所述分两步的方法正确。依此类推,当有多位数据改变时,也可应用此方法分多步来获得最终的校验数据。
以上举例为了叙述方便,仅列举了进行数据更新的数据存储位置只有1位数据的情况,但并非用以限定。所述数据存储位置中的数据也可以是具有一定数据长度的数据,此时所述的更新数据和当前数据的异或计算也将变成多位异或计算。
参照图6所示,本发明数据校验冗余装置的第一种实施方式包括,
接收单元10、第一读取单元20、计算单元30、第二读取单元50和校验数据更新单元40。
其中,所述接收单元10用于接收更新数据,并向计算单元30发送;
所述第一读取单元20用于读取所述更新数据待存储位置的当前数据,并向计算单元30发送;
所述计算单元30用于根据第一读取单元20发送的当前数据和接收单元发送的更新数据,计算所述当前数据和更新数据的异或值,并向校验数据更新单元40发送;
所述第二读取单元50用于读取校验数据存储位置的当前校验数据,并向校验数据更新单元40发送;
所述校验数据更新单元40用于根据第二读取单元50发送的当前校验数据和计算单元30发送的当前数据和更新数据的异或值,计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据。
所述数据校验冗余装置还包括用于读取接收单元10中的更新数据,并将更新数据写入所述更新数据待存储位置的写入单元60。
所述写入单元60在校验数据更新单元40写入新的校验数据后,将更新数据写入所述更新数据待存储位置。
参照图7所示,本发明数据校验冗余方法的第二种实施方式包括下列步骤,
步骤s10,获取更新数据;
步骤s11,判断更新数据待存储位置是否有数据,若有数据则执行步骤s12;若无数据,则执行步骤s14;
步骤s12,读取所述更新数据待存储位置的当前数据;
步骤s13,计算当前数据和更新数据的异或值;
步骤s14,判断校验数据的存储位置是否有数据,若有数据则执行步骤s15;若无数据,则执行步骤s17;
步骤s15,读取当前校验数据;
步骤s16,计算当前数据和更新数据的异或值与当前校验数据的异或值或更新数据与当前校验数据的异或值作为新的校验数据,并执行步骤s18;
步骤s17,将当前数据和更新数据的异或值或更新数据作为新的校验数据,并执行步骤s18;
步骤s18,将所述新的校验数据写入校验数据存储位置以完成更新校验数据;
步骤s19,将更新数据写入所述更新数据待存储位置。
所述数据校验冗余方法还包括,在所述校验数据存储位置写入新的校验数据后,在所述更新数据待存储位置写入更新数据。
对应上述的实施方式,举例如下:假设当前数据存储系统中存有一组8位数据10110101,所述8位数据的当前校验数据通过将所述8位数据组中的数据逐位异或计算得到,即 C 8 = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 1 = 1 . 而当来到一组新的9位数据101101010时,第9位数据相对于当前数据组来说是新的,并且新的数据组比当前数据组还多了一位数据,因而需要进行第9位数据的更新,因而第9位数据为更新数据。因而,首先接收新的9位数据组中的第9位数据,然后判断第9位数据的数据存储位置是否有数据,此处由于当前数据组只有8位数据,因而第9位数据的数据存储位置是空的。接下来,就会判断当前校验数据是否存在,此处当前校验数据存在,因而读取当前校验数据,当前校验数据为1。接着,计算第9位数据0与当前校验数据1的异或值作为新的校验数据。根据上述数据,所述作为新的校验数据的异或值为1。最后,将所述新的校验数据写入校验数据存储位置完成校验数据更新,并将第9位数据写入相应数据存储位置,完成数据更新。
关于多位数据改变的情况下校验数据的计算方法,请参照对应本发明数据校验冗余方法的第一种实施方式的例子中的说明。以上举例为了叙述方便,仅列举了进行数据更新的数据存储位置只有1位数据的情况,但并非用以限定。所述数据存储位置中的数据也可以是具有一定数据长度的数据,此时所述的更新数据和当前数据的异或计算也将变成多位异或计算。
参照图8所示,本发明数据校验冗余装置的第二种实施方式包括,接收单元10、第一判断单元70、第一读取单元20、计算单元30、第二判断单元80、第二读取单元50和校验数据更新单元40。
其中,所述接收单元10用于接收更新数据,并向计算单元30发送;
所述第一判断单元70用于判断所述更新数据待存储位置是否有数据,并向第一读取单元20和计算单元30发送判断结果;
所述第一读取单元20用于在获得所述更新数据待存储位置有数据的判断结果后,读取所述数据存储位置的当前数据,并向计算单元30发送;
所述计算单元30用于在获得第一读取单元20发送的当前数据后,计算当前数据和更新数据的异或值,并向校验数据更新单元40发送;或在获得所述更新数据待存储位置没有数据的判断结果后,将更新数据向校验数据更新单元40发送;
所述第二判断单元80用于判断校验数据存储位置是否有数据,并向第二读取单元50和校验数据更新单元40发送判断结果;
所述第二读取单元50用于在获得校验数据存储位置有校验数据的判断结果后,读取校验数据,并向校验数据更新单元40发送;
所述校验数据更新单元40用于在获得第二读取单元50发送的校验数据和计算单元30发送的数据后,计算校验数据和计算单元30发送的数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;或在获得校验数据存储位置没有校验数据的判断结果后,将计算单30元发送的数据作为新的校验数据,并在校验数据存储位置写入新的校验数据。
所述数据校验冗余装置还包括用于读取接收单元10中的更新数据,并将更新数据写入所述更新数据待存储位置的写入单元60。
所述写入单元60在所述校验数据更新单元40写入新的校验数据的通知后,将更新数据写入所述更新数据待存储位置。
本发明数据校验冗余方法的第三种实施方式包括异步执行的数据更新步骤和校验数据更新步骤。
参照图9A所示,所述数据更新步骤包括,
步骤s21,获取更新数据;
步骤s22,判断更新数据待存储位置是否有数据,若有数据则执行步骤s23;若无数据,则执行步骤s25;
步骤s23,读取所述更新数据待存储位置的当前数据;
步骤s24,计算当前数据和更新数据的异或值,并将所述异或值插入发送队列,并执行步骤s26;
步骤s25,将更新数据插入发送队列,并执行步骤s26;
步骤s26,唤醒后台发送线程以启动发送队列,并写入更新数据。
参照图9B所示,所述校验数据更新步骤包括,
步骤s31,接收发送队列发送的更新数据或更新数据和当前数据的异或值;
步骤s32,判断校验数据存储位置是否有校验数据,若有校验数据,则执行步骤s33;若无校验数据,则执行步骤s35;
步骤s33,读取所述校验数据存储位置的当前校验数据;
步骤s34,计算更新数据和当前校验数据的异或值或更新数据和当前数据的异或值与当前校验数据的异或值作为新的校验数据,并执行步骤s36;
步骤s35,将更新数据或更新数据和当前数据的异或值作为新的校验数据,并执行步骤s36;
步骤s36,在所述校验数据存储位置写入新的校验数据以完成校验数据的更新。
在步骤s36中,在写入新的校验数据后,发出完成更新校验数据的通知。
对应上述的实施方式,举例如下:假设当前数据存储系统中存有一组8位数据10110101,所述8位数据的当前校验数据通过将所述8位数据组中的数据逐位异或计算得到,即 C 8 = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 1 = 1 . 而当来到一组新的9位数据101101010时,第9位数据相对于当前数据组来说是新的,并且新的数据组比当前数据组还多了一位数据,因而需要进行第9位数据的更新,因而第9位数据为更新数据。因而,首先接收新的9位数据组中的第9位数据,然后判断第9位数据的数据存储位置是否有数据,此处由于当前数据组只有8位数据,因而第9位数据的数据存储位置是空的。此时,就会将第9位数据插入发送队列,并唤醒后台发送线程以启动发送队列,然后将第9位数据写入相应数据存储位置完成数据更新。
而对于更新校验数据步骤,在接收到发送队列发送的第9位数据后,会判断当前校验数据是否存在,此处当前校验数据存在,因而读取当前校验数据,当前校验数据为1。接着,计算第9位数据0与当前校验数据1的异或值作为新的校验数据。根据上述数据,所述作为新的校验数据的异或值为1。最后,将所述新的校验数据写入校验数据存储位置完成校验数据更新。
关于多位数据改变的情况下校验数据的计算方法,请参照对应本发明数据校验冗余方法的第一种实施方式的例子中的说明。以上举例为了叙述方便,仅列举了进行数据更新的数据存储位置只有1位数据的情况,但并非用以限定。所述数据存储位置中的数据也可以是具有一定数据长度的数据,此时所述的更新数据和当前数据的异或计算也将变成多位异或计算。
参照图10所示,本发明数据校验冗余装置包括,接收单元10、第一判断单元70、第一读取单元20、计算单元30、写入单元60、后台发送单元90、第二判断单元80、第二读取单元50和校验数据更新单元40。
其中,所述接收单元10用于接收更新数据,并向计算单元30发送;
所述第一判断单元70用于判断更新数据待存储位置是否有数据,并向第一读取单元20和计算单元30发送判断结果;
所述第一读取单元20用于在获得所述更新数据待存储位置有数据的判断结果后,读取所述更新数据待存储位置的当前数据,并向计算单元30发送;
所述计算单元30用于在获得第一读取单元20发送的当前数据后,计算当前数据和更新数据的异或值,并向后台发送单元90发送;或在获得所述更新数据待存储位置没有数据的判断结果后,将更新数据向后台发送单元90发送;
所述写入单元60用于在计算单元30向后台发送单元90发送数据后,读取接收单元10中的更新数据,将更新数据写入所述更新数据待存储位置;
所述后台发送单元90用于将计算单元30发送的数据发送给校验数据更新单元的;
所述第二判断单元80用于判断校验数据存储位置是否有数据,并向第二读取单元50和校验数据更新单元40发送判断结果;
所述第二读取单元50用于在获得校验数据存储位置有校验数据的判断结果后,读取校验数据,并向校验数据更新单元40发送;
所述校验数据更新单元40用于在获得第二读取单元50发送的校验数据和后台发送单元90发送的数据后,计算校验数据和后台发送单元90发送的数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;或在获得校验数据存储位置没有校验数据的判断结果后,将后台发送单元90发送的数据作为新的校验数据,并在校验数据存储位置写入新的校验数据。
所述校验数据更新单元40在写入新的校验数据后向所述写入单元60发送完成更新校验数据的通知。
下面通过两个数据校验冗余的例子对本发明数据校验冗余方法和数据校验冗余装置进行进一步说明。
实施例1
首先结合图7和图8所示,在接收单元10接收到更新数据后,会先将更新数据发送给计算单元30。而第一判断单元70会判断所要写入的更新数据待存储位置是否有数据,并将判断结果发送给计算单元30和第一读取单元20。
如果所要写入的更新数据待存储位置没有数据,第一判断单元70会将没有数据的判断结果发送给计算单元30和第一读取单元20。计算单元30在获得所述判断结果后,会将更新数据直接发送给校验数据更新单元40;而如果写入的数据存储位置有数据,第一判断单元70会将有数据的判断结果发送给计算单元30和第一读取单元20。则第一读取单元20会从所述更新数据待存储位置读取原有数据,并将所述数据发送给计算单元30。计算单元30在接收到原有数据后,计算原有数据和更新数据的异或值,并在得到结果后将所述异或值发送给校验数据更新单元40。
而第二判断单元80会判断校验数据存储位置是否有数据,并将判断结果发送给校验数据更新单元40和第二读取单元50。
如果校验数据存储位置没有数据,第二判断单元80会将没有数据的判断结果发送给校验数据更新单元40和第二读取单元50。校验数据更新单元40在获得所述判断结果后,就直接将所接收到的更新数据或原有数据和更新数据的异或值作为新的校验数据;而如果校验数据存储位置有数据,第二判断单元80会将有数据的判断结果发送给校验数据更新单元40和第二读取单元50。则第二读取则单元50会从所述校验数据存储位置读取原有校验数据,并将所述原有校验数据发送给校验数据更新单元40。校验数据更新单元40在获得原有校验数据后,计算原有校验数据和更新数据或计算原有数据和更新数据的异或值与原有校验数据的异或值,并将结果作为新的校验数据。
在得到新的校验数据后,校验数据更新单元40在所述的校验数据存储位置写入新的校验数据完成校验数据更新,同时将完成校验数据更新的信息通知写入单元60。写入单元60在接收到校验数据更新单元40的通知后,就会将更新数据写入所述更新数据待存储位置。
通过上述过程可以看到,在校验数据更新单元40生成新的校验数据之后,写入单元60才真正写入新数据,这样,就实现了数据实时校验冗余保护的目的,并且在更新校验数据的过程中,也最多只进行了一次读取原有数据的本地读操作、一次读取原有校验数据的本地读操作、两次更新数据的网络传输操作或一次更新数据的网络传输操作和一次更新数据和原有数据的异或值的网络传输操作、以及一次新的校验数据的本地写操作。因而加快了更新校验数据的速度,也减少了所涉及的网络存储设备的数量,提高了数据校验荣誉装置的性能。
实施例2
数据校验冗余过程也可通过异步方式完成。结合图9A和图10所示,在接收单元10接收到更新数据后,会先将更新数据发送给计算单元30。而第一判断单元70会判断所要写入的更新数据待存储位置是否有数据,并将判断结果发送给计算单元30和第一读取单元20。
如果所要写入的更新数据待存储位置没有数据,第一判断单元70会将没有数据的判断结果发送给计算单元30和第一读取单元20。计算单元30在获得所述判断结果后,会将更新数据直接插入后台发送单元90的发送队列,并唤醒后台发送单元90;而如果写入数据存储位置有数据,第一判断单元70会将有数据的判断结果发送给计算单元30和第一读取单元20。则第一读取单元20会从所述写入位置读取原有数据,并将所述数据发送给计算单元30。计算单元30在接收到原有数据后,计算原有数据和更新数据的异或值,并在得到结果后将所述异或值插入后台发送单元90的发送队列,并唤醒后台发送单元90。
而在计算单元30将数据插入发送队列之后,写入单元60会读取接受单元10中的更新数据,并将更新数据写入所述更新数据待存储位置。
后台发送单元40在计算单元30将数据发送过来之前处于睡眠状态,当后台发送设备30被唤醒后,会先判断发送队列是否为空,若不为空,则会将所接收的计算单元30发送的更新数据或原有数据和更新数据的异或值发送给校验数据更新单元40。而在发送完之后,后台发送设备30会再次判断发送队列是否为空,若为空,则重新进入睡眠状态。
结合图9B和图10所示,而第二判断单元80会判断校验数据存储位置是否有数据,并将判断结果发送给校验数据更新单元40和第二读取单元50。
如果校验数据存储位置没有数据,第二判断单元80会将没有数据的判断结果发送给校验数据更新单元40和第二读取单元50。校验数据更新单元40在获得所述判断结果后,就直接将所接收到的更新数据或原有数据和更新数据的异或值作为新的校验数据;而如果校验数据存储位置有数据,第二判断单元80会将有数据的判断结果发送给校验数据更新单元40和第二读取单元50。则第二读取则单元50会从所述校验数据存储位置读取原有校验数据,并将所述原有校验数据发送给校验数据更新单元40。校验数据更新单元40在获得原有校验数据后,计算原有校验数据和更新数据或计算原有数据和更新数据的异或值与原有校验数据的异或值,并将结果作为新的校验数据。
在得到新的校验数据后,校验数据更新单元40在所述的校验数据存储位置写入新的校验数据完成校验数据更新,同时将完成校验数据更新的信息通知写入单元60。
通过上述过程可以看到,上述采用异步方式的校验冗余过程中,计算单元30并不直接将更新数据或更新数据和原有数据的异或值发送给校验数据更新单元40,而是将数据插入发送队列,并通过后台发送单元90发送。而在计算单元30将数据插入发送队列后,写入单元60不等待校验数据更新单元40生成新的校验数据就将更新数据写入。相对于之前的写入单元60需要等待校验数据更新单元40生成新的校验数据后才将更新数据写入,上述的异步方式的效率无疑更高。
综上所述,上述所公开的数据校验冗余方法及装置最多只需进行原始数据和原始校验数据的网络读操作,再进行一次新校验数据的网络写操作就能完成更新校验数据,因而减少了数据的读取操作步骤,操作复杂度大大降低,从而能快速更新校验数据。
上述所公开的数据校验冗余方法及装置在更新校验数据时,由于只需上述的两次网络读操作和1次网络写操作,因而也减少了所需的网络存储设备,因而网络通信量也减少了,减少了对网络带宽的消耗,对提升网络存储系统整体性能也有益。
虽然本发明己以较佳实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (12)

1.一种数据校验冗余方法,包括更新校验数据的方法,其特征在于,所述更新校验数据的方法包括,
获取更新数据;
读取所述更新数据待存储位置的当前数据;
计算当前数据和更新数据的异或值;
读取校验数据存储位置的当前校验数据;
计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据;
在所述校验数据存储位置写入新的校验数据。
2.如权利要求1所述的数据校验冗余方法,其特征在于,还包括,在所述校验数据存储位置写入新的校验数据后,在所述更新数据待存储位置写入更新数据。
3.一种数据校验冗余装置,其特征在于,包括接收单元、第一读取单元、计算单元、第二读取单元和校验数据更新单元,
所述接收单元用于接收更新数据,并向计算单元发送;
所述第一读取单元用于读取更新数据待存储位置的当前数据,并向计算单元发送;
所述计算单元用于根据第一读取单元发送的当前数据和接收单元发送的更新数据,计算所述当前数据和更新数据的异或值,并向校验数据更新单元发送;
所述第二读取单元用于读取校验数据存储位置的当前校验数据,并向校验数据更新单元发送;
所述校验数据更新单元用于根据第二读取单元发送的当前校验数据和计算单元发送的当前数据和更新数据的异或值,计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据。
4.如权利要求3所述的数据校验冗余装置,其特征在于,还包括用于读取接收单元中的更新数据,并将更新数据写入所述更新数据待存储位置的写入单元。
5.如权利要求4所述的数据校验冗余装置,其特征在于,所述写入单元在所述校验数据更新单元写入新的校验数据后,将更新数据写入所述更新数据待存储位置。
6.一种数据校验冗余方法,包括更新校验数据的方法,其特征在于,所述更新校验数据的方法包括,
获取更新数据;
若更新数据待存储位置有数据,则读取所述更新数据待存储位置的当前数据,计算当前数据和更新数据的异或值,若校验数据存储位置有数据,则读取当前校验数据,并计算当前数据和更新数据的异或值与当前校验数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;若校验数据存储位置无数据,则将当前数据和更新数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;
若更新数据待存储位置无数据,则在校验数据存储位置有数据时,读取当前校验数据,并计算当前校验数据和更新数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;在校验数据存储位置无数据时,将所述更新数据作为新的校验数据,并在校验数据存储位置写入新的校验数据。
7.如权利要求6所述的数据校验冗余方法,其特征在于,还包括,在所述校验数据存储位置写入新的校验数据后,在所述更新数据待存储位置写入更新数据。
8.一种数据校验冗余装置,其特征在于,包括接收单元、第一判断单元、第一读取单元、计算单元、第二判断单元、第二读取单元和校验数据更新单元,
所述接收单元用于接收更新数据,并向计算单元发送;
所述第一判断单元用于判断更新数据待存储位置是否有数据,并向第一读取单元和计算单元发送判断结果;
所述第一读取单元用于在获得所述更新数据待存储位置有数据的判断结果后,读取所述更新数据待存储位置的当前数据,并向计算单元发送;
所述计算单元用于在获得第一读取单元发送的当前数据后,计算当前数据和更新数据的异或值,并向校验数据更新单元发送;或在获得所述更新数据待存储位置没有数据的判断结果后,将更新数据向校验数据更新单元发送;
所述第二判断单元用于判断校验数据存储位置是否有数据,并向第二读取单元和校验数据更新单元发送判断结果;
所述第二读取单元用于在获得校验数据存储位置有校验数据的判断结果后,读取校验数据,并向校验数据更新单元发送;
所述校验数据更新单元用于在获得第二读取单元发送的校验数据和计算单元发送的数据后,计算校验数据和计算单元发送的数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;或在获得校验数据存储位置没有校验数据的判断结果后,将计算单元发送的数据作为新的校验数据,并在校验数据存储位置写入新的校验数据。
9.如权利要求8所述的数据校验冗余装置,其特征在于,还包括用于读取接收单元中的更新数据,并将更新数据写入所述更新数据待存储位置的写入单元。
10.如权利要求9所述的数据校验冗余装置,其特征在于,所述写入单元在所述校验数据更新单元完成写入新的校验数据后,将更新数据写入所述更新数据待存储位置。
11.一种数据校验冗余方法,其特征在于,包括异步执行的数据更新步骤和校验数据更新步骤,
所述数据更新步骤包括,
获取当前数据和更新数据的异或值并暂存,或获取更新数据并暂存;将更新数据写入更新数据待存储位置;
所述校验数据更新步骤包括,
获取更新数据或当前数据和更新数据的异或值;
若校验数据存储位置有校验数据,则读取所述校验数据存储位置的当前校验数据,计算更新数据和当前校验数据的异或值或更新数据和当前数据的异或值与当前校验数据的异或值作为新的校验数据;若校验数据存储位置无校验数据,则将更新数据或更新数据和当前数据的异或值作为新的校验数据;
在所述校验数据存储位置写入新的校验数据。
12.一种数据校验冗余装置,其特征在于,包括接收单元、第一判断单元、第一读取单元、计算单元、写入单元、后台发送单元、第二判断单元、第二读取单元和校验数据更新单元,
所述接收单元用于接收更新数据,并向计算单元发送;
所述第一判断单元用于判断更新数据待存储位置是否有数据,并向第一读取单元和计算单元发送判断结果;
所述第一读取单元用于在获得所述更新数据待存储位置有数据的判断结果后,读取所述更新数据待存储位置的当前数据,并向计算单元发送;
所述计算单元用于在获得第一读取单元发送的当前数据后,计算当前数据和更新数据的异或值,并向后台发送单元发送;或在获得所述更新数据待存储位置没有数据的判断结果后,将更新数据向后台发送单元发送;
所述写入单元用于在计算单元向后台发送单元发送数据后,读取接收单元中的更新数据,将更新数据写入所述更新数据待存储位置;
所述后台发送单元用于将计算单元发送的数据发送给校验数据更新单元的;
所述第二判断单元用于判断校验数据存储位置是否有数据,并向第二读取单元和校验数据更新单元发送判断结果;
所述第二读取单元用于在获得校验数据存储位置有校验数据的判断结果后,读取校验数据,并向校验数据更新单元发送;
所述校验数据更新单元用于在获得第二读取单元发送的校验数据和后台发送单元发送的数据后,计算校验数据和后台发送单元发送的数据的异或值作为新的校验数据,并在校验数据存储位置写入新的校验数据;或在获得校验数据存储位置没有校验数据的判断结果后,将后台发送单元发送的数据作为新的校验数据,并在校验数据存储位置写入新的校验数据。
CN 200710171719 2007-12-04 2007-12-04 数据校验冗余方法及装置 Expired - Fee Related CN101452409B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200710171719 CN101452409B (zh) 2007-12-04 2007-12-04 数据校验冗余方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200710171719 CN101452409B (zh) 2007-12-04 2007-12-04 数据校验冗余方法及装置

Publications (2)

Publication Number Publication Date
CN101452409A true CN101452409A (zh) 2009-06-10
CN101452409B CN101452409B (zh) 2010-10-13

Family

ID=40734654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200710171719 Expired - Fee Related CN101452409B (zh) 2007-12-04 2007-12-04 数据校验冗余方法及装置

Country Status (1)

Country Link
CN (1) CN101452409B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105579980A (zh) * 2013-09-27 2016-05-11 仁荷大学校产学协力团 基于ssd的raid系统中的校验数据的去重
WO2017054182A1 (zh) * 2015-09-30 2017-04-06 华为技术有限公司 一种数据校验方法和装置
CN107544863A (zh) * 2017-06-26 2018-01-05 新华三技术有限公司 一种数据存储方法及装置
WO2018121319A1 (zh) * 2016-12-26 2018-07-05 阿里巴巴集团控股有限公司 一种区块数据校验方法和装置
CN108255429A (zh) * 2018-01-10 2018-07-06 郑州云海信息技术有限公司 一种写操作控制方法、系统、装置及计算机可读存储介质
CN108768629A (zh) * 2018-05-24 2018-11-06 中国科学院信息工程研究所 一种可信中继量子通信方法及系统
CN109634771A (zh) * 2018-10-31 2019-04-16 华为技术有限公司 一种数据保护方法、装置及系统
CN110600070A (zh) * 2019-09-18 2019-12-20 南威软件股份有限公司 一种提升固态硬盘阵列系统修复性能的编码和修复方法
CN111176885A (zh) * 2019-12-31 2020-05-19 浪潮电子信息产业股份有限公司 一种分布式存储系统的数据校验方法及相关装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703753B1 (ko) * 2005-04-14 2007-04-06 삼성전자주식회사 파일 시스템 관리 장치 및 방법
US7779294B2 (en) * 2005-04-15 2010-08-17 Intel Corporation Power-safe disk storage apparatus, systems, and methods
CN100590606C (zh) * 2005-12-14 2010-02-17 兆日科技(深圳)有限公司 闪速存储器数据完整性保护方法
CN100394393C (zh) * 2006-03-10 2008-06-11 四川大学 信息系统数据一致性检测方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105579980A (zh) * 2013-09-27 2016-05-11 仁荷大学校产学协力团 基于ssd的raid系统中的校验数据的去重
WO2017054182A1 (zh) * 2015-09-30 2017-04-06 华为技术有限公司 一种数据校验方法和装置
US10790981B2 (en) 2016-12-26 2020-09-29 Alibaba Group Holding Limited Method and apparatus for verifying block data in a blockchain
WO2018121319A1 (zh) * 2016-12-26 2018-07-05 阿里巴巴集团控股有限公司 一种区块数据校验方法和装置
US10560267B2 (en) 2016-12-26 2020-02-11 Alibaba Group Holding Limited Method and apparatus for verifying block data in a blockchain
CN107544863A (zh) * 2017-06-26 2018-01-05 新华三技术有限公司 一种数据存储方法及装置
CN108255429A (zh) * 2018-01-10 2018-07-06 郑州云海信息技术有限公司 一种写操作控制方法、系统、装置及计算机可读存储介质
CN108255429B (zh) * 2018-01-10 2021-07-02 郑州云海信息技术有限公司 一种写操作控制方法、系统、装置及计算机可读存储介质
CN108768629A (zh) * 2018-05-24 2018-11-06 中国科学院信息工程研究所 一种可信中继量子通信方法及系统
CN109634771A (zh) * 2018-10-31 2019-04-16 华为技术有限公司 一种数据保护方法、装置及系统
CN110600070A (zh) * 2019-09-18 2019-12-20 南威软件股份有限公司 一种提升固态硬盘阵列系统修复性能的编码和修复方法
CN110600070B (zh) * 2019-09-18 2021-11-05 南威软件股份有限公司 一种提升固态硬盘阵列系统修复性能的编码和修复方法
CN111176885A (zh) * 2019-12-31 2020-05-19 浪潮电子信息产业股份有限公司 一种分布式存储系统的数据校验方法及相关装置

Also Published As

Publication number Publication date
CN101452409B (zh) 2010-10-13

Similar Documents

Publication Publication Date Title
CN101452409B (zh) 数据校验冗余方法及装置
US6970987B1 (en) Method for storing data in a geographically-diverse data-storing system providing cross-site redundancy
US7761663B2 (en) Operating a replicated cache that includes receiving confirmation that a flush operation was initiated
US7725655B2 (en) Method of operating distributed storage system in which data is read from replicated caches and stored as erasure-coded data
CN101291347B (zh) 一种网络存储系统
CN103577274B (zh) 管理存储器阵列的方法和装置
US6523087B2 (en) Utilizing parity caching and parity logging while closing the RAID5 write hole
US9367394B2 (en) Decoupled reliability groups
Chang et al. Myriad: Cost-effective disaster tolerance
US6701455B1 (en) Remote copy system with data integrity
US20020062422A1 (en) Method for rebuilding meta-data in a data storage system and a data storage system
US20210271557A1 (en) Data encoding, decoding and recovering method for a distributed storage system
CN106407040A (zh) 一种远程数据复制方法及系统
EP2948849B1 (en) System and method for replicating data
CN101093434A (zh) 用矩阵条带高速缓存器改进raid系统输入和输出性能的方法
US20120047111A1 (en) Method and system for parity-page distribution among nodes of a multi-node data-storage system
CN103761058A (zh) Raid1和raid4混合结构网络存储系统及方法
WO2014056381A1 (zh) 数据冗余实现方法及装置
CN112835743B (zh) 分布式账本数据存储优化方法、装置、电子设备及介质
WO2008101776A1 (en) Preservation of cache data following failover
WO2005043531A2 (en) Methods of reading and writing data
US7000083B2 (en) Resynchronization of count key data with its corresponding meta data
CN101815983A (zh) 用于防止硬盘驱动文件系统的损坏的方法和系统
US20070106925A1 (en) Method and system using checksums to repair data
CN113326006A (zh) 一种基于纠删码的分布式块存储系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101013

Termination date: 20131204