本发明涉及数据处理,尤其涉及一种数据处理方法、装置、计算机设备及可读存储介质。
背景技术:
1、host(主机)与device(设备)进行协议命令交互时,协议规定的读写命令会涉及host与device之间的数据的交互,此时host写入的数据与从device读取来的数据预期是一致的。现有方案主要用于device固件对于存储、读取正确数据能力的验证,首先在生成写入数据时采用临时变量记录pattern,将脚本内申请堆作为data buffer,然后将整个databuffer设置为pattern,最后下发写命令、读校验,脚本结束。
2、但上述方法存在以下几种缺点:(1)当脚本结束后,所有变量均被系统回收,当出现问题时无法追溯,会出现无法定界是host问题导致的写入非预期数据,还是device问题导致的返回非预期数据;(2)写入数据单一,当出现问题后,无法快速定界该lba(logicblock address,逻辑块地址)是否被覆盖写过以及不清楚读到的是否是最新的数据;(3)如果lba间要写入不同数据的时候,通过申请临时变量的方式去维护pattern难度会比较高,且写操作、读校验需要在一个脚本内完成。
技术实现思路
1、有鉴于此,本发明的目的是为了克服现有技术中的不足,提供一种数据处理方法、装置、计算机设备及可读存储介质。
2、本发明提供如下技术方案:
3、第一方面,本公开实施例中提供了一种数据处理方法,所述方法包括:
4、在主机端申请第一固定地址内存区域作为模式表,其中,所述模式表内包含多个逻辑块地址,各所述逻辑块地址对应有目标模式;
5、对所述模式表进行维护,并在所述主机端申请第二固定地址内存区域作为数据缓冲器;
6、根据所述逻辑块地址与所述模式表生成特征数据,根据各所述逻辑块地址对应的目标模式生成剩余数据,将所述特征数据与所述剩余数据保存至所述数据缓冲器中;
7、对所述特征数据与所述剩余数据进行校验,当出现数据校验不一致时,根据所述模式表与所述逻辑块地址确定问题类型。
8、进一步地,所述方法还包括:
9、当所述主机端的内存不足以存放所述模式表时,对所述逻辑块地址进行分段,得到多张模式子表,其中,所述模式子表包含dirty状态和clean状态;
10、将所述模式表存放至预设闪存中,将各所述模式子表存放至所述主机端的内存中。
11、进一步地,所述对所述模式表进行维护,包括:
12、判断所述逻辑块地址所在的模式子表是否存在于所述主机端的内存中;
13、当所述模式子表存在于所述主机端的内存中时,获取所述逻辑块地址对应的目标模式,并将所述目标模式记录至所述模式表中;
14、当所述模式子表不存在于所述主机端的内存中时,根据所述模式子表的状态获取所述逻辑块地址对应的目标模式,并将所述目标模式记录至所述模式表中。
15、进一步地,所述数据缓冲器包含写入数据与读取数据,所述根据所述逻辑块地址与所述模式表生成特征数据,包括:
16、在所述写入数据的第一区间字节写入所述逻辑块地址,在所述写入数据的第二区间字节写入所述模式表;
17、将所述第一区间字节与所述第二区间字节所包含的数据合并为所述特征数据。
18、进一步地,所述根据所述模式表与所述逻辑块地址确定问题类型,包括:
19、当所述特征数据中的所述逻辑块地址出现数据校验不一致时,确定为设备端表项问题;
20、当所述特征数据中的所述目标模式出现数据校验不一致时,根据所述模式表分析所述特征数据是否为历史数据,当所述特征数据为历史数据时确定为所述设备端表项问题或设备端垃圾回收问题。
21、进一步地,所述方法还包括:
22、将所述模式表中未完成的写命令的逻辑块地址修改为虚拟数据;
23、将所述未完成的写命令的逻辑块地址在所述模式表中的当前模式恢复为历史模式。
24、进一步地,所述方法还包括:
25、在所述主机端申请第三固定地址内存区域作为缓存表,所述缓存表中包括多个插槽,每个所述写命令对应一个插槽号;
26、根据各所述写命令的插槽号将所述模式表中的数据更新至所述缓存表中,并判断所述写命令是否执行成功;
27、当所述写命令执行成功时,将对应的插槽号的当前模式同步至所述模式子表;
28、当所述写命令执行失败时,清除对应的插槽号所在的缓存表。
29、第二方面,本公开实施例中提供了一种数据处理装置,所述装置包括:
30、第一申请模块,用于在主机端申请第一固定地址内存区域作为模式表,其中,所述模式表内包含多个逻辑块地址,各所述逻辑块地址对应有目标模式;
31、第二申请模块,用于对所述模式表进行维护,并在所述主机端申请第二固定地址内存区域作为数据缓冲器;
32、数据生成模块,用于根据所述逻辑块地址与所述模式表生成特征数据,根据各所述逻辑块地址对应的目标模式生成剩余数据,将所述特征数据与所述剩余数据保存至所述数据缓冲器中;
33、数据校验模块,用于对所述特征数据与所述剩余数据进行校验,当出现数据校验不一致时,根据所述模式表与所述逻辑块地址确定问题类型。
34、第三方面,本公开实施例中提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中所述的数据处理方法的步骤。
35、第四方面,本公开实施例中提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中所述的数据处理方法的步骤。
36、本申请的有益效果:
37、本申请实施例提供的数据处理方法,方法包括:在主机端申请第一固定地址内存区域作为模式表,其中,所述模式表内包含多个逻辑块地址,各所述逻辑块地址对应有目标模式;对所述模式表进行维护,并在所述主机端申请第二固定地址内存区域作为数据缓冲器;根据所述逻辑块地址与所述模式表生成特征数据,根据各所述逻辑块地址对应的目标模式生成剩余数据,将所述特征数据与所述剩余数据保存至所述数据缓冲器中;对所述特征数据与所述剩余数据进行校验,当出现数据校验不一致时,根据所述模式表与所述逻辑块地址确定问题类型。本申请节省了主机端的内存使用,并减少了大量的问题定位分析时间。
38、为使本发明的上述目的、特征和优点能更明显和易懂,下文特举较佳实施例,并配合所附附图,做详细说明如下。
1.一种数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的数据处理方法,其特征在于,所述对所述模式表进行维护,包括:
4.根据权利要求1所述的数据处理方法,其特征在于,所述数据缓冲器包含写入数据与读取数据,所述根据所述逻辑块地址与所述模式表生成特征数据,包括:
5.根据权利要求1所述的数据处理方法,其特征在于,所述根据所述模式表与所述逻辑块地址确定问题类型,包括:
6.根据权利要求3所述的数据处理方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的数据处理方法,其特征在于,所述方法还包括:
8.一种数据处理装置,其特征在于,所述装置包括:
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述的数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的数据处理方法的步骤。