掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 19:30:30


数据处理方法、装置、电子设备及存储介质

技术领域

本发明实施例涉及数据云存储技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。

背景技术

存储网关是位于用户侧的硬件或软件,作为本地应用和云存储间的桥梁来提供服务。如果云存储使用基于HTTP(HyperTextTransfer Protocol,超文本传输协议)的协议,而本地应用只能访问传统的SAN(StorageArea Network,存储局域网络)、NAS(NetworkAttached Storage,网络附属存储),存储网关就可以在本地应用和云存储所使用的不同协议之间做转换,达到不修改已有应用也可以使数据上云的目的。此外,存储网关还可以缓存热数据,提升用户侧的读写性能。

当存储网关所在节点发生硬件故障,导致本地缓存的数据丢失时,通常可以利用云端的数据进行恢复。相关技术中,基于性能的考虑,存储网关通常以并发的方式向云端上传数据。由于并发的存在,数据在云端上传成功的顺序可能是乱序的,因此在进行数据恢复时不能简单地将所有上传成功的数据都作为当前的有效数据。恢复出对用户有意义的有效数据是当前存储网关系统的设计难点之一。

因此,目前亟需一种新的数据处理方法。

发明内容

本发明实施例提供一种数据处理方法、装置、电子设备及存储介质,以至少部分解决相关技术中存在的问题。

本发明实施例第一方面提供了一种数据处理方法,应用于存储网关,所述方法包括:

在本地存储元件发生故障的情况下,从云端服务器中获取屏障版本号,所述屏障版本号是最近一次连续成功上传至所述云端服务器的数据组的版本号,一个数据组包括预设数据量阈值的待上传数据,一个数据组对应云端服务器中的一个或多个对象,所述云端服务器按照一个或多个对象的形式,对存储网关上传的数据组中的数据进行存储;

根据所述屏障版本号,从所述云端存储服务器中下载有效对象,以完成数据恢复,其中,所述有效对象是版本号为最大有效版本号的对象,所述最大有效版本号小于或等于所述屏障版本号。

可选地,所述方法还包括:

从所述云端服务器中获取历史对象,所述历史对象用于记录首次存储以及每次数据恢复对应的实例ID和版本号区间,所述版本号区间对应所述屏障版本号;

根据所述历史对象,判断从所述云端服务器中读取到的对象的版本号是否在所述历史对象所记载的版本号区间内;

在读取到的对象的版本号在所述历史对象所记载的版本号区间内的情况下,确定读取到的对象是所述有效对象。

可选地,所述方法还包括:

在读取到的对象的版本号不在所述历史对象所记载的版本号区间内的情况下,确定读取到的对象的版本号为无效版本号;

继续从所述云端服务器中读取所述无效版本号的低一版本号的对象,直至读取到的对象为有效对象为止。

可选地,所述方法还包括:

在首次将数据存储到所述本地存储元件之后,以及每次进行数据恢复之后,对本地存储的历史对象进行更新;

将更新后的历史对象上传至所述云端服务器。

可选地,所述方法还包括:

在客户端写入的数据量达到所述预设数据量阈值的情况下,生成数据组,为所生成的数据组添加版本号;为不同数据组添加的版本号随着数据组的生成时间递增;

将所生成的数据组划分成一个或多个对象;

将划分出的各个对象上传至所述云端服务器,并将所述数据组的版本号确定为所述各个对象的版本号;

在所述数据组成功上传的情况下,将所述数据组的版本号作为所述屏障版本号上传至云端服务器。

可选地,所述方法还包括:

在所生成的数据组包含已成功上传的对象的部分更新数据的情况下,从所述云端服务器下载该对象;

根据所生成的数据组包含的所述部分更新数据,对所下载的对象中的数据进行部分替换,得到版本更新后的对象;

将所述版本更新后的对象上传至云端服务器。

可选地,所述方法还包括:

在所生成的数据组包含已成功上传的对象的全部更新数据的情况下,将所生成的数据组包含的所述全部更新数据,作为版本更新后的对象上传至云端服务器。

可选地,在所述数据组成功上传的情况下,所述方法还包括以下至少一者:

删除所述本地存储元件中版本号小于或等于所述屏障版本号的数据组;

向所述云端服务器发送删除指示,所述删除指示用于指示所述云端服务器删除版本号小于所述屏障版本号的对象。

本发明实施例第二方面提供了一种数据处理装置,应用于存储网关,所述装置包括:

第一获取模块,用于在本地存储元件发生故障的情况下,从云端服务器中获取屏障版本号,所述屏障版本号是最近一次连续成功上传至所述云端服务器的数据组的版本号,一个数据组包括预设数据量阈值的待上传数据,一个数据组对应云端服务器中的一个或多个对象,所述云端服务器按照一个或多个对象的形式,对存储网关上传的数据组中的数据进行存储;

下载模块,用于根据所述屏障版本号,从所述云端存储服务器中下载有效对象,以完成数据恢复,其中,所述有效对象是版本号为最大有效版本号的对象,所述最大有效版本号小于或等于所述屏障版本号。

可选地,所述装置还包括:

第二获取模块,用于从所述云端服务器中获取历史对象,所述历史对象用于记录首次存储以及每次数据恢复对应的实例ID和版本号区间,所述版本号区间对应所述屏障版本号;

判断模块,用于根据所述历史对象,判断从所述云端服务器中读取到的对象的版本号是否在所述历史对象所记载的版本号区间内;

第一确定模块,用于在读取到的对象的版本号在所述历史对象所记载的版本号区间内的情况下,确定读取到的对象是所述有效对象。

可选地,所述装置还包括:

第二确定模块,用于在读取到的对象的版本号不在所述历史对象所记载的版本号区间内的情况下,确定读取到的对象的版本号为无效版本号;

读取模块,用于继续从所述云端服务器中读取所述无效版本号的低一版本号的对象,直至读取到的对象为有效对象为止。

可选地,所述装置还包括:

历史对象更新模块,用于在首次将数据存储到所述本地存储元件之后,以及每次进行数据恢复之后,对本地存储的历史对象进行更新;

历史对象上传模块,用于将更新后的历史对象上传至所述云端服务器。

可选地,所述装置还包括:

数据组生成模块,用于在客户端写入的数据量达到所述预设数据量阈值的情况下,生成数据组,为所生成的数据组添加版本号;为不同数据组添加的版本号随着数据组的生成时间递增;

对象划分模块,用于将所生成的数据组划分成一个或多个对象;

对象上传模块,用于将划分出的各个对象上传至所述云端服务器,并将所述数据组的版本号确定为所述各个对象的版本号;

屏障版本号上传模块,用于在所述数据组成功上传的情况下,将所述数据组的版本号作为所述屏障版本号上传至云端服务器。

可选地,所述装置还包括:

对象下载模块,用于在所生成的数据组包含已成功上传的对象的部分更新数据的情况下,从所述云端服务器下载该对象;

替换模块,用于根据所生成的数据组包含的所述部分更新数据,对所下载的对象中的数据进行部分替换,得到版本更新后的对象;

第一对象更新模块,用于将所述版本更新后的对象上传至云端服务器。

可选地,所述装置还包括:

第二对象更新模块,用于在所生成的数据组包含已成功上传的对象的全部更新数据的情况下,将所生成的数据组包含的所述全部更新数据,作为版本更新后的对象上传至云端服务器。

可选地,在所述数据组成功上传的情况下,所述装置还包括以下至少一者:

本地删除模块,用于删除所述本地存储元件中版本号小于或等于所述屏障版本号的数据组;

云端删除模块,用于向所述云端服务器发送删除指示,所述删除指示用于指示所述云端服务器删除版本号小于所述屏障版本号的对象。

本发明实施例第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明第一方面所述的方法中的步骤。

本发明实施例第四方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如本发明第一方面所述的方法中的步骤。

本发明实施例中,存储网关在进行数据恢复时,以云端服务器中对象的最大版本号(小于等于屏障版本号)的方式来读取。这样,从云端服务器下载的数据是小于等于屏障版本号的有效数据,假设,存储网关在向云端服务器上传数据组的过程中中断,导致本次数据组未完整上传,由于本次数据组的版本号大于上一次上传至云端服务器的数据组的版本号,则部分已经上传至云端服务器的数据对应的对象的版本号大于上一次成功上传云端服务器的屏障版本号(该屏障版本号等于最近一次连续成功上传的数据组的版本号),从而,在进行数据恢复时,以云端服务器中对象的最大版本号(小于等于屏障版本号)的方式来读取有效对象,不会从云端服务器读到大于屏障版本号的这部分未完整上传的数据(无效数据)。

由此,本发明实施例中,在存储网关的本地存储元件损坏的情况下,网关只需下载屏障版本号,就可以成功从云端服务器恢复下载有效数据,以处理后续来自用户的读请求,达到了快速恢复业务的目的。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例的一种数据处理方法的流程图;

图2是本发明实施例的另一种数据处理方法的流程图;

图3是本发明实施例的另一种数据处理方法的流程图;

图4是本发明实施例的一种数据处理装置的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1,示出了本发明实施例的一种数据处理方法的流程图,本发明实施例所提供的数据处理方法应用于存储网关,本发明实施例提供的数据处理方法可以包括以下步骤:

S101,在本地存储元件发生故障的情况下,从云端服务器中获取屏障版本号。

本发明实施例中,存储网关位于用户侧,为用户提供了块存储的接口,可以把客户端写入的数据转换成对象后上传到云端,同时也起到缓存热数据、降低读写延时的作用。

本发明实施例中,云端服务器提供了基于对象的读写接口,具有较大的存储容量,用于保存全量的数据。

本发明实施例中,位于云端服务除器除了一般的写入、读取、删除对象的功能外,还具备多版存储本的功能,即对同一个对象名可以保存多个版本的数据,而且版本之间是可以比较版本号大小。

本发明实施例中,用户可以在存储网关上创建多个卷,并通过存储网关所支持的协议来读写数据。存储网关可以利用本地的内存和本地存储元件(例如:磁盘)来缓存用户新写入的数据。对于新收到的写请求,存储网关首先会将数据写入内存,然后异步地将数据写入本地存储元件,只要数据在存储网关的内存中写入成功,存储网关就会向用户返回写成功,但是这部分数据可能在网关断电后丢失。如果要保证数据在断电后不丢失,用户需要发送特定请求,以使已返回写成功的数据都成功地持久化到存储网关的本地存储元件中。

本发明实施例中,存储网关可以将本地存储元件的存储空间(例如:一个卷)按照一个固定的长度划分为多份,每一份对应于云端服务器的一个对象。一个存储空间的全部对象会统一存储在一个指定的路径前缀之下,这个路径可以全部或者部分由用户指定。每个对象可以按照某种以卷中偏移量为序的方式来命名,以指示其在卷中所代表的数据范围。例如,一个卷的总大小为100MiB,云端服务器以1MiB一个对象进行存储,存储路径的前缀为/a/b/c,那么云端服务器会存储100个对象:/a/b/c/0,/a/b/c/1. …,/a/b/c/99。其中对象/a/b/c/0对应的是[0,1MiB)范围内的数据,对象/a/b/c/1对应的是[1MiB, 2MiB)范围内的数据,以此类推。除了上述方式,对象的命名还可以使用其在卷中的偏移量,例如:/a/b/c/0 /a/b/c/1048576, …, /a/b/c/103809024。

本发明实施例中,所述屏障版本号是最近一次连续成功上传至所述云端服务器的数据组的版本号,一个数据组包括预设数据量阈值的待上传数据,一个数据组对应云端服务器中的一个或多个对象,所述云端服务器按照一个或多个对象的形式,对存储网关上传的数据组中的数据进行存储。

本发明实施例中,当客户端向存储网关写入的数据量,达到预设数据量阈值时,存储网关将写入的数据量作为一个数据组,并为该数据组生成对应的版本号。本发明实施例中,一个数据组可能涉及云端服务器中一个或多个对象的上传或更新。

本发明实施例中,在存储网关将当前数据组中涉及的相关对象的数据对应上传后,可以对相关对象的版本号进行更新,并且,在当前数据组成功上传之后,将屏障版本号上传至云端服务器,该屏障版本号即为当前数据组的版本号。从而,在下一次上传之前云端服务器中存储的所有对象的数据的版本号均小于等于该屏障版本号。

本发明实施例中,本发明实施例中,存储网关还可以按照数据组的版本号大小顺序,同时并发上传多个数据组,在存储网关并发上传数据组的情况下,屏障版本号为并发上传的多个数据组中的最大数据组版本号,即屏障版本号等于最大连续成功上传的数据组的版本号。例如,在并发上传的情况下,版本号为100、200的数据组上传成功了,屏障版本号为200,在此基础上并发地上传版本号为300、400的数据组,其中400成功了,300尚未成功,此时屏障版本号仍是200。在这种情况下,将成功上传了的屏障版本号为400的数据组对应的对象也视作无效对象,从而可以在多线程处理的情况下,避免对屏障版本号的频繁更新,同时避免存储网关恢复到无效数据。

S102,根据所述屏障版本号,从所述云端存储服务器中下载有效对象,以完成数据恢复。

本发明实施例中,所述有效对象是版本号为最大有效版本号的对象,所述最大有效版本号小于或等于所述屏障版本号。

本发明实施例中,将成功上传至云端服务器的数据组对应的数据作为有效数据,相应的,将最近一次成功上传至云端服务器之后,云端服务器上存在的所有对象作为有效对象。

本发明实施例中,通过屏障版本号,可以从云端服务器中下载到最近一次成功上传云端服务器之后,云端服务器存在的有效对象。具体的,本发明实施例中,存储网关在进行数据恢复时,以云端服务器中对象的最大版本号(小于等于屏障版本号)的方式来读取。这样,从云端服务器下载的数据是小于等于屏障版本号的有效数据,假设,存储网关在向云端服务器上传数据组的过程中中断,导致本次数据组未完整上传,由于本次数据组的版本号大于上一次上传至云端服务器的数据组的版本号,则部分已经上传至云端服务器的数据对应的对象的版本号大于上一次成功上传云端服务器的屏障版本号(该屏障版本号等于最近一次上传成功的数据组的版本号),从而,在进行数据恢复时,这些无效数据不会包括在有效对象里面,存储网关不会从云端服务器读到大于屏障版本号的这部分未完整上传的数据。

因此,本发明实施例中,在存储网关的本地存储元件损坏的情况下,网关只需下载屏障版本号,就可以成功从云端服务器恢复下载有效数据,以处理后续来自用户的读请求,达到了快速恢复业务的目的。

参照图2,示出了本发明实施例的一种数据处理方法的流程图,本发明实施例所提供的数据处理方法,具体可以包括以下步骤:

S201,在本地存储元件发生故障的情况下,从云端服务器中获取屏障版本号。

S202,根据所述屏障版本号,从所述云端存储服务器中下载有效对象,以完成数据恢复。

本发明实施例中,S201~202与上述步骤S101~S102类似,在此不再赘述。

S203,从所述云端服务器中获取历史对象,所述历史对象用于记录首次存储以及每次数据恢复对应的实例ID和版本号区间,所述版本号区间对应所述屏障版本号。

本发明实施例中,存储网关可以在首次存储以及每次数据恢复时生成对应的实例ID并将该实例ID上传至云端服务器,并将实例ID和数据恢复时的屏障版本号进行关联,进而得到首次存储以及每次数据恢复对应的实例ID和版本号区间。

示例地,例如,首次存储时实例ID为x,屏障版本号为0;第一次数据恢复时实例ID为y,屏障版本号为100;第三次恢复时实例ID为z,屏障版本号为200。那么,可以确定版本号[0, 100]属于x的有效数据,版本号(100, 200]属于y的有效数据,版本号大于200为z的无效数据。实例ID和版本号范围的对应关系可以作为历史对象上传到云端。

本发明实施例中,在存储网关上传对象对应的数据时,实例ID会作为对象的元数据信息或者数据的一部分一同上传,下载时也会随着对象的数据一并返回。

S204,根据所述历史对象,判断从所述云端服务器中读取到的对象的版本号是否在所述历史对象所记载的版本号区间内。

本发明实施例中,在利用屏障版本号将本地存储的数据恢复到屏障版本号所对应的状态后,云上可能存在大于本次恢复采用的屏障版本号的对象,然而,如前所述,这些对象实际上属于无效对象,不应在后续的任何读操作中被访问到,因为它们所对应的数据组没有完全上传成功,或之前的某一个数据组未完全上传成功。但是后续用户可能写入新的数据,在未来的某一时刻使得屏障版本号大于这些无效对象的版本号,为了避免将这些无效对象误判为有效对象。本发明实施例中可以采用历史对象中记载的实例ID和版本号区间的对应关系,根据读取的对象数据中的实例ID,判断该对象是否为有效对象。继续以前述示例为例进行解释:假设在实例ID:y对应的数据恢复事件之前上传的了一个数据组(版本号为101),但是该数据组没有上传成功,并且云上存在版本号为101的无效对象(因为该对象所对应的数据组没有完全上传成功),此时,其版本号大于实例ID:y对应的数据恢复事件采用的屏障版本号100,可以判断该对象为无效对象,并且由于该对象是在实例ID:y对应的数据恢复事件之前上传的,因为该无效对象的实例ID为x,由于,历史对象所记载实例ID为x的事件对应的区间为[0, 100],由此,可以判断该对象为无效对象。

S205,在读取到的对象的版本号在所述历史对象所记载的版本号区间内的情况下,确定读取到的对象是所述有效对象。

在读取到的对象的版本号不在所述历史对象所记载的版本号区间内的情况下,确定读取到的对象的版本号为无效版本号;执行下述步骤:

继续从所述云端服务器中读取所述无效版本号的低一版本号的对象,直至读取到的对象为有效对象为止。

本发明实施例中,在存储网关发起的读流程中,可以利用历史对象中的信息判断读到的对象是有效数据还是无效数据,如果是无效数据,存储网关还会进一步下载更低版本的对象,直到下载到有效对象为止。

本发明实施例中,通过历史对象,可以保证在每次进行数据恢复时被判断为无效对象的数据,在后续的读流程或者数据恢复流程中永远是无效对象,不会被误判为有效对象。

参照图3,示出了本发明实施例的一种数据处理方法的流程图,本发明实施例所提供的数据处理方法,具体可以包括以下步骤:

S301,在客户端写入的数据量达到所述预设数据量阈值的情况下,生成数据组,为所生成的数据组添加版本号;为不同数据组添加的版本号随着数据组的生成时间递增。

本法实施例中,对于每一个收到的写请求,存储网关都可以为该写请求分配一个版本号,版本号越大意味着数据越新。在新写入的数据积累到一个大小上限后,网关会把这些数据作为一个待上传的数据组,并为这个数据组设置一个版本号,这个版本号就是该数据组所包含的最大写请求版本号。因为写请求的版本号是单调递增的,所以数据组的版本号也是单调递增的,版本号越大的数据组所包含的数据越新。随后,网关将这个数据组所包含的数据上传到云端的对象存储服务中。

本发明实施例中,对于不同数据组,其版本号随着数据组的生成时间递增。从而,本发明实施例中,存储网关在向云端服务器上传数据时,对于同一个数据组涉及的不同对象可以并发地进行新版本的构造和上传。在存储网关上传数据的过程中,可能需要上传多个数据组,此时,同一个对象存在多个需要上传的不同版本,本发明实施例中,同一个对象的不同版本可以按照版本号从小到大的顺序进行构造和上传。

S302,将所生成的数据组划分成一个或多个对象。

本发明实施例中,存储网关生成的一个数据组可能涉及云端服务器上一个或多个对象的更新,而且每个对象既可能是完全更新,也可能是部分更新。下面仍以1MiB作为划分对象的基本单位,对象序号直接作为对象名进行示例性解释,假设一个数据组中包含3段数据:[0,1MiB),[1MiB,1.5MiB)和[2.5MiB,3MiB),它们分别涉及对象0、1和2的更新。那么对于对象0来说,这是一个完全更新,因为数据组中包含了对象0全部的最新数据;对于对象1、2来说则是部分更新,因为数据组中仅包含了对象1前一半和对象2后一半的数据。

本发明实施例中,存储网关在得到一个完整的、待上传的数据组后,存储网关可以构造出与其对应的最新版本的对象。具体包括:确定数据组所涉及的对象。只要一个对象在卷中的偏移量和数据组中某段数据在卷中的偏移量重合,该对象就是数据组所涉及的对象。

S303,将划分出的各个对象上传至所述云端服务器,并将所述数据组的版本号确定为所述各个对象的版本号。

本发明实施例中,在首次将划分出的各个对象上传至所述云端服务器之后,后续存储网关进行数据组上传时,则可能会涉及到云端服务器的各个对象的部分更新或者全部更新。因此,所述步骤S303可以具体包括以下两种情况:

S303A:在所生成的数据组包含已成功上传的对象的部分更新数据的情况下,从所述云端服务器下载该对象;根据所生成的数据组包含的所述部分更新数据,对所下载的对象中的数据进行部分替换,得到版本更新后的对象;将所述版本更新后的对象上传至云端服务器。

本发明实施例中,对于部分更新的对象,存储网关首先需要从云上下载旧版本的对象,随后将被更新的部分用当前数据组中的数据替换,从而得到最新版本的对象,该对象的版本号为当前数据组的版本号。例如,前面提到的对象1,存储网关会把当前云端服务器最新版本的对象下载到本地,将前一半的数据更新为当前数据组中的数据,最终形成新版本的对象。

S303B:在所生成的数据组包含已成功上传的对象的全部更新数据的情况下,将所生成的数据组包含的所述全部更新数据,作为版本更新后的对象上传至云端服务器。

本发明实施例中,对于完全更新的对象,可以直接使用数据组中的数据作为最新版本的对象。例如前面提到的对象0,数据组中的[0,1MiB)会直接作为最新版本的对象在后续流程中进行上传。并且,这个对象的版本号会使用其所属数据组的版本号。

S304,在所述数据组成功上传的情况下,将所述数据组的版本号作为所述屏障版本号上传至云端服务器。

本发明实施例中,存储网关只要构造出了一个新版本的对象,就会将这个对象上传到云端,这个对象的版本号会使用其所属数据组的版本号。

在所述数据组的所有对象均上传成功之后,视作该数据组成功上传,在当前上传中的数据组全部上传成功之后,进而将最近一次连续成功上传的数据组的版本号作为屏障版本号上传至云端服务器,其中,在单线程处理的情况下,可以直接将最近一次成功上传至所述云端服务器的数据组的版本号作为屏障版本号上传至云端服务器,在多线程处理的情况下,在所有线程的数据组均上传成功之后,将最大连续成功上传至所述云端服务器的数据组的版本号作为屏障版本号。从而云端服务器中,所有有效对象(该对象所属的数据组成功上传)的版本号均小于等于该屏障版本号。

本发明实施例中,在数据组成功上传的情况下,还可以执行以下任意一个或多个步骤:

S1,删除所述本地存储元件中版本号小于或等于所述屏障版本号的数据组。

本发明实施例中,在屏障版本号上传成功后,存储网关就可以删除本地存储元件中版本号小于等于屏障版本号的数据组,以释放出存储空间,用于接收后续写入的新数据。

S2,向所述云端服务器发送删除指示,所述删除指示用于指示所述云端服务器删除版本号小于所述屏障版本号的对象。

本发明实施例中,存储网关还可以指示云端服务器,删除屏障版本号以下的所有旧版本。

本发明实施例中,云端服务器也可以在接收到屏障版本号之后,自动删除云端服务器删除版本号小于所述屏障版本号的对象,以释放存储空间。

S305,在本地存储元件发生故障的情况下,从云端服务器中获取屏障版本号。

S306,根据所述屏障版本号,从所述云端存储服务器中下载有效对象,以完成数据恢复。

所述步骤S305~S306与上述步骤S101~S102类似,本发明实施例在此不再赘述。

本发明实施例中,云端服务器还可以提供如下的接口供存储网关使用:

1、指定对象名和版本号写入:存储网关可以将数据写入到云端服务器中,按照指定的对象名及版本号保存。

2、指定对象名和版本号读取:云端服务器可以根据存储网关指定的对象名和版本号,返回该版本号所对应的数据,如果没有这个版本号的数据,则返回对象不存在。

3、指定对象名和最大版本号读取:云端服务器可以根据存储网关指定的对象名返回小于等于所指定版本号的最大版本,如果不存在符合条件的版本,则返回对象不存在。例如:一个对象存在版本3、5、7,如果请求中指定的最大版本号是6,对象存储服务会返回版本号5所对应的数据;如果请求中指定的最大版本号是2,对象存储服务会返回不存在。

4、指定对象名和版本号删除:云端服务器可以根据存储网关指定的对象名和版本号删除与指定版本号相对应的数据。

5、指定对象名和版本号范围删除:云端服务器可以根据存储网关指定的对象名和版本号范围,删除落在指定范围内的版本,保留其余版本。例如:一个对象存在版本3、5、7、9,如果删除请求中指定的版本号范围是4-8,那么版本5、7会被删除,版本3、9会被保留。

基于同一发明构思,本发明实施例提供一种数据处理装置,参考图4,图4是本发明实施例提供的数据处理装置的示意图,所述装置应用于存储网关,该装置包括:

第一获取模块401,用于在本地存储元件发生故障的情况下,从云端服务器中获取屏障版本号,所述屏障版本号是最近一次连续成功上传至所述云端服务器的数据组的版本号,一个数据组包括预设数据量阈值的待上传数据,一个数据组对应云端服务器中的一个或多个对象,所述云端服务器按照一个或多个对象的形式,对存储网关上传的数据组中的数据进行存储;

下载模块402,用于根据所述屏障版本号,从所述云端存储服务器中下载有效对象,以完成数据恢复,其中,所述有效对象是版本号为最大有效版本号的对象,所述最大有效版本号小于或等于所述屏障版本号。

可选地,所述装置还包括:

第二获取模块,用于从所述云端服务器中获取历史对象,所述历史对象用于记录首次存储以及每次数据恢复对应的实例ID和版本号区间,所述版本号区间对应所述屏障版本号;

判断模块,用于根据所述历史对象,判断从所述云端服务器中读取到的对象的版本号是否在所述历史对象所记载的版本号区间内;

第一确定模块,用于在读取到的对象的版本号在所述历史对象所记载的版本号区间内的情况下,确定读取到的对象是所述有效对象。

可选地,所述装置还包括:

第二确定模块,用于在读取到的对象的版本号不在所述历史对象所记载的版本号区间内的情况下,确定读取到的对象的版本号为无效版本号;

读取模块,用于继续从所述云端服务器中读取所述无效版本号的低一版本号的对象,直至读取到的对象为有效对象为止。

可选地,所述装置还包括:

历史对象更新模块,用于在首次将数据存储到所述本地存储元件之后,以及每次进行数据恢复之后,对本地存储的历史对象进行更新;

历史对象上传模块,用于将更新后的历史对象上传至所述云端服务器。

可选地,所述装置还包括:

数据组生成模块,用于在客户端写入的数据量达到所述预设数据量阈值的情况下,生成数据组,为所生成的数据组添加版本号;为不同数据组添加的版本号随着数据组的生成时间递增;

对象划分模块,用于将所生成的数据组划分成一个或多个对象;

对象上传模块,用于将划分出的各个对象上传至所述云端服务器,并将所述数据组的版本号确定为所述各个对象的版本号;

屏障版本号上传模块,用于在所述数据组成功上传的情况下,将所述数据组的版本号作为所述屏障版本号上传至云端服务器。

可选地,所述装置还包括:

对象下载模块,用于在所生成的数据组包含已成功上传的对象的部分更新数据的情况下,从所述云端服务器下载该对象;

替换模块,用于根据所生成的数据组包含的所述部分更新数据,对所下载的对象中的数据进行部分替换,得到版本更新后的对象;

第一对象更新模块,用于将所述版本更新后的对象上传至云端服务器。

可选地,所述装置还包括:

第二对象更新模块,用于在所生成的数据组包含已成功上传的对象的全部更新数据的情况下,将所生成的数据组包含的所述全部更新数据,作为版本更新后的对象上传至云端服务器。

可选地,在所述数据组成功上传的情况下,所述装置还包括以下至少一者:

本地删除模块,用于删除所述本地存储元件中版本号小于或等于所述屏障版本号的数据组;

云端删除模块,用于向所述云端服务器发送删除指示,所述删除指示用于指示所述云端服务器删除版本号小于所述屏障版本号的对象。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

基于同一发明构思,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述的数据处理方法中的步骤。

基于同一发明构思,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时实现上述任一实施例所述的数据处理方法中的步骤。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种数据处理方法、装置、电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术分类

06120115933323