一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据处理方法、系统、装置、计算机存储介质及电子设备与流程

2023-01-16 12:22:06 来源:中国专利 TAG:


1.本技术实施例涉及存储系统技术领域,具体而言,涉及一种数据处理方法、系统、装置、计算机存储介质及电子设备。


背景技术:

2.在存储系统领域中,无缝数据迁移是指数据从一个存储空间向另外一个存储空间迁移的过程,业务不中断的迁移方式。无缝数据迁移的适用场景事需要将一个存储空间中的数据迁移至另一存储空间,且要求所进行的相关数据业务无中断的场景,典型的场景有负载均衡、设备升级、设备维护等。
3.在相关技术中,数据迁移算法采用的是基于线性索引实现的high water mark算法,图1是相关技术中是数据迁移的示意图,如图1所示,相关技术中的数据迁移算法是按照位图索引,从左向右进行迁移,水位游标将整个空间依次划分为:已迁移空间、正在迁移空间、未迁移空间。
4.但是,随着高端全闪存储技术的发展,相关技术中基于位图索引的实现手段,出现了在索引空间变大和写并发大时,性能损耗严重的问题,以及位图索引需要在初始化时将所有需要的空间全局预留下来,并且存储空间越大,需要预留的空间越大,导致空间浪费的问题。
5.针对上述相关技术中数据迁移方法造成的存储资源浪费和存储性能降低的问题,目前尚未提出有效的解决方案。


技术实现要素:

6.本技术实施例提供了一种数据处理方法及装置,以至少解决相关技术中数据迁移方法造成的存储资源浪费和存储性能降低的问题。
7.根据本技术的一个实施例,提供了一种数据处理方法,包括:扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较,其中,全局水位值在每次启动源存储空间和目标存储空间之间的迁移操作时进行更新,在数据块中的数据从源存储空间迁移至目标存储空间之后,将数据块的水位值更新至与全局水位值相等,或者,在将数据完全覆盖写入源存储空间中的数据块的情况下,将数据块的水位值更新至与全局水位值相等;在当前数据块的水位值等于全局水位值的情况下,在索引表中扫描下一数据块的水位值;在当前数据块的水位值不等于全局水位值的情况下,将当前数据块中的数据迁移至目标存储空间,将当前数据块的水位值更新至与全局水位值相等,并在索引表中扫描下一数据块的水位值;在扫描到索引表中的最后一个数据块的水位值的情况下,停止扫描操作。
8.可选地,在扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较之前,该方法还包括:在启动源存储空间和目标存储空间之间的数据迁移操作的情况下,并对全局水位值进行更新。
9.可选地,在启动源存储空间和目标存储空间之间的数据迁移操作的情况下,将读请求发送至源存储空间。
10.可选地,在启动源存储空间和目标存储空间之间的数据迁移操作的情况下,将写请求同步发送至源存储空间和目标存储空间。
11.可选地,在将写请求同步发送至源存储空间和目标存储空间之后,该方法还包括:在写请求指示将数据完全覆盖写入目标数据块的情况下,将索引表中目标数据块的水位值更新至与全局水位值相等。
12.可选地,在将写请求同步发送至源存储空间和目标存储空间之后,该方法还包括:在写请求指示将数据未完全覆盖写入目标数据块的情况下,索引表中目标数据块的水位值保持不变。
13.可选地,在扫描到索引表中的最后一个数据块的水位值的情况下,停止扫描操作之后,该方法还包括:删除源存储空间的各个数据块中的数据。
14.可选地,索引表为非线性索引表。
15.可选地,在启动源存储空间和目标存储空间之间的数据迁移操作的情况下,并对全局水位值进行更新之前,该方法还包括:将写请求发送至源存储空间;在写请求指示将数据完全覆盖写入目标数据块的情况下,将索引表中目标数据块的水位值更新至与全局水位值相等;在写请求指示将数据未完全覆盖写入目标数据块的情况下,索引表中目标数据块的水位值保持不变。
16.可选地,该方法还包括:在检测扫描操作中断的情况下,若目标存储空间未发生异常,则保持全局水位值不变,并重新执行扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较的步骤。
17.可选地,该方法还包括:在检测扫描操作中断的情况下,若目标存储空间发生异常,则更新全局水位值,并基于更新后的全局水位值重新执行扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较的步骤。
18.根据本技术的另一个实施例,提供了一种数据处理系统,包括:源存储空间,包括多个数据块,每个数据块用于存储数据,响应主机发送的读写请求,并响应主机发送的数据迁移请求;目标存储空间,包括多个数据块,每个数据块用于存储源存储空间的数据块迁移出的数据,并响应响应主机发送的读写请求;主机,用于向源存储空间和/或目标存储空间发送读写请求,还用于启动源存储空间和目标存储空间的数据迁移操作,并在数据读写操作以及数据迁移操作的过程中维护索引表,其中,索引表中包含全局水位值和各个数据块的水位值,全局水位值在每次启动源存储空间和目标存储空间之间的迁移操作时进行更新,在数据块中的数据从源存储空间迁移至目标存储空间之后,将数据块的水位值更新至与全局水位值相等,或者,在将数据完全覆盖写入源存储空间中的数据块的情况下,将数据块的水位值更新至与全局水位值相等。
19.根据本技术的另一个实施例,提供了一种数据处理装置,包括:第一扫描单元,用于扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较,其中,全局水位值在每次启动源存储空间和目标存储空间之间的迁移操作时进行更新,在数据块中的数据从源存储空间迁移至目标存储空间之后,将数据块的水位值更新至与全局水位值相等,或者,在将数据完全覆盖写入源存储空间中的数据块的
情况下,将数据块的水位值更新至与全局水位值相等;第二扫描单元,用于在当前数据块的水位值等于全局水位值的情况下,在索引表中扫描下一数据块的水位值;迁移单元,用于在当前数据块的水位值不等于全局水位值的情况下,将当前数据块中的数据迁移至目标存储空间,将当前数据块的水位值更新至与全局水位值相等,并在索引表中扫描下一数据块的水位值;停止单元,用于在扫描到索引表中的最后一个数据块的水位值的情况下,停止扫描操作。
20.根据本技术的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
21.根据本技术的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
22.本技术扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较;在当前数据块的水位值等于全局水位值的情况下,在索引表中扫描下一数据块的水位值;在当前数据块的水位值不等于全局水位值的情况下,将当前数据块中的数据迁移至目标存储空间,将当前数据块的水位值更新至与全局水位值相等,并在索引表中扫描下一数据块的水位值;在扫描到索引表中的最后一个数据块的水位值的情况下,停止扫描操作。通过将数据块的水位值与全局水位值进行比较确定数据块已迁移还是未迁移,可以解决关技术中数据迁移方法造成的存储资源浪费和存储性能降低的问题,达到节约存储资源、提高存储性能的效果。
附图说明
23.图1是根据相关技术中提供的索引表的示意图;图2是本技术实施例的一种数据处理方法的移动终端的硬件结构框图;图3是根据本技术实施例的数据处理系统的示意图;图4是根据本技术实施例的索引表的示意图;图5是根据本技术实施例的数据处理方法的流程图;图6是根据本技术实施例的可选的数据处理方法的示意图;图7是根据本技术实施例的数据处理装置的结构框图。
具体实施方式
24.下文中将参考附图并结合实施例来详细说明本技术的实施例。
25.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
26.实施例一本技术实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图2是本技术实施例的一种数据处理方法的移动终端的硬件结构框图。如图2所示,移动终端可以包括一个或多个(图2中仅示出一个)处理器202(处理器202可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和
用于存储数据的存储器204,其中,上述移动终端还可以包括用于通信功能的传输设备206以及输入输出设备208。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
27.存储器204可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本技术实施例中的数据处理方法对应的计算机程序,处理器202通过运行存储在存储器204内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
28.传输设备206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备206包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备206可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
29.实施例二在本实施例中提供了一种数据存储系统,包含上述计算机终端,图3是本技术实施例的数据处理系统的示意图,如图3所示,该系统包括:源存储空间301,包括多个数据块,每个数据块用于存储数据,响应主机303发送的读写请求,并响应主机303发送的数据迁移请求。
30.具体地,读写请求即为数据的读请求以及数据的写请求,计算机终端中的主机303可以通过读请求读取源存储空间301的各个数据块中的数据,也可以通过写请求将数据写入源存储空间301的各个数据块中。
31.数据迁移请求即为将源存储空间301的数据块中的数据迁移至目标存储空间302的数据块中。
32.目标存储空间302,包括多个数据块,每个数据块用于存储源存储空间301的数据块迁移出的数据,并响应响应主机303发送的读写请求。
33.具体地,主机303可以通过读请求读取目标存储空间302的各个数据块中的数据,也可以通过写请求将数据写入目标存储空间302的各个数据块中。
34.需要说明的是,在数据迁移前,主机303的可以将读请求、写请求发送至源存储空间301,在数据迁移后,主机303的可以将读请求、写请求发送至目标存储空间302,在数据迁移的过程中,主机303的读请求仅发送至源存储空间301,写请求同步写入源存储空间301和目标存储空间302,从而在数据迁移前后以及数据迁移的过程中不影响主机303正常的数据读写。
35.主机303,用于向源存储空间301和/或目标存储空间302发送读写请求,还用于启动源存储空间301和目标存储空间302的数据迁移操作,并在数据读写操作以及数据迁移操作的过程中维护索引表,其中,索引表中包含全局水位值和各个数据块的水位值,全局水位值在每次启动源存储空间301和目标存储空间302之间的迁移操作时进行更新,在数据块中
的数据从源存储空间301迁移至目标存储空间302之后,将数据块的水位值更新至与全局水位值相等,或者,在将数据完全覆盖写入源存储空间301中的数据块的情况下,将数据块的水位值更新至与全局水位值相等。
36.具体地,图4是本技术实施例的索引表的示意图,如图4所示,若源存储空间301包含4个数据块,由全局变量记录本次数据迁移的水位值,每个数据块记录自身位于的水位值,4个数据块分别具有对应的水位值, 4个数据块共有一个全局水位值,索引表中包含一个全局水位值和4个数据块的水位值。在每次启动迁移操作时,将上一全局水位值做 1操作,得到当前全局水位值,并依次扫描各个数据块的水位值,将水文值与当前全局水位值相等的数据块视为已迁移的数据块,不相等的数据块为未迁移的数据块,在将未迁移的数据块中的数据从源存储空间301迁移至目标存储空间302之后,将该数据块的水位值增长至当前全局水位值。此外,在主机303向源存储空间301中的数据块完全覆盖写入数据的情况下,将该数据块的水位值增长至当前全局水位值,完全覆盖写入是指,该数据块中的所有存储空间均被新的数据覆盖写入。
37.本实施例的数据处理系统,通过源存储空间301,包括多个数据块,每个数据块用于存储数据,响应主机303发送的读写请求,并响应主机303发送的数据迁移请求;目标存储空间302,包括多个数据块,每个数据块用于存储源存储空间301的数据块迁移出的数据,并响应响应主机303发送的读写请求;主机303,用于向源存储空间301和/或目标存储空间302发送读写请求,还用于启动源存储空间301和目标存储空间302的数据迁移操作,并在数据读写操作以及数据迁移操作的过程中维护索引表,其中,索引表中包含全局水位值和各个数据块的水位值,全局水位值在每次启动源存储空间301和目标存储空间302之间的迁移操作时进行更新,在数据块中的数据从源存储空间301迁移至目标存储空间302之后,将数据块的水位值更新至与全局水位值相等,或者,在将数据完全覆盖写入源存储空间301中的数据块的情况下,将数据块的水位值更新至与全局水位值相等。通过将数据块的水位值与全局水位值进行比较确定数据块已迁移还是未迁移,可以解决关技术中数据迁移方法造成的存储资源浪费和存储性能降低的问题,达到节约存储资源、提高存储性能的效果。
38.实施例三在本实施例中提供了一种运行于上述数据处理系统中的移动终端的数据处理方法,移动终端中包含主机,图5是根据本技术实施例的数据处理方法的流程图,如图5所示,该流程包括如下步骤:步骤s502,扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较,其中,全局水位值在每次启动源存储空间和目标存储空间之间的迁移操作时进行更新,在数据块中的数据从源存储空间迁移至目标存储空间之后,将数据块的水位值更新至与全局水位值相等,或者,在将数据完全覆盖写入源存储空间中的数据块的情况下,将数据块的水位值更新至与全局水位值相等。
39.具体地,源存储空间包含多个数据块,每个数据块中存储有数据,源存储空间的索引表存储有记录多个数据块的迁移情况的全局水位值,并存储有多个记录数据块自身迁移情况的水位值。
40.可选地,在本技术实施例的数据处理方法中,索引表为非线性索引表。具体地,索引表可以为哈希表(hash)使用哈希表索引数据,每个数据块里有变量记录自己的水位值,
多个数据块共有一个全局变量记录当前数据迁移的水位值,也即全局水位值。
41.需要说明的是,由于数据块的水位值在数据迁移至目标存储空间之后更新至与全局水位值相等,或者在主机将源存储空间中的数据块完全覆盖写入数据的情况下更新至与全局水位值相等,说明在目标存储空间与源存储空间存在存储有相同数据的数据块情况下,该数据块的水位值与当前全局水位值相等。因而,在将源存储空间中的数据块中的数据向目标存储空间迁移时,需要扫描索引表,将扫描到的当前数据块的水位值与全局水位值进行比较,从而确定哪些数据块中的数据需要进行迁移。
42.全局水位值是判断数据块中的数据是否已进行迁移的基准,可选地,在本技术实施例的数据处理方法中,在扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较之前,该方法还包括:在启动源存储空间和目标存储空间之间的数据迁移操作的情况下,并对全局水位值进行更新。
43.例如,若当前启动的数据迁移操作为首次数据迁移操作,全局水位值初始值为0,开始首次数据迁移之后,立即将该值做 1操作,增长为1。若当前启动的数据迁移操作为第二次数据迁移,由于全局水位值初始值为在首次数据迁移之后更新为1,则在启动第二次数据迁移之后,立即将该值做 1操作,增长为2。
44.步骤s504,在当前数据块的水位值等于全局水位值的情况下,在索引表中扫描下一数据块的水位值。
45.在数据迁移的过程中,若当前数据块的水位值与当前全局水位值相等,说明当前数据块为已迁移的数据块,对当前数据块中的数据无需执行迁移操作,在索引表中继续扫描下一数据块的水位值。
46.步骤s506,在当前数据块的水位值不等于全局水位值的情况下,将当前数据块中的数据迁移至目标存储空间,将当前数据块的水位值更新至与全局水位值相等,并在索引表中扫描下一数据块的水位值;在数据迁移的过程中,若当前数据块的水位值与当前全局水位值不相等,说明当前数据块为未迁移的数据块,需要对当前数据块中的数据执行迁移操作,再在索引表中扫描下一数据块的水位值。需要说明的是,将当前数据块中的数据迁移至目标存储空间之后,当前数据块的迁移状态已经改变,还需更新当前数据块的迁移状态信息,也即,将当前数据块的水位值更新为全局水位值,表征该数据块再目标存储空间与源存储空间存储相同数据。
47.步骤s508,在扫描到索引表中的最后一个数据块的水位值的情况下,停止扫描操作。
48.也即,扫描到索引表中的最后一个数据块的水位值,说明当前次数据迁移操作已完成,则停止扫描操作。
49.下面以一个可选的实施例介绍本技术的数据处理方法,图6是根据本技术实施例的可选的数据处理方法的示意图,如图6所示:索引表为哈希表,在首次进行数据迁移时,全局水位值初始值为0,开始迁移后,立即将该值做 1操作,增长为1,此时整个源存储空间里数据块自身水位值均为0,游标开始遍历哈希索引表,并检查数据块的水位值与全局水位值是否相等,相等视为已迁移数据块,不相等为未迁移数据块。
50.由于全局水位值为1,若整个源存储空间里数据块自身水位值均为0的情况下,数据块的水位值与全局水位值不相同,为未迁移数据块,将未迁移数据块拷贝到目标存储空间,完成拷贝后,将该数据块水位值更新为当前全局水位值。
51.需要说明的是,在数据迁移的过程中,存在将数据同步写入操作源存储空间和目标存储空间的情况,在这种情况下,源存储空间和目标存储空间存在存储数据相同的数据块,该数据块的水位值需要更新至与当前全局水位值相同,也即,在数据迁移的过程中,存在自身水位值从0更新为1的情况,在该情况下,数据块的水位值与全局水位值相同,为已迁移数据块,已迁移数据块不做处理,游标下移到下一个数据块,直至扫描完整个索引表中的数据块的水位值。
52.本实施的数据处理方法,通过以下步骤:扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较,其中,全局水位值在每次启动源存储空间和目标存储空间之间的迁移操作时进行更新,在数据块中的数据从源存储空间迁移至目标存储空间之后,将数据块的水位值更新至与全局水位值相等,或者,在将数据完全覆盖写入源存储空间中的数据块的情况下,将数据块的水位值更新至与全局水位值相等;在当前数据块的水位值等于全局水位值的情况下,在索引表中扫描下一数据块的水位值;在当前数据块的水位值不等于全局水位值的情况下,将当前数据块中的数据迁移至目标存储空间,将当前数据块的水位值更新至与全局水位值相等,并在索引表中扫描下一数据块的水位值;在扫描到索引表中的最后一个数据块的水位值的情况下,停止扫描操作。通过将数据块的水位值与全局水位值进行比较确定数据块已迁移还是未迁移,可以解决关技术中数据迁移方法造成的存储资源浪费和存储性能降低的问题,达到节约存储资源、提高存储性能的效果。
53.在数据迁移的过程中主机可以进行数据读写操作,可选地,在本技术实施例的数据处理方法中,在启动源存储空间和目标存储空间之间的数据迁移操作的情况下,将读请求发送至源存储空间。
54.需要说明的是,在数据迁移的过程中,部分数据在源数据存储空间的数据块中存在,而在目标存储空间的数据块中不存在,此时可以控制读请求仅允许访问源存储设备,从而避免读取不到相应数据的情况发生。
55.在数据迁移的过程中主机可以进行数据读写操作,可选地,在本技术实施例的数据处理方法中,在启动源存储空间和目标存储空间之间的数据迁移操作的情况下,将写请求同步发送至源存储空间和目标存储空间。
56.需要说明的是,在主机存在数据的写请求的情况下,为了避免数据迁移之后,源存储空间的数据块中的数据和目标存储空间不同,主机将数据同时写入源存储空间和目标存储空间。
57.在数据写入时,存在完全写覆盖和未完全写覆盖两种情况,可选地,在本技术实施例的数据处理方法中,在将写请求同步发送至源存储空间和目标存储空间之后,该方法还包括:在写请求指示将数据完全覆盖写入目标数据块的情况下,将索引表中目标数据块的水位值更新至与全局水位值相等。
58.具体地,数据完全覆盖写入目标数据块是指,写入的数据占据目标数据块中的全部存储空间,在该情况下,由于数据同步写入了源存储空间和目标存储空间,源存储空间的
目标数据块和目标存储空间中的目标数据块中的数据相同,可以将索引表中目标数据块的水位值更新至与全局水位值相等,后续无需再对目标数据块执行数据迁移操作。
59.可选地,在本技术实施例的数据处理方法中,在将写请求同步发送至源存储空间和目标存储空间之后,该方法还包括:在写请求指示将数据未完全覆盖写入目标数据块的情况下,索引表中目标数据块的水位值保持不变。
60.具体地,数据未完全覆盖写入目标数据块是指写入的数据占据目标数据块中的部分存储空间,而非全部空间,在该情况下,由于数据同步写入了源存储空间和目标存储空间的目标数据块,若目标数据块为已迁移数据块,目标数据块中的数据同时存在于源存储空间和目标存储空间,无需进行迁移操作,但是,若目标数据块为未迁移数据块,目标数据块中的所有数据并未同时存在于源存储空间和目标存储空间,依然需要进行迁移,因而,维持索引表中目标数据块的水位值不变。
61.可选地,在本技术实施例的数据处理方法中,在启动源存储空间和目标存储空间之间的数据迁移操作的情况下,并对全局水位值进行更新之前,该方法还包括,将写请求发送至源存储空间;在写请求指示将数据完全覆盖写入目标数据块的情况下,将索引表中目标数据块的水位值更新至与全局水位值相等;在写请求指示将数据未完全覆盖写入目标数据块的情况下,索引表中目标数据块的水位值保持不变。
62.具体地,在执行数据迁移操作之前,为用户正常读写的业务场景,此时不存在目标存储空间。主机只写到源存储空间,并检查自己是否为写覆盖,在完全写覆盖的情况下,使用全局水位值更新对应数据块的水位值,在未完全写覆盖的情况下,对应数据块维持原有水位值。也即,在执行数据读写操作之前,读写操作过程中数据块的水位值的调整逻辑可以保持相同,从而简化数据块的水位值的调整逻辑。
63.为了节约存储空间,可选地,在本技术实施例的数据处理方法中,在扫描到索引表中的最后一个数据块的水位值的情况下,停止扫描操作之后,该方法还包括:删除源存储空间的各个数据块中的数据。
64.具体地,在完成数据迁移操作之后,可以对源存储空间清除数据,数据读写操作只访问目标存储空间。
65.此外,需要说明的是,在需要数据备份的情况下,也可以保留源存储空间的数据,也即,本实施例不限定完成数据迁移操作之后对源数据存储空间的数据删除操作。
66.数据迁移操作存在意外中断的情况,可选地,在本技术实施例的数据处理方法中,该方法还包括:在检测扫描操作中断的情况下,若目标存储空间未发生异常,则保持全局水位值不变,并重新执行扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较的步骤。
67.具体地,目标存储空间未发生异常是指目标存储空间未发生损坏,且已迁移到目标存储空间的数据也未发生丢失,在该情况下,保持全局水位值不变,各个数据块的水位值也不变,重新索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较,以确定哪些数据块中的数据需要进行迁移,也即,实现数据迁移的断点接续。
68.可选地,在本技术实施例的数据处理方法中,该方法还包括:在检测扫描操作中断的情况下,若目标存储空间发生异常,则更新全局水位值,并基于更新后的全局水位值重新执行扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与
全局水位值进行比较的步骤。
69.具体地,目标存储空间发未发生异常可以是目标存储空间发生损坏,在该情况下,需要更换目标存储空间。目标存储空间发未发生异常也可以是已迁移到目标存储空间的数据发生丢失,在该情况下,需要将所有的数据重新进行迁移。
70.因而,目标存储空间发生异常的情况下需要更新全局水位值,重新索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与更新后的全局水位值进行比较,以确定哪些数据块中的数据需要重新进行迁移操作。
71.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
72.在本实施例中还提供了一种数据处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
73.图7是根据本技术实施例的数据处理装置的结构框图,如图7所示,该装置包括:第一扫描单元701、第二扫描单元702、迁移单元703和停止单元704。其中:第一扫描单元701,用于扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较,其中,全局水位值在每次启动源存储空间和目标存储空间之间的迁移操作时进行更新,在数据块中的数据从源存储空间迁移至目标存储空间之后,将数据块的水位值更新至与全局水位值相等,或者,在将数据完全覆盖写入源存储空间中的数据块的情况下,将数据块的水位值更新至与全局水位值相等。
74.具体地,源存储空间包含多个数据块,每个数据块中存储有数据,源存储空间的索引表存储有记录多个数据块的迁移情况的全局水位值,并存储有多个记录数据块自身迁移情况的水位值。
75.需要说明的是,由于数据块的水位值在数据迁移至目标存储空间之后更新至与全局水位值相等,或者在主机将源存储空间中的数据块完全覆盖写入数据的情况下更新至与全局水位值相等,说明在目标存储空间与源存储空间存在存储有相同数据的数据块情况下,该数据块的水位值与当前全局水位值相等。因而,在将源存储空间中的数据块中的数据向目标存储空间迁移时,需要扫描索引表,将扫描到的当前数据块的水位值与全局水位值进行比较,从而确定哪些数据块中的数据需要进行迁移。
76.第二扫描单元702,用于在当前数据块的水位值等于全局水位值的情况下,在索引表中扫描下一数据块的水位值。
77.在数据迁移的过程中,若当前数据块的水位值与当前全局水位值相等,说明当前数据块为已迁移的数据块,对当前数据块中的数据无需执行迁移操作,在索引表中继续扫描下一数据块的水位值。
78.迁移单元703,用于在当前数据块的水位值不等于全局水位值的情况下,将当前数
据块中的数据迁移至目标存储空间,将当前数据块的水位值更新至与全局水位值相等,并在索引表中扫描下一数据块的水位值。
79.在数据迁移的过程中,若当前数据块的水位值与当前全局水位值不相等,说明当前数据块为未迁移的数据块,需要对当前数据块中的数据执行迁移操作,再在索引表中扫描下一数据块的水位值。需要说明的是,将当前数据块中的数据迁移至目标存储空间之后,当前数据块的迁移状态已经改变,还需更新当前数据块的迁移状态信息,也即,将当前数据块的水位值更新为全局水位值,表征该数据块再目标存储空间与源存储空间存储相同数据。
80.停止单元704,用于在扫描到索引表中的最后一个数据块的水位值的情况下,停止扫描操作。
81.也即,扫描到索引表中的最后一个数据块的水位值,说明当前次数据迁移操作已完成,则停止扫描操作。
82.上述数据处理装置,可以通过第一扫描单元701扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较,其中,全局水位值在每次启动源存储空间和目标存储空间之间的迁移操作时进行更新,数据块的水位值在从源存储空间迁移至目标存储空间之后更新至与全局水位值相等,或者,在源存储空间中的数据块完全覆盖写入数据的情况下更新至与全局水位值相等;第二扫描单元702在当前数据块的水位值等于全局水位值的情况下,在索引表中扫描下一数据块的水位值;迁移单元703在当前数据块的水位值不等于全局水位值的情况下,将当前数据块中的数据迁移至目标存储空间,将当前数据块的水位值更新至与全局水位值相等,并在索引表中扫描下一数据块的水位值;停止单元704在扫描到索引表中的最后一个数据块的水位值的情况下,停止扫描操作。
83.可选地,在本技术实施例提供的数据处理装置中,该装置还包括:启动单元,用于在扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较之前,在启动源存储空间和目标存储空间之间的数据迁移操作的情况下,并对全局水位值进行更新。
84.例如,若当前启动的数据迁移操作为首次数据迁移操作,全局水位值初始值为0,开始首次数据迁移之后,立即将该值做 1操作,增长为1。若当前启动的数据迁移操作为第二次数据迁移,由于全局水位值初始值为在首次数据迁移之后更新为1,则在启动第二次数据迁移之后,立即将该值做 1操作,增长为2。
85.可选地,在本技术实施例提供的数据处理装置中,第一扫描单元701包括:第一启动模块,用于在启动源存储空间和目标存储空间之间的数据迁移操作的情况下,将读请求发送至源存储空间。
86.需要说明的是,在数据迁移的过程中,部分数据在源数据存储空间的数据块中存在,而在目标存储空间的数据块中不存在,此时可以控制读请求仅允许访问源存储设备,从而避免读取不到相应数据的情况发生。
87.可选地,在本技术实施例提供的数据处理装置中,第一扫描单元701包括:第二启动模块,用于在启动源存储空间和目标存储空间之间的数据迁移操作的情况下,将写请求同步发送至源存储空间和目标存储空间。
88.需要说明的是,在主机存在数据的写请求的情况下,为了避免数据迁移之后,源存储空间的数据块中的数据和目标存储空间不同,主机将数据同时写入源存储空间和目标存储空间。
89.可选地,在本技术实施例提供的数据处理装置中,该装置还包括:第一更新单元,用于在将写请求同步发送至源存储空间和目标存储空间之后,在写请求指示将数据完全覆盖写入目标数据块的情况下,将索引表中目标数据块的水位值更新至与全局水位值相等。
90.具体地,数据完全覆盖写入目标数据块是指,写入的数据占据目标数据块中的全部存储空间,在该情况下,由于数据同步写入了源存储空间和目标存储空间,源存储空间的目标数据块和目标存储空间中的目标数据块中的数据相同,可以将索引表中目标数据块的水位值更新至与全局水位值相等,后续无需再对目标数据块执行数据迁移操作。
91.可选地,在本技术实施例提供的数据处理装置中,该装置还包括:第一保持单元,用于在将写请求同步发送至源存储空间和目标存储空间之后,在写请求指示将数据未完全覆盖写入目标数据块的情况下,索引表中目标数据块的水位值保持不变。
92.具体地,数据未完全覆盖写入目标数据块是指写入的数据占据目标数据块中的部分存储空间,而非全部空间,在该情况下,由于数据同步写入了源存储空间和目标存储空间的目标数据块,若目标数据块为已迁移数据块,目标数据块中的数据同时存在于源存储空间和目标存储空间,无需进行迁移操作,但是,若目标数据块为未迁移数据块,目标数据块中的所有数据并未同时存在于源存储空间和目标存储空间,依然需要进行迁移,因而,维持索引表中目标数据块的水位值不变。
93.可选地,在本技术实施例提供的数据处理装置中,第二扫描单元702包括:删除模块,用于删除源存储空间的各个数据块中的数据。
94.具体地,在完成数据迁移操作之后,可以对源存储空间清除数据,数据读写操作只访问目标存储空间。
95.此外,需要说明的是,在需要数据备份的情况下,也可以保留源存储空间的数据,也即,本实施例不限定完成数据迁移操作之后对源数据存储空间的数据删除操作。
96.可选地,在本技术实施例提供的数据处理装置中,该装置包括:索引表为非线性索引表。
97.可选地,在本技术实施例提供的数据处理装置中,该装置还包括:发送单元,用于在启动源存储空间和目标存储空间之间的数据迁移操作的情况下,并对全局水位值进行更新之前,将写请求发送至源存储空间;第二更新单元,用于在写请求指示将数据完全覆盖写入目标数据块的情况下,将索引表中目标数据块的水位值更新至与全局水位值相等;第二保持单元,用于在写请求指示将数据未完全覆盖写入目标数据块的情况下,索引表中目标数据块的水位值保持不变。
98.具体地,在执行数据迁移操作之前,为用户正常读写的业务场景,此时不存在目标存储空间。主机只写到源存储空间,并检查自己是否为写覆盖,在完全写覆盖的情况下,使用全局水位值更新对应数据块的水位值,在未完全写覆盖的情况下,对应数据块维持原有水位值。也即,在执行数据读写操作之前,读写操作过程中数据块的水位值的调整逻辑可以保持相同,从而简化数据块的水位值的调整逻辑。
99.可选地,在本技术实施例提供的数据处理装置中,第一扫描单元701包括:第一检
测模块,用于检测扫描操作中断的情况下,若目标存储空间未发生异常,则保持全局水位值不变,并重新执行扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较的步骤。
100.可选地,在本技术实施例提供的数据处理装置中,第一扫描单元701还包括:第二检测模块,用于在检测扫描操作中断的情况下,若目标存储空间发生异常,则更新全局水位值,并基于更新后的全局水位值重新执行扫描源存储空间的索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较的步骤。
101.具体地,目标存储空间未发生异常是指目标存储空间未发生损坏,且已迁移到目标存储空间的数据也未发生丢失,在该情况下,保持全局水位值不变,各个数据块的水位值也不变,重新索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与全局水位值进行比较,以确定哪些数据块中的数据需要进行迁移,也即,实现数据迁移的断点接续。
102.可选地,在本技术实施例提供的数据处理装置中,该装置包括:响应模块,用于源存储空间,包括多个数据块,每个数据块用于存储数据,响应发送的读写请求,并响应发送的数据迁移请求;存储模块,用于目标存储空间,包括多个数据块,每个数据块用于存储源存储空间的数据块迁移出的数据,并响应响应发送的读写请求;发送模块,用于,用于向源存储空间和/或目标存储空间发送读写请求,还用于启动源存储空间和目标存储空间的数据迁移操作,并在数据读写操作以及数据迁移操作的过程中维护索引表,其中,索引表中包含全局水位值和各个数据块的水位值,全局水位值在每次启动源存储空间和目标存储空间之间的迁移操作时进行更新,数据块的水位值在从源存储空间迁移至目标存储空间之后更新至与全局水位值相等,或者,在源存储空间中的数据块完全覆盖写入数据的情况下更新至与全局水位值相等。
103.具体地,目标存储空间发未发生异常可以是目标存储空间发生损坏,在该情况下,需要更换目标存储空间。目标存储空间发未发生异常也可以是已迁移到目标存储空间的数据发生丢失,在该情况下,需要将所有的数据重新进行迁移。
104.因而,目标存储空间发生异常的情况下需要更新全局水位值,重新索引表中的数据块的水位值,并将扫描到的当前数据块的水位值与更新后的全局水位值进行比较,以确定哪些数据块中的数据需要重新进行迁移操作。
105.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
106.本技术的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
107.在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
108.本技术的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
109.在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
110.本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
111.显然,本领域的技术人员应该明白,上述的本技术的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术不限制于任何特定的硬件和软件结合。
112.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献