【技术实现步骤摘要】
本专利技术涉及数据存储,尤其涉及一种多核无锁io流中数据一致性自验证方法及存储装置。
技术介绍
1、在存储产品开发过程中,由于质量问题,硬件网络问题,测试工具使用问题等,io流程中会出现的写读数据不一致问题。随着产品的稳定,这些问题最终会被完全解决,然后产品才可以交付到客户手中。
2、通常用于测试数据不一致的工具包括不限制于fio vdbench等,这些工具都是从用户使用角度,通过写入和读取的方式验证存储设备是否存在数据不一致问题。对于定位问题根因,解决问题,无法提供直接帮助。
3、数据一致性的问题有一部分是io流写读的时序问题导致,由于存储产品的io流程较长,特别是分布式存储产品。数据会经过客户端程序,客户端网络,服务器网关,再经过可能的多次网络达到存储设备。定位问题和修改这类问题花费大量开发时间。
4、确定数据不一致问题,需要确定写入读取完成的时序能够有正确的返回内容。
5、以每一笔io都正常完成为例:
6、正确场景:
7、写入1读取1;
8、写入1
...【技术保护点】
1.一种多核无锁IO流中数据一致性自验证方法,其特征在于,包括:在不影响多核无锁IO流的场景下,通过为每个线程申请多个互相隔离的内存页,单独记录每个线程IO时序和关键校验值,然后通过败者树根据时间序列统一归并多个内存页IO序列,验证数据一致性。
2.根据权利要求1所述的多核无锁IO流中数据一致性自验证方法,其特征在于,分配一个内存数组,映射写入的数据区域,数组偏移映射为对应的块区域,数组元素记录关键校验值。
3.根据权利要求2所述的多核无锁IO流中数据一致性自验证方法,其特征在于,每个IO线程分配数个隔离的固定大小的内存页,用于保存IO记录项,
...【技术特征摘要】
1.一种多核无锁io流中数据一致性自验证方法,其特征在于,包括:在不影响多核无锁io流的场景下,通过为每个线程申请多个互相隔离的内存页,单独记录每个线程io时序和关键校验值,然后通过败者树根据时间序列统一归并多个内存页io序列,验证数据一致性。
2.根据权利要求1所述的多核无锁io流中数据一致性自验证方法,其特征在于,分配一个内存数组,映射写入的数据区域,数组偏移映射为对应的块区域,数组元素记录关键校验值。
3.根据权利要求2所述的多核无锁io流中数据一致性自验证方法,其特征在于,每个io线程分配数个隔离的固定大小的内存页,用于保存io记录项,在某一个内存页写满之后,切换到同一线程的下一个内存页。
4.根据权利要求3所述的多核无锁io流中数据一致性自验证方法,其特征在于,io记录项包括io的时间、偏移、长度和关键校验值。
5.根据权利要求4所述的多核无锁io流中数据一致性自验证方法,其特征在于,用于定位的io测试,关键校验值为预置的数据中的随机字段,用于定位数据变化,其他io测试,关键校验值使用数据块的校验值。
6.根据权利要求4所述的多核无锁io流中数据...
【专利技术属性】
技术研发人员:廖兰君,
申请(专利权)人:中电云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。