CN102356384B - 一种检测数据可靠性的方法和装置 - Google Patents
一种检测数据可靠性的方法和装置 Download PDFInfo
- Publication number
- CN102356384B CN102356384B CN2011800016752A CN201180001675A CN102356384B CN 102356384 B CN102356384 B CN 102356384B CN 2011800016752 A CN2011800016752 A CN 2011800016752A CN 201180001675 A CN201180001675 A CN 201180001675A CN 102356384 B CN102356384 B CN 102356384B
- Authority
- CN
- China
- Prior art keywords
- source block
- reliability
- described source
- thread
- makeing mistakes
- 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
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/48—Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed
-
- 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/1004—Adding 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
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种检测数据可靠性的方法和装置,属于计算机技术领域。包括:将源数据划分为多个源数据块;为每一个源数据块建立一个对应的副本数据块,副本数据块与源数据块分别保存在不同的物理内存块中;根据每一个源数据块,为其建立对应的可靠性维护数据结构;将其注册在中央处理器上的第一可靠性维护线程,使其按照一定频率对注册在第一可靠性维护线程上的可靠性维护数据结构对应的源数据块进行检测,对源数据块的可靠性校验值与可靠性维护数据结构中记载的可靠性校验值进行比对,若不相同则源数据块出错,用副本数据块替换出错的源数据块。本发明实现了对数据可靠性的快速检测、及恢复错误数据的目的,降低了系统开销。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种检测数据可靠性的方法和装置。
背景技术
随着计算机关键业务的应用越来越多,计算机系统可靠性的要求也随之越来越高。尤其是在经济、金融等对数据可靠性要求较高的领域,一旦处理程序或存储的信息发生错误,就会产生不可估量的损失。因此,提高程序或存储信息的可靠性就显得非常重要。
现有技术中检测数据可靠性的解决方案有两种。第一种方式是在物理内存中保存进程代码段的两份副本,并把进程代码段划分为固定大小的内存区域,按照划分结果,启动相应数目的内核线程作为一致性维护线程,实时维护进程代码段区域和副本之间的一致性,如果发现程序代码段错误,就进行恢复。第二种方式是预先为数据设置断点,当发现数据错误时,回滚到预先设置的断点或重新加载数据,重启程序。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
使用第一种方式时,出现错误的数据块再次出现错误的可能性较大,且可靠性按字节需要连续比较两次,才能判断数据是否可靠,同时维护可靠性的内核线程数目与数据块的数目相同,导致内核线程过多,增加了系统的开销,不易于系统管理。使用第二种方式时,程序重置浪费了系统时间,增加了系统的开销,且在某些应用场景下,是坚决不允许进行程序重置的发生,这会对业务产生巨大的影响。
发明内容
为了提高检测数据及恢复数据的效率,本发明实施例提供了一种检测数据可靠性的方法和装置。所述技术方案如下:
本发明实施例提出了一种检测数据可靠性的方法,包括:
将源数据划分为多个源数据块;
为每一个所述源数据块建立一个对应的副本数据块,所述副本数据块与所述源数据块分别保存在不同的物理内存块中;
根据每一个所述源数据块,为其建立对应的可靠性维护数据结构;
将可靠性维护数据结构注册在中央处理器上的第一可靠性维护线程,使其按照一定频率对注册在所述第一可靠性维护线程上的可靠性维护数据结构对应的源数据块进行检测,对所述源数据块的可靠性校验值与所述源数据块在其对应的可靠性维护数据结构中记载的可靠性校验值进行比对,若不相同则代表所述源数据块出错,用出错的源数据块对应的副本数据块替换所述出错的源数据块。
本发明实施例提出了一种检测数据可靠性的装置,包括:
划分模块,用于将源数据划分为多个源数据块;
第一建立模块,用于为每一个所述源数据块建立一个对应的副本数据块,所述副本数据块与所述源数据块分别保存在不同的物理内存块中;
第二建立模块,用于根据每一个所述源数据块,为其建立对应的可靠性维护数据结构;
检测模块,用于将可靠性维护数据结构注册在中央处理器上的第一可靠性维护线程,使其按照一定频率对注册在所述第一可靠性维护线程上的可靠性维护数据结构对应的源数据块进行检测,对所述源数据块的可靠性校验值与所述源数据块在其对应的可靠性维护数据结构中记载的可靠性校验值进行比对,若不相同则代表所述源数据块出错,用出错的源数据块对应的副本数据块替换所述出错的源数据块。
本发明实施例提供的技术方案的有益效果是:通过为源数据块建立对应的副本数据块和对应的可靠性维护数据结构,使用在中央处理器上的少量线程,将源数据块的可靠性校验值与所述源数据块在其对应的可靠性维护数据结构中记载的可靠性校验值进行比对,判断是否发生错误以及发生错误后使用副本数据进行替换,实现了对数据可靠性的快速检测、及恢复错误数据的目的,降低了系统开销。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的检测数据可靠性的方法的流程示意图;
图2是本发明实施例2提供的检测数据可靠性的方法的流程示意图;
图3是本发明实施例3提供的检测数据可靠性的装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本发明实施例1提出了一种检测数据可靠性的方法,其流程如图1所示,包括:
步骤101:将源数据划分为多个源数据块;
步骤102:为每一个所述源数据块建立一个对应的副本数据块,所述副本数据块与所述源数据块分别保存在不同的物理内存块中;
步骤103:根据每一个所述源数据块,为其建立对应的可靠性维护数据结构;
步骤104:将可靠性维护数据结构注册在中央处理器上的第一可靠性维护线程,使其按照一定频率对注册在所述第一可靠性维护线程上的可靠性维护数据结构对应的源数据块进行检测,对所述源数据块的可靠性校验值与所述源数据块在其对应的可靠性维护数据结构中记载的可靠性校验值进行比对,若不相同则代表所述源数据块出错,用所述出错的源数据块对应的副本数据块替换所述出错的源数据块。
本发明实施例通过为源数据块建立对应的副本数据块和对应的可靠性维护数据结构,使用在中央处理器上的少量线程,将源数据块的可靠性校验值与所述源数据块在其对应的可靠性维护数据结构中记载的可靠性校验值进行比对,判断是否发生错误以及发生错误后使用副本数据进行替换,实现了对数据可靠性的快速检测、及恢复错误数据的目的,降低了系统开销。
实施例2
本发明实施例2提出了一种检测数据可靠性的方法,其流程如图2所示,包括:
步骤201:将源数据划分为多个源数据块。
将需要进行可靠性检测的源数据,划分为大小相等的源数据块,由于并不是对源数据按照大小进行平均等分的,而是根据页框的整数倍对源数据进行划分的,因此划分后的最后一个源数据块大小有可能和其他源数据块大小不相同。页框是内存管理中的概念,CPU中添加了能自动把虚拟内存(即逻辑地址)地址转化为物理内存地址的电路,为了简化这种电路,就把RAM(Random Access Memory,随机存储器)划分为长度为4KB或8KB的块,这种块就叫页框。
本发明实施例中,对需要进行可靠性检测的源数据可以为内核代码、程序代码、运行中的关键数据等对系统具有重要作用的数据。
步骤202:为每一个所述源数据块建立一个对应的副本数据块,所述副本数据块与所述源数据块分别保存在不同的物理内存块中。
为每一个源数据块建立与其对应的副本数据块,用于对源数据块出现错误后进行替换的备份数据。其中,副本数据块与源数据块分开保存,分别处于不同的物理内存块中。例如将源数据块存储于NUMA(Non Uniform Memory Access Achitecture,非均匀内存存取架构)内存的块上,副本数据块存储与源数据块不相同的NUMA内存的块上。
步骤203:根据每一个所述源数据块,为其建立对应的可靠性维护数据结构。
具体的,生成的每一个可靠性维护数据结构是与其对应的源数据块一一对应的。可靠性维护数据结构至少包括以下数据:源数据块的数据大小、源数据块在内存中的起始地址、副本数据块在内存中的起始地址、可靠性校验值、错误信息、检测时间等可靠性检测信息。其中,可靠性校验值用来判断该源数据块的正确性,可以使用的校验算法很多,例如可靠性校验值可以通过MD5(Message Digest Algorithm 5,消息摘要算法第五版)算法或CRC32(Cyclic Redundancy Check,循环冗余校验码)算法或SHA1(Secure Hash Algorithm,安全哈希算法)算法获得,本发明实施例对此并不进行限制。
步骤204:判断中央处理器上是否存在第一可靠性维护线程。
若存在,则执行步骤206;若不存在则执行步骤205,在中央处理器节点M上建立第一可靠性维护线程。
由于中央处理器节点M上的第一可靠性维护线程只对其对应的内存块进行检测,中央处理器节点N上的第二可靠性维护线程只对其对应的内存块进行检测,且这两个内存块不是只一个内存块。因此,假设保存源数据块的内存块,是中央处理器节点M上的第一可靠性维护线程对应的内存块;保存副本数据块的内存块,是中央处理器节点N上的第二可靠性维护线程对应的内存块。
步骤205:在中央处理器节点M上建立第一可靠性维护线程。
步骤206:将源数据块对应的可靠性维护数据结构添加到第一链表上,并将所述第一链表注册在中央处理器节点M上的第一可靠性维护线程。
在中央处理器节点M上的第一可靠性维护线程对应的内存块中的源数据块所对应的可靠性维护数据结构都添加到第一链表上,中央处理器节点M上的第一可靠性维护线程可以根据第一链表上的可靠性维护数据结构中的源数据块在内存中的起始地址找到源数据块,并对该源数据块进行检测。
步骤207:在中央处理器节点M上的第一可靠性维护线程按照一定频率对注册在所述第一可靠性维护线程上的可靠性维护数据结构对应的源数据块进行检测。
检测的具体过程为:
步骤2071:判断第一可靠性维护线程上注册的第一链表中是否存在可靠性维护数据结构,若不存在则注销第一可靠性维护线程。
因为每个可靠性维护数据结构都会对应着一个源数据块,因此若存在可靠性维护数据结构则说明还有源数据块需要进行检测。若存在可靠性维护数据结构,则执行步骤2072;若不存在,则注销当前中央处理器节点M上的第一可靠性维护线程。
步骤2072:计算源数据块的可靠性校验值。
通过与构建可靠性维护数据结构时使用的用于计算可靠性校验值相同的校验算法对源数据块进行校验计算,生成可靠性校验码。
步骤2073:对所述源数据块的可靠性校验值与所述源数据块在其对应的可靠性维护数据结构中记载的可靠性校验值进行比对,若不相同则代表所述源数据块出错,用所述出错的源数据块对应的副本数据块替换所述出错的源数据块。
将源数据块计算后得到的可靠性校验值与该源数据块在构建可靠性维护数据结构中记载的可靠性校验值进行比对。若两个可靠性校验值相同,则说明该源数据块没有错误,进行步骤2079,第一可靠性维护线程继续检测下一个源数据块;若两个可靠性校验值不相同,则说明该源数据块出现错误,进行步骤2074,对出错的源数据块进行更换。
步骤2074:修改内存页表,用所述出错的源数据块对应的副本数据块的内存地址替换所述出错的源数据块的内存地址。
修改内存页表,用所述出错的源数据块对应的副本数据块的内存地址替换所述出错的源数据块的内存地址,即将出错的源数据块对应的副本数据块替换该源数据块与其他源数据块保存在同一内存块中。
步骤2075:为替换所述出错的源数据块对应的副本数据块建立可靠性维护数据结构,并将所述副本数据块的可靠性维护数据结构添加到第二链表。
此时出错的源数据块已经更换为其对应的副本数据块,即副本数据块变更为了源数据块,但是并没有一个可靠性维护数据结构与该副本数据块相对应,因此为变更为源数据块的副本数据块建立与其对应的数据结构。其中,此处建立的可靠性维护数据结构的内容与步骤203中的可靠性维护数据结构和内容相同,并将在新建立的可靠性维护数据结构中的错误信息的字段中记录此次发生的错误,在检测时间的字段中记录此次发生错误的时间。
步骤2076:判断中央处理器节点N上是否存在第二可靠性维护线程,若存在则将所述第二链表注册在中央处理器节点N上的第二可靠性维护线程,若不存在则在中央处理器节点N上建立第二可靠性维护线程,再将第二链表注册在中央处理器节点N上的第二可靠性维护线程。
为替换出错的源数据块对应的副本数据块建立可靠性维护数据结构之后,在中央处理器节点N上判断是否存在可靠性维护进程,若存在则将第二链表注册在中央处理器节点N上的第二可靠性维护线程;若不存在则在中央处理器节点N上建立第二可靠性维护线程,并再将第二链表注册在中央处理器节点N上的第二可靠性维护线程。
替换数据后,每个用于替换源数据块的副本数据块都会建立一个可靠性维护数据结构,新建立的可靠性维护数据结构都会在中央处理器节点N上的第二可靠性维护线程上注册,使用中央处理器节点N上的第二可靠性维护线程来检测替换错误的源数据块的这些副本数据块的可靠性。
步骤2077:触发在中央处理器节点N上的第二可靠性维护线程,使其按照一定频率对注册在第二可靠性维护线程上的源数据块进行检测。
触发注册在中央处理器节点N上的第二可靠性维护线程对注册在其上的源数据块进行检测,第二可靠性维护线程根据第二链表内可靠性维护数据结构中的起始地址找到源数据块进行检测,过程如中央处理器节点M上的第一可靠性维护线程进行检测的过程相同,在此不再赘述。
步骤2078:对所述出错的源数据块进行修复;若修复成功则将所述出错的源数据块变更为副本数据,并将其对应的可靠性维护数据结构在所述中央处理器上的第一可靠性维护线程中注销掉;若修复不成功则将所述出错的源数据块从内存中删除,并根据所述出错的源数据块对应的副本数据块重建一个新的副本数据块。
修复的方法如下:若源数据块中某点出现错误,则将其对应的副本数据块中某点的内容复制至出错的源数据块中。
若修复成功则修改内存的页表,将出错的源数据块对应的副本数据块的内存地址替换出错的源数据块的内存地址,即将出错的源数据块变更为副本数据。并将出错的源数据块对应的可靠性维护数据结构在中央处理器节点M上的第一可靠性维护线程中注销掉。
若由于某些原因,例如硬件发生问题而导致的数据修复不成功则将该出错的源数据块从内存中删除,并根据替换该出错的源数据块的副本数据块进行复制,重建一个副本数据块,保存在替换该出错的源数据块的副本数据块的内存地址上。此时,被替换的源数据块与重建的副本数据块处于不同的物理内存块中。并将修复不成功错误通报系统记录为日志,以便用户根据日志查找产生错误的原因,并及时维护软硬件使得系统保持最佳状态。
步骤2079:继续检测下一个源数据块。
需要说明的是,源数据块按照热点程度分为若干类,每类源数据块有一个可靠性维护线程按照特定的检测频率检测数据可靠性,从而使得检测频率与源数据块的热点程度建立关联。
本发明实施例通过为源数据块建立对应的副本数据块和对应的可靠性维护数据结构,使用在中央处理器上的少量线程,将源数据块的可靠性校验值与所述源数据块在其对应的可靠性维护数据结构中记载的可靠性校验值进行比对,判断是否发生错误以及发生错误后使用副本数据进行替换,实现了对数据可靠性的快速检测、及恢复错误数据的目的,降低了系统开销。
实施例3
本发明实施例3提出了一种检测数据可靠性的装置,其结构如图3所示,包括:
划分模块301,用于将源数据划分为多个源数据块。
第一建立模块302,用于为每一个所述源数据块建立一个对应的副本数据块,所述副本数据块与所述源数据块分别保存在不同的物理内存块中。
第二建立模块303,用于根据每一个所述源数据块,为其建立对应的可靠性维护数据结构。
检测模块304,用于将可靠性维护数据结构注册在中央处理器上的第一可靠性维护线程,使其按照一定频率对注册在所述第一可靠性维护线程上的可靠性维护数据结构对应的源数据块进行检测,对所述源数据块的可靠性校验值与所述源数据块在其对应的可靠性维护数据结构中记载的可靠性校验值进行比对,若不相同则代表所述源数据块出错,用所述出错的源数据块对应的副本数据块替换所述出错的源数据块。
其中,检测模块包括:
判断单元3041,用于判断中央处理器上是否存在第一可靠性维护线程;
第一注册单元3042,用于若存在则将所述源数据块对应的可靠性维护数据结构添加到链表上,并将所述链表注册在所述中央处理器上的第一可靠性维护线程;
第二注册单元3043,用于若不存在则在所述中央处理器上建立第一可靠性维护线程,将所述源数据块对应的可靠性维护数据结构添加到链表上,并将所述链表注册在中央处理器上的第一可靠性维护线程。
修改单元3044,用于修改内存页表,用所述出错的源数据块对应的副本数据块的内存地址替换所述出错的源数据块的内存地址。。
检测数据可靠性的装置还包括:
第三建立模块305,用于为替换所述出错的源数据块对应的副本数据块建立可靠性维护数据结构,并将所述副本数据块的可靠性维护数据结构注册在中央处理器上的第二可靠性维护线程上。
修复模块306,用于对所述出错的源数据块进行修复。
第一执行模块307,用于若修复成功则将所述出错的源数据块变更为副本数据,并将其对应的可靠性维护数据结构在所述中央处理器上的第一可靠性维护线程中注销掉。
第二执行模块308,用于若修复不成功则将所述出错的源数据块从内存中删除,并根据所述出错的源数据块对应的副本数据块重建一个新的副本数据块。
本发明实施例通过为源数据块建立对应的副本数据块和对应的可靠性维护数据结构,使用在中央处理器上的少量线程,将源数据块的可靠性校验值与所述源数据块在其对应的可靠性维护数据结构中记载的可靠性校验值进行比对,判断是否发生错误以及发生错误后使用副本数据进行替换,实现了对数据可靠性的快速检测、及恢复错误数据的目的,降低了系统开销。
本发明实施例第三实施例的装置与前述的第一和第二实施例的方法构思和原理相同,因此在第三实施例中对与第一和第二实施例中相同的部分不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种检测数据可靠性的方法,其特征在于,所述方法包括:
将源数据划分为多个源数据块;
为每一个所述源数据块建立一个对应的副本数据块,所述副本数据块与所述源数据块分别保存在不同的物理内存块中;
根据每一个所述源数据块,为其建立对应的可靠性维护数据结构;
将可靠性维护数据结构注册在中央处理器上的第一可靠性维护线程,使其按照一定频率对注册在所述第一可靠性维护线程上的可靠性维护数据结构对应的源数据块进行检测,对所述源数据块的可靠性校验值与所述源数据块在其对应的可靠性维护数据结构中记载的可靠性校验值进行比对,若不相同则代表所述源数据块出错,用出错的源数据块对应的副本数据块替换所述出错的源数据块。
2.根据权利要求1所述的方法,其特征在于,所述将可靠性维护数据结构注册在中央处理器上的第一可靠性维护线程,包括:
判断中央处理器上是否存在第一可靠性维护线程;
若存在则将所述源数据块对应的可靠性维护数据结构添加到链表上,并将所述链表注册在所述中央处理器上的第一可靠性维护线程;
若不存在则在所述中央处理器上建立第一可靠性维护线程,将所述源数据块对应的可靠性维护数据结构添加到链表上,并将所述链表注册在中央处理器上的第一可靠性维护线程。
3.根据权利要求1所述的方法,其特征在于,所述用所述出错的源数据块对应的副本数据块替换所述源数据块,包括:
修改内存页表,用所述出错的源数据块对应的副本数据块的内存地址替换所述出错的源数据块的内存地址。
4.根据权利要求1所述的方法,其特征在于,所述用所述出错的源数据块对应的副本数据块替换所述出错的源数据块之后,所述方法还包括:
为替换所述出错的源数据块对应的副本数据块建立可靠性维护数据结构,并将所述副本数据块的可靠性维护数据结构注册在中央处理器上的第二可靠性维护线程上。
5.根据权利要求1所述的方法,其特征在于,所述用所述出错的源数据块对应的副本数据块替换所述出错的源数据块之后,所述方法还包括:
对所述出错的源数据块进行修复;
若修复成功则将所述出错的源数据块变更为副本数据,并将其对应的可靠性维护数据结构在所述中央处理器上的第一可靠性维护线程中注销掉;
若修复不成功则将所述出错的源数据块从内存中删除,并根据所述出错的源数据块对应的副本数据块重建一个新的副本数据块。
6.一种检测数据可靠性的装置,其特征在于,所述装置包括:
划分模块,用于将源数据划分为多个源数据块;
第一建立模块,用于为每一个所述源数据块建立一个对应的副本数据块,所述副本数据块与所述源数据块分别保存在不同的物理内存块中;
第二建立模块,用于根据每一个所述源数据块,为其建立对应的可靠性维护数据结构;
检测模块,用于将可靠性维护数据结构注册在中央处理器上的第一可靠性维护线程,使其按照一定频率对注册在所述第一可靠性维护线程上的可靠性维护数据结构对应的源数据块进行检测,对所述源数据块的可靠性校验值与所述源数据块在其对应的可靠性维护数据结构中记载的可靠性校验值进行比对,若不相同则代表所述源数据块出错,用出错的源数据块对应的副本数据块替换所述出错的源数据块。
7.根据权利要求6所述的装置,其特征在于,所述检测模块包括:
判断单元,用于判断中央处理器上是否存在第一可靠性维护线程;
第一注册单元,用于若存在则将所述源数据块对应的可靠性维护数据结构添加到链表上,并将所述链表注册在所述中央处理器上的第一可靠性维护线程;
第二注册单元,用于若不存在则在所述中央处理器上建立第一可靠性维护线程,将所述源数据块对应的可靠性维护数据结构添加到链表上,并将所述链表注册在中央处理器上的第一可靠性维护线程。
8.根据权利要求6所述的装置,其特征在于,所述检测模块还包括:
修改单元,用于修改内存页表,用所述出错的源数据块对应的副本数据块的内存地址替换所述出错的源数据块的内存地址。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第三建立模块,用于为替换所述出错的源数据块对应的副本数据块建立可靠性维护数据结构,并将所述副本数据块的可靠性维护数据结构注册在中央处理器上的第二可靠性维护线程上。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
修复模块,用于对所述出错的源数据块进行修复;
第一执行模块,用于若修复成功则将所述出错的源数据块变更为副本数据,并将其对应的可靠性维护数据结构在所述中央处理器上的第一可靠性维护线程中注销掉;
第二执行模块,用于若修复不成功则将所述出错的源数据块从内存中删除,并根据所述出错的源数据块对应的副本数据块重建一个新的副本数据块。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/078796 WO2012119410A1 (zh) | 2011-08-23 | 2011-08-23 | 一种检测数据可靠性的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102356384A CN102356384A (zh) | 2012-02-15 |
CN102356384B true CN102356384B (zh) | 2013-04-24 |
Family
ID=45579277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011800016752A Active CN102356384B (zh) | 2011-08-23 | 2011-08-23 | 一种检测数据可靠性的方法和装置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9195543B2 (zh) |
EP (1) | EP2738677B1 (zh) |
JP (1) | JP5914660B2 (zh) |
KR (1) | KR101615833B1 (zh) |
CN (1) | CN102356384B (zh) |
AU (1) | AU2011361394B2 (zh) |
BR (1) | BR112014004176B1 (zh) |
ES (1) | ES2539260T3 (zh) |
WO (1) | WO2012119410A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014081457A1 (en) * | 2012-11-21 | 2014-05-30 | Coherent Logix Incorporated | Processing system with interspersed processors dma-fifo |
DE102013209453A1 (de) * | 2013-05-22 | 2014-11-27 | Robert Bosch Gmbh | Verfahren und Vorrichtungen zum Bereitstellen von Informationen zu Wartungs- und Servicezwecken einer Batterieeinheit |
DE102013209427A1 (de) * | 2013-05-22 | 2014-11-27 | Robert Bosch Gmbh | Verfahren und Vorrichtungen zum Bereitstellen von Informationen zu Wartungs- und Servicezwecken einer Batterieeinheit |
DE102013209446A1 (de) * | 2013-05-22 | 2014-11-27 | Robert Bosch Gmbh | Verfahren und Vorrichtungen zum Bereitstellen von Informationen zu Wartungs- und Servicezwecken einer Batterie |
CN103279712B (zh) * | 2013-05-28 | 2016-05-25 | 华为技术有限公司 | 增强系统安全性的方法、校验装置及安全系统 |
CN104461759B (zh) * | 2014-11-27 | 2018-05-11 | 杭州华为企业通信技术有限公司 | 一种内存多位错误的处理方法及装置 |
KR102297541B1 (ko) | 2014-12-18 | 2021-09-06 | 삼성전자주식회사 | 메모리 영역의 신뢰성에 기초하여 데이터를 저장하는 저장 장치 및 스토리지 시스템 |
CN105869309A (zh) * | 2016-03-24 | 2016-08-17 | 广州广电运通信息科技有限公司 | 驱动模块内存数据监测方法及装置 |
KR20180023267A (ko) * | 2016-08-25 | 2018-03-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
CN108009054A (zh) * | 2017-12-27 | 2018-05-08 | 江苏徐工信息技术股份有限公司 | 一种双eMMC备份存储系统及方法 |
CN109324920B (zh) * | 2018-10-09 | 2022-03-04 | 杭州兔小二科技实业有限公司 | 一种对字节数组进行校验修正的方法和智能设备 |
CN110083540B (zh) * | 2019-04-29 | 2023-04-28 | 北京口袋时尚科技有限公司 | 接口测试方法及装置 |
DE112019007379T5 (de) * | 2019-05-31 | 2022-02-17 | Micron Technology, Inc. | Flash-speicher-architektur, die redundanz der verbindungsverbindung implementiert |
CN112053737B (zh) * | 2020-08-21 | 2022-08-26 | 国电南瑞科技股份有限公司 | 一种在线并行处理的软错误实时检错与恢复方法及系统 |
CN112506900A (zh) * | 2020-11-27 | 2021-03-16 | 中广核工程有限公司 | 核电厂通风管三维数据检查方法、装置、设备及存储介质 |
US11861177B2 (en) * | 2021-08-06 | 2024-01-02 | Micron Technology, Inc. | Configurable verify level for a set of data in a memory device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030168A (zh) * | 2007-02-15 | 2007-09-05 | 华为技术有限公司 | 一种实现高可靠性链表的方法及装置 |
US7325155B2 (en) * | 2004-09-14 | 2008-01-29 | Seagate Technology Llc | Embedded system with reduced susceptibility to single event upset effects |
CN101501653A (zh) * | 2006-02-06 | 2009-08-05 | X档案公司 | 磁盘的长期备份 |
CN101901174A (zh) * | 2010-07-28 | 2010-12-01 | 西安交通大学 | 基于代码段多副本对比机制提高程序可靠性方法 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05181755A (ja) * | 1992-01-06 | 1993-07-23 | Hitachi Ltd | 仮想記憶方式 |
JP3575811B2 (ja) * | 1992-05-07 | 2004-10-13 | 株式会社日立製作所 | 記憶装置 |
JPH0962586A (ja) * | 1995-08-25 | 1997-03-07 | Fujitsu Ltd | 情報処理装置及び情報処理装置におけるデータ処理方法 |
US7228469B2 (en) * | 2003-01-02 | 2007-06-05 | Fujitsu Limited | Portable information device, method for recovering data in portable information device, and computer product |
US7237141B2 (en) * | 2003-06-19 | 2007-06-26 | Lsi Corporation | Method for recovering data from a redundant storage object |
US7865804B2 (en) | 2004-12-08 | 2011-01-04 | Smiths Aerospace Llc | System and method for enhanced error detection in memory peripherals |
US20060294299A1 (en) * | 2005-06-28 | 2006-12-28 | Intel Corporation | Techniques to verify storage of information |
US7853825B2 (en) | 2005-08-16 | 2010-12-14 | Hewlett-Packard Development Company, L.P. | Methods and apparatus for recovering from fatal errors in a system |
US7523323B2 (en) | 2005-09-15 | 2009-04-21 | Intel Corporation | Method and apparatus for quick resumption |
US8161353B2 (en) * | 2007-12-06 | 2012-04-17 | Fusion-Io, Inc. | Apparatus, system, and method for validating that a correct data segment is read from a data storage device |
US8751859B2 (en) * | 2007-05-10 | 2014-06-10 | International Business Machines Corporation | Monitoring lost data in a storage system |
US7694191B1 (en) * | 2007-06-30 | 2010-04-06 | Emc Corporation | Self healing file system |
US8739009B1 (en) * | 2007-12-27 | 2014-05-27 | Marvell International Ltd. | Methods and apparatus for defect detection and correction via iterative decoding algorithms |
US7770065B2 (en) * | 2008-02-06 | 2010-08-03 | Inventec Corporation | File data restoring system and method of computer operating system and software thereof |
WO2010035316A1 (ja) * | 2008-09-24 | 2010-04-01 | 富士通株式会社 | メモリ制御装置およびメモリ制御方法 |
US9003259B2 (en) * | 2008-11-26 | 2015-04-07 | Red Hat, Inc. | Interleaved parallel redundancy check calculation for memory devices |
US8341496B2 (en) * | 2009-02-06 | 2012-12-25 | Microsoft Corporation | Redundant data in storage medium |
CN101650680A (zh) | 2009-07-27 | 2010-02-17 | 浪潮电子信息产业股份有限公司 | 一种基于连续快照的持续数据保护的方法 |
US8407516B2 (en) * | 2009-12-23 | 2013-03-26 | Intel Corporation | Controlling memory redundancy in a system |
US20120096310A1 (en) * | 2010-10-18 | 2012-04-19 | Brocade Communications Systems, Inc. | Redundancy logic |
WO2013039534A1 (en) * | 2011-09-12 | 2013-03-21 | Microsoft Corporation | Querying and repairing data |
US9152502B2 (en) * | 2012-12-21 | 2015-10-06 | Microsoft Technology Licensing, Llc | Data error detection and correction using hash values |
-
2011
- 2011-08-23 WO PCT/CN2011/078796 patent/WO2012119410A1/zh active Application Filing
- 2011-08-23 JP JP2014526354A patent/JP5914660B2/ja active Active
- 2011-08-23 AU AU2011361394A patent/AU2011361394B2/en active Active
- 2011-08-23 KR KR1020147007207A patent/KR101615833B1/ko active IP Right Grant
- 2011-08-23 CN CN2011800016752A patent/CN102356384B/zh active Active
- 2011-08-23 BR BR112014004176-8A patent/BR112014004176B1/pt active IP Right Grant
- 2011-08-23 ES ES11860298.6T patent/ES2539260T3/es active Active
- 2011-08-23 EP EP11860298.6A patent/EP2738677B1/en active Active
-
2012
- 2012-12-31 US US13/732,017 patent/US9195543B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7325155B2 (en) * | 2004-09-14 | 2008-01-29 | Seagate Technology Llc | Embedded system with reduced susceptibility to single event upset effects |
CN101501653A (zh) * | 2006-02-06 | 2009-08-05 | X档案公司 | 磁盘的长期备份 |
CN101030168A (zh) * | 2007-02-15 | 2007-09-05 | 华为技术有限公司 | 一种实现高可靠性链表的方法及装置 |
CN101901174A (zh) * | 2010-07-28 | 2010-12-01 | 西安交通大学 | 基于代码段多副本对比机制提高程序可靠性方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2738677A4 (en) | 2014-07-23 |
JP5914660B2 (ja) | 2016-05-11 |
AU2011361394B2 (en) | 2015-07-09 |
ES2539260T3 (es) | 2015-06-29 |
BR112014004176A2 (pt) | 2017-06-13 |
EP2738677A1 (en) | 2014-06-04 |
JP2014529793A (ja) | 2014-11-13 |
AU2011361394A1 (en) | 2014-03-20 |
CN102356384A (zh) | 2012-02-15 |
US20130124914A1 (en) | 2013-05-16 |
EP2738677B1 (en) | 2015-03-18 |
BR112014004176B1 (pt) | 2021-09-14 |
WO2012119410A1 (zh) | 2012-09-13 |
KR20140050738A (ko) | 2014-04-29 |
KR101615833B1 (ko) | 2016-04-26 |
US9195543B2 (en) | 2015-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102356384B (zh) | 一种检测数据可靠性的方法和装置 | |
US10949405B2 (en) | Data deduplication device, data deduplication method, and data deduplication program | |
US7366740B2 (en) | Systems and methods for automatic maintenance and repair of enitites in a data model | |
JP6854885B2 (ja) | 重複排除ストレージ内のイメージを修復するためのシステム及び方法 | |
JP2005322246A5 (zh) | ||
CN109656896B (zh) | 故障修复方法、装置及分布式存储系统和存储介质 | |
CN109656895B (zh) | 分布式存储系统、数据写入方法、装置和存储介质 | |
JP2009230628A5 (zh) | ||
CN103516736A (zh) | 分布式缓存系统的数据恢复方法及装置 | |
WO2013163864A1 (zh) | 数据持久化处理方法、装置及数据库系统 | |
CN105573859A (zh) | 一种数据库的数据恢复方法和设备 | |
CN104685474A (zh) | 包括不可纠正的错误的地址范围的通知 | |
CN106155943B (zh) | 一种双控存储设备的掉电保护的方法及装置 | |
CN104375905A (zh) | 一种基于数据块的增量备份的方法和系统 | |
US10990489B2 (en) | Replication system with network failover | |
US11249866B1 (en) | Snapshot-based data corruption detection | |
CN107729182B (zh) | 数据存储和访问的方法及装置 | |
CN101901174A (zh) | 基于代码段多副本对比机制提高程序可靠性方法 | |
US10740202B2 (en) | System and method for efficient comparison of mirrored storage devices | |
CN104461759B (zh) | 一种内存多位错误的处理方法及装置 | |
CN107402841A (zh) | 大规模分布式文件系统数据修复方法及设备 | |
CN114722927A (zh) | 一种崩溃聚类方法、装置、电子设备以及存储介质 | |
Zhang et al. | Software-Based Detecting and Recovering from ECC-Memory Faults | |
CN108255640B (zh) | 分布式存储中冗余数据快速恢复方法及装置 | |
CN117271190A (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 |