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

数据处理方法、设备、存储介质及计算机程序产品与流程

2022-06-05 18:02:03 来源:中国专利 TAG:


1.本技术涉及数据库技术领域,尤其涉及一种数据处理方法、设备、存储介质及计算机程序产品。


背景技术:

2.键值(key-value,kv)数据库是一种非关系数据库,它使用简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为唯一标识符。键和值都可以是从简单对象到复杂复合对象的任何内容。
3.在键值数据库中,为每个键值条目分配一个全局的、不断增加的序列号。该序列号也称为主版本号,用于区分具有相同键的kv条目。在现有键值数据库中,键值数据库在数据迁移时,会创建一个版本号增加的新kv条目,而过期弃用上一较低的主版本号的kv条目。在用户数据更新时,键值数据库也会创建一个版本号增加的新kv条目,而过期弃用上一较低的主版本号的kv条目。
4.但是,若在kv条目对应的数据迁移过程中,用户对该kv条目进行数据更新,则可能导致原kv条目数据迁移后的kv条目的版本号,高于对原kv条目对应的数据进行更新时的kv条目的版本号,而导致数据更新对应的kv条目被弃用,进而导致键值数据库存储的数据与用户侧数据不一致。


技术实现要素:

5.本技术的多个方面提供一种数据处理方法、设备、存储介质及计算机程序产品,用以降低键值数据库存储的数据与用户侧数据不一致的概率,有助于提高数据查询的准确度。
6.本技术实施例提供一种数据处理方法,包括:
7.确定待迁移数据;
8.将待迁移数据从原存储介质迁移至目标存储介质;
9.从键值数据库中,确定所述原存储介质的待迁移数据对应的第一键值条目;
10.基于所述第一键值条目包含的第一次版本号,生成第二次版本号;
11.以所述第一键值条目包含的键为键,以所述第一键值条目包含的第一主版本号为主版本号,以所述第二次版本号为次版本号,生成所述目标存储介质的待迁移数据对应的第二键值条目。
12.本技术实施例还提供一种计算设备,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;
13.所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行上述数据处理方法中的步骤。
14.本技术实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述数据处理方法中
的步骤。
15.本技术实施例还提供一种计算机程序产品,包括:计算机程序;当所述计算机程序被处理器执行时,致使所述处理器执行上述数据处理方法中的步骤。
16.在本技术实施例中,在原kv条目的基础上kv条目引入次版本号,每个kv条目包括主版本号和次版本号。基于新增的次版本号,在用户数据迁移时,新创建的kv条目可改变次版本号,保持主版本号不变。对于用户数据更新,新创建的kv条目可改变主版本号。这样,即便在用户数据迁移过程中,存在对该用户数据的更新,也可使得用户数据更新的主版本号与用户数据迁移的主版本号不同。键值数据库可根据主版本号准确区分用户数据更新前后的kv条目,在用户数据查询时弃用数据更新前的kv条目,而保留更新后的用户数据对应的kv条目,可使得键值数据库存储的数据与用户侧数据保持一致性。在用户提供该用户数据的键查询用户数据时,可利用更新后的用户数据对应的kv条目获取更新后的用户数据,进而有助于提高数据查询的准确度。
附图说明
17.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
18.图1为本技术实施例提供的数据处理方法的流程示意图;
19.图2和图3为本技术实施例提供的数据更新方法的流程示意图;
20.图4为本技术实施例提供的数据查询方法的流程示意图;
21.图5为本技术实施例提供的kv条目快照确定方法的流程示意图;
22.图6为本技术实施例提供的计算设备的结构示意图。
具体实施方式
23.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
24.在键值数据库中,为每个kv条目分配一个全局的、不断增加的序列号。该序列号也称为主版本号(major version),用于区分具有相同键的kv条目。通常,一个kv条目可包括以下部分:
25.|键|类型|主版本号|用户数据|。
26.其中,用户数据为键对应的值。类型用于标识kv条目的一些类型信息。例如,在一些实施例中,类型可标识kv条目的使用类型,如标记该kv条目是否被删除。对于被删除的kv条目,类型可为墓碑(tombstone)标识。
27.在现有键值数据库中,键值数据库在数据迁移时,会创建一个主版本号增加的新kv条目,而过期弃用上一较低的主版本号的kv条目。例如,假设一个kv条目如下:
28.|data:inode=3|type|major ver=100|data location 1|。(条目1.1)
29.该kv条目中,键为“inode=3”;主版本号为100,值为“data location1”,即“数据位置1”。
30.若将数据位置1存储的用户数据迁移至数据位置2“data location 2”,则键值数据库内创建一个新kv条目:
31.|data:inode=3|type|major ver=101|data location 2|。(条目1.2)
32.由于用户数据发生了迁移,因此,主版本号为100的kv条目会被弃用。在用户查询时,键值数据库会基于主版本号为101的kv条目,获取数据位置2对应的用户数据。
33.对于键值数据库,在用户数据更新时,键值数据库也会创建一个版本号增加的新kv条目,而过期弃用上一较低的主版本号的kv条目。例如,对于上述kv条目1.1,数据位置1对应的用户数据发生更新,创建一新kv条目:
34.|data:inode=3|type|major ver=101|data location 1|。(条目1.3)。
35.但是,若在kv条目对应的数据迁移过程中,用户对该kv条目进行用户数据更新,可能出现数据迁移比用户数据更新完成的较晚,导致kv条目的数据迁移后的kv条目的版本号,高于对kv条目进行用户数据更新的版本号。这样,若更新后用户数据为已迁移的数据,则在用户查询kv条目的键对应的用户数据时,键值数据库则会查询数据迁移后的kv条目,得到更新前的用户数据。
36.例如,对于上述kv条目1.1,若在kv条目1.1对应的数据迁移过程中,用户对该kv条目1.1进行用户数据更新,且数据迁移比用户数据更新完成的较晚,则对kv条目1.1进行用户数据更新后的kv条目为:
37.|data:inode=3|type|major ver=101|data location 1|。(条目1.4)
38.kv条目1.1的数据迁移后的kv条目为:
39.|data:inode=3|type|major ver=102|data location 2|。(条目1.5)
40.由于kv条目1.5的主版本号大于kv条目1.4的主版本号,因此,键值数据库会弃用kv条目1.4。对于用户数据更新的为已迁移至数据位置2的情况,kv条目1.5中数据位置2对应的用户数据为用户数据更新前的数据,这种情况导致键值数据库存储的键值“inode=3”对应的用户数据,与用户侧数据不一致。
41.在用户查询键“inode=3”对应的用户数据时,键值数据库则会kv条目1.5中数据位置2对应的用户数据。对于用户数据更新的为已迁移至数据位置2的情况,kv条目1.5中数据位置2对应的用户数据为用户数据更新前的数据,影响数据查询的准确度。
42.为了解决上述问题,在本技术一些实施例中,在原kv条目的基础上kv条目引入次版本号,每个kv条目包括主版本号和次版本号。基于新增的次版本号,在用户数据迁移时,新创建的kv条目可改变次版本号,保持主版本号不变。对于用户数据更新,新创建的kv条目可改变主版本号。这样,即便在用户数据迁移过程中,存在对该用户数据的更新,也可使得用户数据更新的主版本号与用户数据迁移的主版本号不同。键值数据库可根据主版本号准确区分用户数据更新前后的kv条目,在用户数据查询时弃用数据更新前的kv条目,而保留更新后的用户数据对应的kv条目,可使得键值数据库存储的数据与用户侧数据保持一致性。在用户提供该用户数据的键查询用户数据时,可利用更新后的用户数据对应的kv条目获取更新后的用户数据,进而有助于提高数据查询的准确度。
43.以下结合附图,详细说明本技术各实施例提供的技术方案。
44.应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨
论。
45.图1为本技术实施例提供的数据处理方法的流程示意图。如图1所示,该数据处理方法包括:
46.101、确定待迁移数据。
47.102、将待迁移数据从原存储介质迁移至目标存储介质。
48.103、从键值数据库中,确定原存储介质的待迁移数据对应的第一键值条目。
49.104、基于第一键值条目包含的第一次版本号,生成第二次版本号。
50.105、以第一键值条目包含的键为键,以第一键值条目包含的第一主版本号为主版本号,以第二次版本号为次版本号,生成目标存储介质的待迁移数据对应的第二键值条目。
51.在本技术实施例中,在kv条目引入次版本号(minor version),kv条目可包含以下内容:
52.|键|类型|主版本号|次版本号|用户数据|。
53.其中,次版本号可实现为自动递增的序列。次版本号与主版本号一起与键值对附加在一起,形成一个kv条目。
54.基于上述新引入的kv条目,本技术实施例提出新的键值数据处理方法,下面结合具体实施例进行说明。
55.在键值数据库中,可能会存在需要数据迁移的情况。例如,存储用户数据的磁盘出现故障时,需要将用户数据从原磁盘迁移至另一磁盘等。又例如,在磁盘碎片整理场景中,可将碎片数据迁移至某一磁盘集中存储等等。因此,在需要用户数据迁移时,在步骤101可确定待迁移数据a。待迁移数据a可为键值对对应的用户数据。
56.在一些实施例中,可监测存储空间的状态信息;并在监测到存储空间的状态异常时,启动数据迁移流程,并将状态异常的存储空间存储的数据,作为待迁移数据a。
57.在另一些实施例中,可获取磁盘的存储空间利用率;并根据磁盘的存储空间利用率,确定需要数据迁移的磁盘;并确定需要数据迁移的磁盘中的数据,为待迁移数据a等等。
58.上述实施例示出的确定待迁移数据的方法仅为示例性说明,并不构成限定。
59.进一步,在步骤102中,可将待迁移数据a从原存储空间迁移至目标存储空间。在本技术实施例中,不限定目标存储空间的确定方式。在一些实施例中,可根据待迁移数据a的数据量,选择空闲存储空间可容纳待迁移数据a的存储介质;并从空闲存储空间可容纳待迁移数据a的存储介质的空闲存储空间,任选一个存储介质,作为目标存储介质。
60.可选地,为了降低存储空间碎片,还可从空闲存储空间可容纳待迁移数据a的存储介质中,获取存储空间利用率最高的存储介质,作为目标存储介质等等。
61.在确定出目标存储介质之后,可将待迁移数据a从原存储介质迁移至目标存储介质。由于待迁移数据的存储位置发生变化,因此,利用待迁移数据对应的原kv条目无法索引到迁移后的数据a。因此,针对迁移至目标存储介质的待迁移数据a,可创建新的kv条目。
62.基于kv条目引入的次版本号,在数据迁移时,新创建的kv条目可改变次版本号,保持主版本号不变。对于数据更新,新创建的kv条目可改变主版本号。基于此,在为迁移至目标存储介质的待迁移数据a创建新的kv条目时,在步骤103中,可从键值数据库中,确定原存储介质的待迁移数据a对应的kv条目。
63.在一些实施例中,kv条目中的值(value)可以为用户数据。对于kv条目中的值为用
户数据的实施例,步骤103可实现为:将待迁移数据a在键值数据库的kv条目中进行匹配,以得到包含待迁移数据a的kv条目。进一步,可从包含待迁移数据a的kv条目中,选择主版本号最大的kv条目;并从主版本号最大的kv条目中,选择次版本号最大的kv条目,作为原存储介质的待迁移数据a对应的kv条目。
64.在另一些实施例中,由于用户数据的大小可能小到几个字节,也可能大到tb量级。对于数据量较小的用户数据,可直接存储为kv条目的值(value)。对于数据量较大的用户数据,kv数据库不能有效处理数据量较大的kv条目。因此,在另一项实施例中,kv条目中的值(value)可存储用户数据的位置信息,并在kv数据库中跟踪数据的位置信息。
65.在该实施例中,步骤103的一种可选实施例方式为:利用待迁移数据a的原存储介质的地址信息,在键值数据库的kv条目中进行匹配,以得到包含原存储介质的地址信息的kv条目。进一步,可从包含原存储介质的地址信息的kv条目中,选择主版本号最大的kv条目;并从主版本号最大的kv条目中,选择次版本号最大的kv条目,作为原存储介质的待迁移数据a对应的kv条目。
66.在确定出原存储介质的待迁移数据a对应的kv条目之后,在步骤104中,可基于原存储介质的待迁移数据a对应的kv条目包含的次版本号,生成另一次版本号。在本技术实施例中,为了便于描述和区分,可将原存储介质的待迁移数据a对应的kv条目,定义为第一kv条目;将第一kv条目包含的次版本号,定义为第一次版本号v11;并将基于第一次版本号生成的另一次版本号,定义为第二次版本号v12。
67.在一些实施例中,可将第一次版本号v11增加设定的梯度,得到第二次版本号v12。例如,可将第一次版本号v11增加1,得到第二次版本号v12等等。
68.进一步,在步骤105中,可以第一kv条目包含的键为键,以第一kv条目包含的主版本号为主版本号,以第二次版本号v12为次版本号,生成目标存储介质的待迁移数据a对应的kv条目。
69.对于待迁移数据a的数据量小于设定的数据量的实施例,可以第一kv条目包含的键为键,以第一kv条目包含的主版本号为主版本号,以第二次版本号v12为次版本号,以待迁移数据a为值,生成目标存储介质的待迁移数据a对应的kv条目。
70.假设原存储介质的待迁移数据a对应的第一kv条目为:
71.|inode=3|类型:正常|major ver=100|minor ver=0|a|。
72.则,目标存储介质的待迁移数据a对应的kv条目可实现为:
73.|inode=3|类型:正常|major ver=100|minor ver=1|a|。
74.其中,正常类型是指kv条目可正常使用,未标记删除。
75.对于待迁移数据a的数据量大于或等于设定的数据量的实施例,可以第一kv条目包含的键为键,以第一kv条目包含的主版本号为主版本号,以第二次版本号v12为次版本号,以目标存储介质的地址信息为值,生成目标存储介质的待迁移数据a对应的kv条目。
76.假设原存储介质为磁盘d1;迁移后的目标存储介质为磁盘d2。原存储介质的待迁移数据a对应的第一kv条目为:
77.|inode=3|类型:正常|major ver=100|minor ver=0|磁盘d1|。
78.则,目标存储介质的待迁移数据a对应的kv条目可实现为:
79.|inode=3|类型:正常|major ver=100|minor ver=1|磁盘d2|。
80.在生成目标存储介质的待迁移数据a对应的kv条目之后,用户在查询该kv条目的键对应的用户数据时,可利用目标存储介质的待迁移数据a对应的kv条目,获取待查询的键对应的用户数据。
81.在键值数据库中,在用户数据更新时,也会创建新的kv条目。在本技术实施例中,对于用户数据更新时,创建的新的kv条目,可改变主版本号与原kv条目进行区分。下面对本技术实施例提供的数据更新方法进行示例性说明。
82.图2为本技术实施例提供的数据更新方法的流程示意图。如图2所示,该方法包括:
83.201、获取数据更新请求。
84.202、从数据更新请求中,获取待更新数据对应的键和替换待更新数据的目标数据。
85.203、根据待更新数据的键,确定包含待更新数据的键的目标kv条目。
86.204、将目标kv条目对应的待更新数据更新为目标数据。
87.205、基于目标kv条目包含的第一主版本号,生成第二主版本号。
88.206、以目标kv条目包含的键为键,以第二主版本号为主版本号,以设定次版本号为次版本号,生成目标数据对应的kv条目。
89.在本实施例中,数据更新请求可包括:待更新数据对应的键和替换待更新数据的目标数据。因此,可从数据更新请求中,获取待更新数据对应的键和替换待更新数据的目标数据。进一步,可根据待更新数据的键,确定包含该键的目标kv条目。
90.可选地,可将待更新数据的键在键值数据库的kv条目中进行匹配,以得到包含该键的kv条目;并从包含该键的kv条目中,选择主版本号最大的kv条目;之后,可从主版本号最大的kv条目中,获取次版本号最大的kv条目,作为目标kv条目。
91.在确定出包含待更新数据的键对应的目标kv条目之后,可根据目标kv条目确定待更新数据。对于目标kv条目包含的值为用户数据的实施例,可从目标kv条目中获取用户数据,作为待更新数据。
92.对于目标kv条目包含的值为用户数据的存储地址的实施例,可从目标kv条目中获取用户数据的存储地址,并确定该存储地址存储的数据为待更新数据。
93.进一步,可将待更新数据更新为目标数据,实现用户数据更新。对于用户数据更新,还需创建新的kv条目。具体地,可基于目标kv条目包含的主版本号,生成另一主版本号。在本技术实施例中,为了便于描述和区分,将目标kv条目包含的主版本号,定义为第一主版本号;将基于第一主版本号生成的另一主版本号,定义为第二主版本号。
94.可选地,可将第一主版本号增加设定的梯度,得到第二主版本号。例如将第一主版本号增加1,作为第二主版本号等。
95.进一步,可以目标kv条目包含的键为键,以第二主版本号为主版本号,以设定次版本号为次版本号,生成目标数据对应的kv条目。其中,设定的次版本号可为任意值。例如,设定次版本号可为0等。
96.对于目标数据的数据量小于设定的数据量的实施例,可以目标kv条目包含的键为键,以第二主版本号为主版本号,以设定次版本号为次版本号,以目标数据为值,生成目标数据对应的kv条目。
97.对于目标数据的数据量大于或等于设定的数据量的实施例,可以目标kv条目包含
的键为键,以第二主版本号为主版本号,以设定次版本号为次版本号,以目标数据的存储地址为值,生成目标数据对应的kv条目。
98.在一些实施例中,待更新数据可为上述待迁移数据a,对待迁移数据a的数据更新过程,可能发生在将待迁移数据从原存储介质迁移至目标存储介质的过程中。相应地,如图3所示,该数据更新方法可实现为:
99.301、在将待迁移数据从原存储介质迁移至目标存储介质的过程中,获取针对待迁移数据的数据更新请求。
100.302、从数据更新请求中,获取替换待迁移数据的目标数据。
101.303、将原存储介质中的待迁移数据更新为目标数据。
102.304、基于第一kv条目包含的第一主版本号,生成第二主版本号。
103.305、以第一kv条目包含的键为键,以第二主版本号为主版本号,以设定次版本号为次版本号,生成目标数据对应的第三kv条目。
104.针对在将待迁移数据a从原存储介质迁移至目标存储介质的过程中,获取的针对待迁移数据进行数据更新的数据更新请求,该数据更新请求包含的待更新数据的键为上述原存储介质的待迁移数据对应第一kv条目中的键。因此,可根据数据更新请求包含的待更新数据的键,确定该数据更新请求是针对待迁移数据a进行数据更新的数据更新请求。
105.由于待迁移数据尚未全部迁移至目标存储介质中,上述步骤105中,目标存储介质的待迁移数据a对应的kv条目尚未创建,因此,步骤203中确定出的目标kv条目为第一kv条目。因此,在步骤303中,是将原存储介质中的待迁移数据更新为目标数据。关于步骤304和步骤305的描述,可参见上述步骤205和步骤206的相关内容,在此不再赘述。
106.在待迁移数据a更新为目标数据完成后,对于需要对待迁移数据a进行数据迁移的实施例,还可将目标数据迁移至目标存储介质,并创建目标存储介质存储的目标数据的kv条目。其中,关于创建目标存储介质存储的目标数据的kv条目的具体实施方式,可参见上述图1的相关内容,在此不再赘述。
107.在本实施例中,在原kv条目的基础上kv条目引入次版本号,每个kv条目包括主版本号和次版本号。由于对于用户数据更新时,新创建的kv条目可改变主版本号。而在用户数据迁移时,新创建的kv条目可改变次版本号,保持主版本号不变。这样,即便在用户数据迁移过程中,存在对该用户数据的更新,也可使得用户数据更新的主版本号与用户数据迁移的主版本号不同。键值数据库可根据主版本号准确区分用户数据更新前后的kv条目,在用户数据查询时弃用数据更新前的kv条目,而保留更新后的用户数据对应的kv条目,可使得键值数据库存储的数据与用户侧数据保持一致性。在用户提供该用户数据的键查询用户数据时,可利用更新后的用户数据对应的kv条目获取更新后的用户数据,进而有助于提高数据查询的准确度。
108.本技术实施例除了提供数据迁移和数据更新方法之外,还提供数据查询方法。下面结合图4进行具体实施例进行示例性说明。
109.如图4所示,数据查询方法可包括以下主要步骤:
110.401、获取数据查询请求。
111.402、从数据查询请求中,获取待查询的键。
112.403、利用待查询的键在键值数据库的kv条目中进行匹配,以得到包含待查询的键
的第一目标kv条目。其中,第一目标kv条目的数量可为一个或多个。多个是指2个或2个以上。
113.404、从第一目标kv条目中,确定主版本号最大的第二目标kv条目。第二目标kv条目为第一目标kv条目中的部分或全部kv条目。
114.405、从第二目标kv条目中,确定次版本号最大的第三目标kv条目。第三目标kv条目为第二目标kv条目的部分或全部kv条目。
115.406、根据第三目标kv条目,获取待查询的键对应的数据。
116.在一些实施例中,第三目标kv条目包含的值为用户数据。相应地,步骤406可实现为:从第三目标kv条目中,获取第三目标kv条目包含的用户数据,作为待查询的键对应的数据。
117.在另一些实施例中,第三目标kv条目包含的值为用户数据的存储地址。相应地,步骤406可实现为:从第三目标kv条目中,获取第三目标kv条目包含的存储地址;并获取该存储地址存储的用户数据,作为待查询的键对应的数据。
118.407、基于待查询的键对应的数据,确定查询结果。
119.在本技术实施例中,不限定步骤407的具体实施方式。在一些实施例中,可按照设定的协议格式,对待查询的键对应的数据进行封装,得到查询结果。
120.在另一些实施例中,可对待查询的键对应的数据进行聚合操作,以得到查询结果等等。
121.本技术实施例提供的键值数据库还可支持键值数据删除和压缩。在本技术实施例中,键值数据删除后会导致存储有数据的存储空间不连续,造成存储空间的浪费。相应地,键值数据压缩是指将不连续的存储空间压缩为连续的存储空间,这样可节约存储空间。对于压缩出的存储空间可用于存储其它数据,有助于提高存储空间的利用率。
122.为了增加键值数据库的鲁棒性,键值数据库可支持冗余存储,存储用户数据的快照。这样,若用户数据更新失败,还可基于用户数据的快照提供数据查询服务。在本技术实施例中,在进行键值数据删除和压缩时,用户可指定保留的kv条目的版本,作为用户数据快照存储在键值数据库中。下面结合图5对kv条目快照的自定义设置方式进行示例性说明。
123.如图5所示,kv条目快照确定方法主要包括以下步骤:
124.501、获取指定键对应的指定保留的主版本号。
125.502、从包含指定键的键值条目中,获取包含的主版本号小于或等于指定保留的主版本号的第四目标kv条目。
126.503、从第四目标kv条目中,确定主版本号最大的第五目标kv条目。
127.504、从第五目标kv条目中,确定次版本号最大的第六目标kv条目。
128.505、持久化第六目标kv条目,作为指定键对应的kv条目快照。
129.在本实施例中,指定键可为需要快照存储的任意键。该键可由用户指定,也可由键值数据库的运维侧指定,或者,可默认键值数据库中的所有键。在本实施例中,用户可自定义指定键对应的kv条目快照的主版本号。相应地,用户端可向键值数据库提供指定键和指定保留的版本号。
130.相应地,对于键值数据库,在步骤501中,可获取指定键对应的指定保留的主版本号。接着,可在键值数据库的kv条目中,获取包含指定键的kv条目。为了保证用户数据的时
效性,因此,作为kv条目快照的kv条目尽可能为较新版本的kv条目。由于主版本号和次版本号均可为递增的序列,因此,在步骤502中,从包含指定键的kv条目中,获取包含的主版本号小于或等于指定保留的主版本号的第四目标kv条目。第四目标kv条目可为1个或多个。对于第四目标kv条目为多个的情况,在步骤503中,可从第四目标kv条目中,确定主版本号最大的第五目标kv条目。第五目标kv条目可为第四目标kv条目的部分或全部kv条目。进一步,在步骤504中,可从第五目标kv条目中,确定次版本号最大的第六目标kv条目。第六目标kv条目可为第五目标kv条目的部分或全部kv条目。接着,在步骤505中,可持久化第六目标kv条目,作为指定键对应的kv条目快照,进行kv条目冗余存储。这样,在指定键对应的较高版本的kv条目的用户数据更新失败或数据丢失时,可基于指定键对应的kv条目快照,提供数据查询服务。
131.具体地,对于键值数据库,可获取数据查询请求;该数据查询请求可包括:待查询的键。若待查询的键为指定键,可利用指定键在键值数据库的kv条目中进行匹配,以得到包含指定键的目标kv条目。对于存储有指定键对应的kv条目快照的实施例,上述包含指定键的目标kv条目包含上述指定键对应的kv条目快照,即上述第六目标kv条目。
132.本技术实施例中,为了便于描述和区分,将包含指定键的目标kv条目,定义为第七目标kv条目。第七目标kv条目包含的kv条目的数量为1个或多个。第七目标kv条目包含上述第六目标kv条目。在一些实施例中,第七目标kv条目可能包含主版本号大于第六目标kv条目的主版本号的kv条目,并将第七目标kv条目中,主版本号大于第六目标kv条目的主版本号的kv条目,定义为第八目标kv条目。若第八目标kv条目对应的数据正常,可基于第八目标kv条目提供数据查询服务。具体地,可从第八目标kv条目中,确定主版本号最大的目标kv条目;并主版本号最大的目标kv条目中,确定次版本号最大的目标kv条目。之后,可根据确定次版本号最大的目标kv条目,获取指定键对应的数据;并基于指定键对应的数据,确定查询结果。其中,获取指定键对应的数据,以及,基于指定键对应的数据,确定查询结果的具体实施方式,可参见上述步骤406和步骤407的相关内容,在此不再赘述。
133.相应地,若第八目标kv条目对应的数据缺失,可根据第六目标kv条目,获取指定键对应的数据;并基于指定键对应的数据,确定查询结果。关于这部分的具体实施方式,可参见上述步骤406和步骤407的相关内容,在此不再赘述。其中,指定键对应的kv条目快照的存储可在版本号较高的kv条目故障时,提供数据查询服务,有助于提高键值数据库的鲁棒性。
134.需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401和402的执行主体可以为设备a;又比如,步骤401的执行主体可以为设备a,步骤402的执行主体可以为设备b;等等。
135.另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
136.相应地,本技术实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述数据处理方法中的步骤。
137.本技术实施例还提供一种计算机程序产品,包括:计算机程序;当计算机程序被处理器执行时,致使处理器执行上述数据处理方法中的步骤。在本技术实施例中,不限定计算机程序产品的具体实现形态。在一些实施例中,计算机程序产品可实现为键值数据库的存储引擎等。
138.图6为本技术实施例提供的计算设备的结构示意图。如图6所示,计算设备包括:存储器60a和处理器60b。其中,所述存储器60a,用于存储计算机程序。
139.所述处理器60b耦合至所述存储器60a,用于执行所述计算机程序以用于:确定待迁移数据;将待迁移数据从原存储介质迁移至目标存储介质;从键值数据库中,确定所述原存储介质的待迁移数据对应的第一键值条目;基于所述第一键值条目包含的第一次版本号,生成第二次版本号;以所述第一键值条目包含的键为键,以所述第一键值条目包含的第一主版本号为主版本号,以所述第二次版本号为次版本号,生成所述目标存储介质的待迁移数据对应的第二键值条目。
140.上述原存储介质和目标存储介质可位计算设备本身的存储介质,也可为其他物理机的存储介质。
141.可选地,处理器60b在生成所述目标存储介质的待迁移数据对应的第二键值条目时,具体用于:以所述第一键值条目包含的键为键,以所述第一键值条目包含的第一主版本号为主版本号,以所述第二次版本号为次版本号,以所述目标存储介质的地址信息为值,生成所述第二键值条目。
142.可选地,处理器60b在生成第二次版本号时,具体用于:将所述第一次版本号增加设定的梯度,得到所述第二次版本号。
143.在一些实施例中,处理器60b还用于:在将待迁移数据从原存储介质迁移至目标存储介质的过程中,通过通信组件60c获取针对所述待迁移数据的数据更新请求;从所述数据更新请求中,获取替换所述待迁移数据的目标数据;将所述原存储介质中的待迁移数据更新为所述目标数据;基于所述第一主版本号,生成第二主版本号;以所述第一键值条目包含的键为键,以所述第二主版本号为主版本号,以设定次版本号为次版本号,生成所述目标数据对应的第三键值条目。
144.在另一些实施例中,处理器60b还用于:通过通信组件60c获取第一数据查询请求;从所述第一数据查询请求中,获取待查询的键;利用所述待查询的键在键值数据库的键值条目中进行匹配,以得到包含所述待查询的键的第一目标键值条目;从所述第一目标键值条目中,确定主版本号最大的第二目标键值条目;从所述第二目标键值条目中,确定次版本号最大的第三目标键值条目;根据所述第三目标键值条目,获取所述待查询的键对应的数据;基于所述待查询的键对应的数据,确定查询结果。
145.在又一些实施例中,处理器60b还用于:获取指定键对应的指定保留的主版本号;从包含所述指定键的键值条目中,获取包含的主版本号小于或等于所述指定保留的主版本号的第四目标键值条目;从所述第四目标键值条目中,确定主版本号最大的第五目标键值条目;从所述第五目标键值条目中,确定次版本号最大的第六目标键值条目;以及,持久化所述第六目标键值条目,作为所述指定键对应的键值条目快照。
146.可选地,处理器60b还用于:获取第二数据查询请求;在第二数据查询请求包含的待查询的键为所述指定键的情况下,利用所述指定键在键值条目中进行匹配,以得到包含
所述指定键的第七目标键值条目;所述第七目标键值条目包含所述第六目标键值条目;若所述第七目标键值条目含有主版本号大于所述第六目标键值条目的第八目标键值条目,在所述第八目标键值条目对应的数据缺失时,根据所述第六目标键值条目,获取所述指定键对应的数据;基于所述指定键对应的数据,确定查询结果。
147.在一些可选实施方式中,如图6所示,该计算设备还可以包括:电源组件60d等可选组件。图6中仅示意性给出部分组件,并不意味着计算设备必须包含图6所示全部组件,也不意味着计算设备只能包括图6所示组件。
148.本实施例提供的计算设备,在原kv条目的基础上kv条目引入次版本号,每个kv条目包括主版本号和次版本号。基于新增的次版本号,在用户数据迁移时,新创建的kv条目可改变次版本号,保持主版本号不变。对于用户数据更新,新创建的kv条目可改变主版本号。这样,即便在用户数据迁移过程中,存在对该用户数据的更新,也可使得用户数据更新的主版本号与用户数据迁移的主版本号不同。键值数据库可根据主版本号准确区分用户数据更新前后的kv条目,在用户数据查询时弃用数据更新前的kv条目,而保留更新后的用户数据对应的kv条目,可使得键值数据库存储的数据与用户侧数据保持一致性。在用户提供该用户数据的键查询用户数据时,可利用更新后的用户数据对应的kv条目获取更新后的用户数据,进而有助于提高数据查询的准确度。
149.在本技术实施例中,存储器用于存储计算机程序,并可被配置为存储其它各种数据以支持在其所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
150.在本技术实施例中,处理器可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)或微控制单元(microcontroller unit,mcu);也可以为现场可编程门阵列(field-programmable gate array,fpga)、可编程阵列逻辑器件(programmable array logic,pal)、通用阵列逻辑器件(general array logic,gal)、复杂可编程逻辑器件(complex programmable logic device,cpld)等可编程器件;或者为先进精简指令集(risc)处理器(advanced risc machines,arm)或系统芯片(system on chip,soc)等等,但不限于此。
151.在本技术实施例中,通信组件被配置为便于其所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g或3g,4g,5g或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还可基于近场通信(nfc)技术、射频识别(rfid)技术、红外数据协会(irda)技术、超宽带(uwb)技术、蓝牙(bt)技术或其他技术来实现。
152.在本技术实施例中,电源组件被配置为其所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
153.需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
154.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
155.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
156.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
157.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
158.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
159.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
160.计算机的存储介质为可读存储介质,也可称为可读介质。可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
161.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要
素的过程、方法、商品或者设备中还存在另外的相同要素。
162.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献