[发明专利]一种用于检测存储数据异常的方法和装置无效
申请号: | 201210142192.0 | 申请日: | 2012-05-09 |
公开(公告)号: | CN102708020A | 公开(公告)日: | 2012-10-03 |
发明(设计)人: | 徐晓峰;刘涛;涂君 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 唐华明 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 检测 存储 数据 异常 方法 装置 | ||
技术领域
本发明涉及通信领域,尤其涉及一种用于检测存储数据异常的方法和装置。
背景技术
在关于数据的存储-转发应用中,经常使用多个队列存储不同的数据流业务,而每条数据流都有顺序写入顺序读出的需求。一种最简单常用的的存储方式是使用连续存储的队列管理,在存取数据时,这种方式的地址获取和更新都很方便,但每条数据流都需要分配足够大的存储空间承受应用的最大突发,即使没有对应的数据存在,这部分空间已经固定划分,不能被其他数据流使用,如此导致存储资源的浪费。
而使用链表的存储方式中,每条数据流的数据块不再要求连续存储,只需要在写入数据时在每个数据块前添加链表元素头(head),链表元素头的值携带了下一个数据块的地址。因此,在读取数据时只要知道数据流的首个数据块的地址,就能逐个找到下个数据块,这样,每条数据流独立成链,只有存在业务数据才会占用存储空间,大幅减少了存储资源的浪费。
链表由若干个链表元素组成,而一个链表元素的组成包括链表元素头(head)和数据区(data),链表元素头为下个关联数据的存放地址,即下个数据的指针,这种指针可以称为链表元素头指针。如此,N个链表元素通过一条线串接起来,若中间任意一个链表元素头出现错误,会导致链表断链、交叉或自环等情况,即链表异常。
现有的一种检测链表异常的方法是存储器通用的数据校验方法,例如,发现错误并纠正(Error Checkingand Correcting,ECC)、循环冗余校验(Cyclic Redundancy Check,CRC)或重要信息(即链表头)的双备份等,这些方法的共同特点是期望通过底层的物理检测来发现链表的各种异常。
然而,发明人发现,这些基于存储器颗粒的校验方法应用在链表类的存储结构上有如下不足:
1)不能完全检测链表交叉、自环和断链等链表异常情况。这是因为基于链表的存储和读取,经过的路径不仅限于存储器本身,因此,链表元素间的连接关系正确性无法检验。一种情形是写入存储器时数据已经错误,例如,器件软失效或时钟异常导致写入存储器的原始数据错误,而基于存储器颗粒只是在错误的原始数据上加检验和检查检验,无法检查出链表应用的异常;另一种情形是,存储器地址错误,例如,写入数据A和数据B,希望读取到数据A,但由于地址错误读到数据B,数据A和数据B本身都是存储器校验正确的数值,无法检测到异常;
2)即使偶尔一次存储器颗粒错误,也可能导致链表异常,但通常应用中都不会对偶尔出现的一次检测告警做任何处理,因此,告警很可能被淹没,而系统继续工作在不正常状态。
发明内容
本发明实施例提供一种用于检测存储数据异常的方法和装置,以检测出现有技术难以检测到的链表各种异常情形。
本发明实施例提供一种用于检测存储数据异常的方法,所述存储数据为通信过程中产生的需要存储的数据或者数据处理过程中产生的需要存储的数据,所述存储数据使用链表方式进行存取,所述方法包括:
读取链表的一个链表元素中包含的写序列号,所述链表中的每个链表元素都包括写序列号,所述写序列号为所述链表中每增加一个链表元素时在之前的链表元素所包含的写序列号基础上以固定步长Δ变化的标识;
判断所述读取的写序列号是否与所述链表的读序列号对应,如果不对应,则检测所述存储数据出现异常,否则,检测所述存储数据正常,所述读序列号在所述链表初始化时与所述写序列号相等,在读取所述写序列号时以与所述链表中每增加一个链表元素时所述写序列号按照所述固定步长Δ变化的相同方式变化。
可选地,所述写序列号为所述链表中每增加一个链表元素时在之前的链表元素所包含的写序列号基础上以固定步长Δ递增的标识,或者,所述写序列号为所述链表中每增加一个链表元素时在之前的链表元素所包含的写序列号基础上以固定步长Δ递减的标识。
可选地,在检测所述存储数据出现异常后,所述方法进一步包括:将所述链表的读序列号的值Xsnr和所述读取的写序列号的值Xsnw均置为0。
可选地,在检测所述存储数据正常后,所述方法进一步包括:将所述链表的读序列号的值Xsnr以所述固定步长Δ递增至Xsnr+Δ,或者,将所述链表的读序列号的值Xsnr以所述固定步长Δ递减至Xsnr-Δ。
可选地,所述读取链表的一个链表元素中所包含的写序列号之前包括:按照数据写入存储单元的先后顺序,构造所述链表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210142192.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种实时超声图像斑点噪声抑制方法
- 下一篇:交通监控照相补光灯
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置