一种数据更新的同步方法及相关装置与流程

文档序号:33187202发布日期:2023-02-04 06:58阅读:28来源:国知局
一种数据更新的同步方法及相关装置与流程

1.本技术涉及数据处理技术领域,尤其涉及一种数据更新的同步方法及相关装置。


背景技术:

2.b+树数据库中数据量增大时,b+树关系数据库对数据分析的性能会降低,需要将b+树数据库中数据同步到日志化结构合并(英文:log structured merge,缩写:lsm)树数据库,以进行专业的数据分析。当b+树数据库中数据发生更新时,lsm树数据库中对应的数据也需要更新。
3.在数据更新方面,对b+树数据库中数据可以进行原地更新,该方式使得b+树数据库的事务支持更加友好;而对lsm树数据库中对应的数据进行同步的原地更新,需要在lsm树数据库中重写对应的整个数据块,该方式代价高、效率低;从而导致b+树数据库中数据更新在同步至lsm树数据库时,存在代价高、效率低的问题。


技术实现要素:

4.有鉴于此,本技术提供一种数据更新的同步方法及相关装置,使得b+树数据库中数据更新在同步至lsm树数据库时,代价降低且效率提高。
5.第一方面,本技术实施例提供了一种数据更新的同步方法,所述方法包括:
6.在b+树数据库的b+树数据表同步至日志化结构合并lsm树数据库获得lsm树数据表后,获取所述b+树数据表的当前b+树数据更新信息;所述lsm树数据表包括删除标识列和数据版本列;
7.基于所述当前b+树数据更新信息,对插入数据、所述插入数据对应的删除标识字段值和数据版本字段值进行配置,获得lsm树数据插入信息;
8.基于所述lsm树数据插入信息,更新所述lsm树数据表。
9.可选的,所述当前b+树数据更新信息包括当前b+树数据修改信息、当前b+树数据删除信息和当前b+树数据插入信息中至少一种。
10.可选的,所述当前b+树数据更新信息包括所述当前b+树数据修改信息,所述基于所述当前b+树数据更新信息,对插入数据、所述插入数据对应的删除标识字段值和数据版本字段值进行配置,获得lsm树数据插入信息,包括:
11.获取所述当前b+树数据修改信息对应的旧数据记录、新数据记录和更新次数;
12.将所述插入数据、所述插入数据对应的删除标识字段值和数据版本字段值,配置为所述旧数据记录、所述旧数据记录对应的删除标识字段值表示删除、所述旧数据记录对应的数据版本字段值表示所述更新次数,以及所述新数据记录、所述新数据记录对应的删除标识字段值表示非删除、所述新数据记录对应的数据版本字段值表示所述更新次数,获得所述lsm树数据插入信息。
13.可选的,所述当前b+树数据更新信息包括所述当前b+树数据删除信息,所述基于所述当前b+树数据更新信息,对插入数据、所述插入数据对应的删除标识字段值和数据版
本字段值进行配置,获得lsm树数据插入信息,包括:
14.获取所述当前b+树数据删除信息对应的旧数据记录和更新次数;
15.将所述插入数据、所述插入数据对应的删除标识字段值和数据版本字段值,配置为所述旧数据记录、所述旧数据记录对应的删除标识字段值表示删除和所述旧数据记录对应的数据版本字段值表示所述更新次数,获得所述lsm树数据插入信息。
16.可选的,所述当前b+树数据更新信息包括所述当前b+树数据插入信息,所述基于所述当前b+树数据更新信息,对插入数据、所述插入数据对应的删除标识字段值和数据版本字段值进行配置,获得lsm树数据插入信息,包括:
17.获取所述当前b+树数据插入信息对应的新数据记录和更新次数;
18.将所述插入数据、所述插入数据对应的删除标识字段值和数据版本字段值,配置为所述新数据记录、所述新数据记录对应的删除标识字段值表示非删除和所述新数据记录对应的数据版本字段值表示所述更新次数,获得所述lsm树数据插入信息。
19.可选的,所述方法还包括:
20.在对所述lsm树数据表进行数据记录查询时,以所述数据记录查询请求携带的数据记录标识、表示非删除的删除标识字段值和所述数据记录标识对应的表示最新更新次数的数据版本字段值为查询条件,查询所述lsm树数据表中数据记录。
21.可选的,所述方法还包括:
22.在所述lsm树数据表中增加时间戳列,所述时间戳列对应的时间戳字段值用于记录b+树数据更新信息对应的更新时间;
23.在所述b+树数据表数据更新后,读取所述b+树数据表中数据记录,获得所述b+树数据表中各字段列对应的第一统计数据和读取时间;
24.在间隔所述读取时间预设时间段后,以每个数据记录标识、表示非删除的删除标识字段值、所述数据记录标识对应的表示最新更新次数的数据版本字段值和表示早于所述读取时间的时间戳字段值为读取条件,读取所述lsm树数据表中数据记录,获得所述lsm树数据表中所述各字段列对应的第二统计数据;
25.若所述第二统计数据与所述第一统计数据不一致,提示所述lsm树数据表与所述b+树数据表之间数据不一致。
26.第二方面,本技术实施例提供了一种数据更新的同步装置,所述装置包括:
27.获取单元,用于在b+树数据库的b+树数据表同步至日志化结构合并lsm树数据库获得lsm树数据表后,获取所述b+树数据表的当前b+树数据更新信息;所述lsm树数据表包括删除标识列和数据版本列;
28.第一获得单元,用于基于所述当前b+树数据更新信息,对插入数据、所述插入数据对应的删除标识字段值和数据版本字段值进行配置,获得lsm树数据插入信息;
29.更新单元,用于基于所述lsm树数据插入信息,更新所述lsm树数据表。
30.可选的,所述当前b+树数据更新信息包括当前b+树数据修改信息、当前b+树数据删除信息和当前b+树数据插入信息中至少一种。
31.可选的,所述当前b+树数据更新信息包括所述当前b+树数据修改信息,所述第一获得单元,用于:
32.获取所述当前b+树数据修改信息对应的旧数据记录、新数据记录和更新次数;
33.将所述插入数据、所述插入数据对应的删除标识字段值和数据版本字段值,配置为所述旧数据记录、所述旧数据记录对应的删除标识字段值表示删除、所述旧数据记录对应的数据版本字段值表示所述更新次数,以及所述新数据记录、所述新数据记录对应的删除标识字段值表示非删除、所述新数据记录对应的数据版本字段值表示所述更新次数,获得所述lsm树数据插入信息。
34.可选的,所述当前b+树数据更新信息包括所述当前b+树数据删除信息,所述第一获得单元,用于:
35.获取所述当前b+树数据删除信息对应的旧数据记录和更新次数;
36.将所述插入数据、所述插入数据对应的删除标识字段值和数据版本字段值,配置为所述旧数据记录、所述旧数据记录对应的删除标识字段值表示删除和所述旧数据记录对应的数据版本字段值表示所述更新次数,获得所述lsm树数据插入信息。
37.可选的,所述当前b+树数据更新信息包括所述当前b+树数据插入信息,所述第一获得单元,用于:
38.获取所述当前b+树数据插入信息对应的新数据记录和更新次数;
39.将所述插入数据、所述插入数据对应的删除标识字段值和数据版本字段值,配置为所述新数据记录、所述新数据记录对应的删除标识字段值表示非删除和所述新数据记录对应的数据版本字段值表示所述更新次数,获得所述lsm树数据插入信息。
40.可选的,所述装置还包括:
41.查询单元,用于在对所述lsm树数据表进行数据记录查询时,以所述数据记录查询请求携带的数据记录标识、表示非删除的删除标识字段值和所述数据记录标识对应的表示最新更新次数的数据版本字段值为查询条件,查询所述lsm树数据表中数据记录。
42.可选的,所述装置还包括:
43.增加单元,用于在所述lsm树数据表中增加时间戳列,所述时间戳列对应的时间戳字段值用于记录b+树数据更新信息对应的更新时间;
44.第二获得单元,用于在所述b+树数据表数据更新后,读取所述b+树数据表中数据记录,获得所述b+树数据表中各字段列对应的第一统计数据和读取时间;
45.第三获得单元,用于在间隔所述读取时间预设时间段后,以每个数据记录标识、表示非删除的删除标识字段值、所述数据记录标识对应的表示最新更新次数的数据版本字段值和表示早于所述读取时间的时间戳字段值为读取条件,读取所述lsm树数据表中数据记录,获得所述lsm树数据表中所述各字段列对应的第二统计数据;
46.提示单元,用于若所述第二统计数据与所述第一统计数据不一致,提示所述lsm树数据表与所述b+树数据表之间数据不一致。
47.第三方面,本技术实施例提供了一种用于数据更新的同步装置,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序,以执行如上述第一方面所述的数据更新的同步方法。
48.第四方面,本技术实施例提供了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如上述第一方面所述的数据更新的同步方法。
49.与现有技术相比,本技术至少具有以下优点:
50.采用本技术实施例的技术方案,在b+树数据库的b+树数据表同步至lsm树数据库得到lsm树数据表后,获取b+树数据表的当前b+树数据更新信息;其中,lsm树数据表包括删除标识列和数据版本列;在当前b+树数据更新信息的基础上,对插入数据、插入数据对应的删除标识字段值和数据版本字段值进行配置,得到lsm树数据插入信息;以lsm树数据插入信息更新lsm树数据表。可见,通过在lsm树数据表中增加删除标识列和数据版本列,当捕捉到当前b+树数据表的b+树数据更新信息时,设置插入数据和其对应的删除标识字段值和数据版本字段值的方式,能够将当前b+树数据更新信息转换为lsm树数据插入信息,使得lsm树数据库在数据更新时,基于lsm树数据插入信息执行高性能的数据插入操作,使得b+树数据库中数据更新在同步至lsm树数据库时,代价降低且效率提高。
附图说明
51.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
52.图1为本技术实施例中一种应用场景所涉及的系统框架示意图;
53.图2为本技术实施例提供的一种数据更新的同步方法的流程示意图;
54.图3为本技术实施例提供的一种b+树数据表和对应的lsm树数据表的示意图;
55.图4为本技术实施例提供的一种b+树数据表的当前b+树数据修改信息和对应的lsm树数据表的lsm树数据插入信息的示意图;
56.图5为本技术实施例提供的一种b+树数据表的当前b+树数据删除信息和对应的lsm树数据表的lsm树数据插入信息的示意图;
57.图6为本技术实施例提供的一种b+树数据表的当前b+树数据插入信息和对应的lsm树数据表的lsm树数据插入信息的示意图;
58.图7为本技术实施例提供的一种数据更新后的b+树数据表和同步数据更新后的lsm树数据表的示意图;
59.图8为本技术实施例提供的一种数据更新的同步装置的结构示意图;
60.图9为本技术实施例提供的一种用于数据更新的同步装置的结构示意图;
61.图10为本技术实施例提供的一种服务器的结构示意图。
具体实施方式
62.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
63.当b树数据库中数据发生更新时,lsm树数据库中对应的数据也需要更新。在数据更新方面,对b+树数据库中数据可以进行原地更新,该方式使得b+树数据库的事务支持更加友好;而对lsm树数据库中对应的数据进行同步地原地更新,需要在lsm树数据库中重写对应的整个数据块,该方式代价高、效率低;从而导致b+树数据库中数据更新在同步至lsm
树数据库时,存在代价高、效率低的问题。
64.为了解决这一问题,在本技术实施例中,在b+树数据库的b+树数据表同步至lsm树数据库得到lsm树数据表后,获取b+树数据表的当前b+树数据更新信息;其中,lsm树数据表包括删除标识列和数据版本列;在当前b+树数据更新信息的基础上,对插入数据、插入数据对应的删除标识字段值和数据版本字段值进行配置,得到lsm树数据插入信息;以lsm树数据插入信息更新lsm树数据表。可见,通过在lsm树数据表中增加删除标识列和数据版本列,当捕捉到b+树数据表的当前b+树数据更新信息时,设置插入数据和其对应的删除标识字段值和数据版本字段值的方式,能够将当前b+树数据更新信息转换为lsm树数据插入信息,使得lsm树数据库在数据更新时,基于lsm树数据插入信息执行高性能的数据插入操作,使得b+树数据库中数据更新在同步至lsm树数据库时,代价降低且效率提高。
65.举例来说,本技术实施例的场景之一,可以是应用到如图1所示的场景中,该场景包括b+树数据库101、处理器102和lsm树数据库103,其中,b+树数据库101与处理器102进行交互,处理器102和lsm树数据库103进行交互。在处理器102将b+树数据库101的b+树数据表同步至lsm树数据库103获得lsm树数据表后,处理器102执行本技术实施例提供的同步数据更新方法,实现b+树数据库101中数据更新同步至lsm树数据库103中。
66.首先,在上述应用场景中,虽然将本技术实施方式的动作描述由服务器101执行,但是,这些动作也可以由客户端102执行,或者还可以部分由客户端102执行、部分由服务器101执行。本技术在执行主体方面不受限制,只要执行了本技术实施方式所公开的动作即可。
67.其次,上述场景仅是本技术实施例提供的一个场景示例,本技术实施例并不限于此场景。
68.下面结合附图,通过实施例来详细说明本技术实施例中数据更新的同步方法及相关装置的具体实现方式。
69.示例性方法
70.参见图2,示出了本技术实施例中一种数据更新的同步方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:
71.步骤201:在b+树数据库的b+树数据表同步至日志化结构合并lsm树数据库获得lsm树数据表后,获取所述b+树数据表的当前b+树数据更新信息;所述lsm树数据表包括删除标识列和数据版本列。
72.随着b+树数据库中数据量逐渐增大,为了能够对b+树数据库中数据进行专业的数据分析,b+树数据库中数据需要同步至lsm树数据库中,例如,b+树数据库的b+树数据表同步至lsm树数据库,从而得到与b+树数据表对应一致的数据表,后续为了使得该数据表的便于更新,还需要在该数据表中增加删除标识列和数据版本列,得到lsm树数据表。
73.作为一种示例,如图3所示的一种b+树数据表和对应的lsm树数据表的示意图,其中,lsm树数据表相较于所述b+树数据表增加删除标识列和数据版本列。该删除标识列对应的删除标识字段值表示未删除,例如,删除标识列对应的删除标识字段值为0;该数据版本列对应的数据版本字段值表示初始版本,例如,数据版本列对应的数据版本字段值为0。
74.当b树数据库中数据发生更新时,lsm树数据库中对应的数据也需要更新;即,b+树数据表的发生更新时,lsm树数据表也需要进行相应的更新,因此,在本技术实施例中,首
先,需要获取b+树数据表的当前b+树数据更新信息。
75.其中,常见的数据更新信息可以分为数据修改信息、数据删除信息、和数据插入信息这三种类型。因此,在本技术实施例一种可选的实施方式中,所述当前b+树数据更新操作包括当前b+树数据修改信息、当前b+树数据删除信息和当前b+树数据插入信息中至少一种。
76.步骤202:基于所述当前b+树数据更新信息,对插入数据、所述插入数据对应的删除标识字段值和数据版本字段值进行配置,获得lsm树数据插入信息。
77.b+树数据库的b+树数据表可以进行原地更新,该更新方式使得b+树数据库的事务支持更加友好;但是,lsm树数据库的lsm树数据表进行同步的原地更新,需要在lsm树数据库中重写对应的整个数据块,该更新方式存在代价高、效率低的问题。因此,在本技术实施例中,考虑到lsm树数据库的lsm树数据表在数据插入操作上性能高,可以将步骤201获取到b+树数据表的当前b+树数据更新信息,转换为lsm树数据表的lsm树数据插入信息。即,在当前b+树数据更新信息的基础上,对插入数据、所述插入数据对应的删除标识字段值和数据版本字段值进行配置的方式,得到lsm树数据插入信息。
78.在当前b+树数据更新信息可以为当前b+树数据修改信息、当前b+树数据删除信息、当前b+树数据插入信息中任意一种或多种组合的基础上;由于当前b+树数据修改信息、当前b+树数据删除信息、当前b+树数据插入信息属于不同种类的数据更新信息,因此,将当前b+树数据更新信息转换为lsm树数据插入信息的具体实施方式也不同。具体实施方式如下所示:
79.第一,b+树数据表的当前b+树数据修改信息表示将b+树数据表中旧数据记录修改为新数据记录,则将该当前b+树数据修改信息转换为lsm树数据插入信息,实际上在获取该当前b+树数据修改信息对应的旧数据记录、新数据记录和更新次数的基础上,配置表示旧数据记录在本次数据更新中删除的数据插入信息、以及表示新数据记录在本次数据更新中增加(非删除)的数据插入信息,作为lsm树数据插入信息。其中,删除标识字段值用于表示删除或非删除,数据版本字段值表示更新次数。因此,在本技术实施例一种可选的实施方式中,所述步骤202例如可以包括以下步骤a-步骤b:
80.步骤a:获取所述当前b+树数据修改信息对应的旧数据记录、新数据记录和更新次数。
81.步骤b:将所述插入数据、所述插入数据对应的删除标识字段值和数据版本字段值,配置为所述旧数据记录、所述旧数据记录对应的删除标识字段值表示删除、所述旧数据记录对应的数据版本字段值表示所述更新次数,以及所述新数据记录、所述新数据记录对应的删除标识字段值表示非删除、所述新数据记录对应的数据版本字段值表示所述更新次数,获得所述lsm树数据插入信息。
82.作为一种示例,如图4所示的一种b+树数据表的当前b+树数据修改信息和对应的lsm树数据表的lsm树数据插入信息的示意图,其中,在图3的基础上,当前b+树数据修改信息表示将旧数据记录【id=2,姓名=李四】修改为新数据记录【id=2,姓名=二丫】;则配置【id=2,姓名=李四,删除标识=1,数据版本=1】的数据、【id=2,姓名=二丫,删除标识=0,数据版本=1】,作为lsm树数据插入信息。其中,“删除标识=1”是指删除标识字段值表示删除,“删除标识=0”是指删除标识字段值表示非删除,“数据版本=1”是指该当前b+树数
据修改信息对应的更新次数为第1次。
83.第二,b+树数据表的当前b+树数据删除信息表示将b+树数据表中旧数据记录删除,将该当前b+树数据修改信息转换为lsm树数据插入信息,实际上在获取该当前b+树数据删除信息对应的旧数据记录和更新次数的基础上,配置表示旧数据记录在本次数据更新中删除的数据插入信息,作为lsm树数据插入信息。同理,删除标识字段值用于表示删除或非删除,数据版本字段值表示更新次数。因此,在本技术实施例一种可选的实施方式中,所述步骤202例如可以包括以下步骤c-步骤d:
84.步骤c:获取所述当前b+树数据删除信息对应的旧数据记录和更新次数;
85.步骤d:将所述插入数据、所述插入数据对应的删除标识字段值和数据版本字段值,配置为所述旧数据记录、所述旧数据记录对应的删除标识字段值表示删除和所述旧数据记录对应的数据版本字段值表示所述更新次数,获得所述lsm树数据插入信息。
86.作为一种示例,在上述示例的基础上,如图5所示的一种b+树数据表的当前b+树数据删除信息和对应的lsm树数据表的lsm树数据插入信息的示意图。进一步地,当前b+树数据删除信息表示将旧数据记录【id=3,姓名=王五】删除;则配置【id=3,姓名=王五,删除标识=1,数据版本=2】,作为lsm树数据插入信息。其中,“删除标识=1”是指删除标识字段值表示删除,是指删除标识字段值表示非删除,“数据版本=2”是指该当前b+树数据删除信息对应的更新次数为第2次。
87.第三,b+树数据表的当前b+树数据插入信息表示在b+树数据表中插入新数据记录,则将当前b+树数据插入信息转换为lsm树数据插入信息,实际上在获取该当前b+树数据插入信息对应的新数据记录和更新次数的基础上,配置表示新数据记录在本次数据更新中增加(非删除)的数据插入信息,作为lsm树数据插入信息。同理,删除标识字段值用于表示删除或非删除,数据版本字段值表示更新次数。因此,在本技术实施例一种可选的实施方式中,所述步骤202例如可以包括以下步骤e-步骤f:
88.步骤e:获取所述当前b+树数据插入信息对应的新数据记录和更新次数;
89.步骤f:将所述插入数据、所述插入数据对应的删除标识字段值和数据版本字段值,配置为所述新数据记录、所述新数据记录对应的删除标识字段值表示非删除和所述新数据记录对应的数据版本字段值表示所述更新次数,获得所述lsm树数据插入信息。
90.作为一种示例,在上述示例的基础上,如图6所示的一种b+树数据表的当前b+树数据插入信息和对应的lsm树数据表的lsm树数据插入信息的示意图,其中,当前b+树数据插入信息表示增加新数据记录【id=4,姓名=赵六】;则配置【id=4,姓名=赵六,删除标识=0,数据版本=3】,作为lsm树数据插入信息。其中,删除标识=0”是指删除标识字段值表示非删除,“数据版本=3”是指该当前b+树数据插入信息对应的更新次数为第3次。
91.步骤203:基于所述lsm树数据插入信息,更新所述lsm树数据表。
92.在本技术实施例中,步骤202获得lsm树数据插入信息后,需要利用该lsm树数据插入信息更新lsm树数据表。由于基于该lsm树数据插入信息,可在lsm树数据库的lsm树数据表中,执行高性能的数据插入操作,使得lsm树数据库在数据更新时代价降低且效率提高,从而使得b+树数据库中数据更新在同步至lsm树数据库时,代价降低且效率提高。
93.此外,在本技术实施例中,在b+树数据库中数据更新同步至lsm树数据库后,基于上述lsm树数据库的lsm树数据表的数据更新特性,对lsm树数据表进行数据记录查询时,并
非是基于数据记录查询请求携带的数据记录标识,查询对应的所有数据记录,而是需要以表示非删除的删除标识字段值和该数据记录标识对应的表示最新更新次数的数据版本字段值为限制,组合得到查询条件,才能从lsm树数据表中查询得到同步数据更新后的、正确的数据记录。
94.因此,在本技术实施例一种可选的实施方式中,所述方法例如还可以包括步骤g:在对所述lsm树数据表进行数据记录查询时,以所述数据记录查询请求携带的数据记录标识、表示非删除的删除标识字段值和所述数据记录标识对应的表示最新更新次数的数据版本字段值为查询条件,查询所述lsm树数据表中数据记录。
95.作为一种示例,在图4所示的lsm树数据表的lsm树数据插入信息执行完成后,当针对lsm树数据表的数据记录查询请求携带的数据记录标识为“id=2”时,需要以“id=2&删除标识=0&数据版本=1”为查询条件,查询lsm树数据表中数据记录,得到【id=2,姓名=二丫,删除标识=0,数据版本=1】。
96.另外,在本技术实施例中,在b+树数据库中数据更新同步至lsm树数据库的后,还可以验证同步数据更新完成后,b+树数据库的b+树数据表和lsm树数据库的lsm树数据表之间数据是否一致。具体地,在lsm树数据库的lsm树数据表中增加时间戳列,该时间戳列对应的时间戳字段值可以记录b+树数据表的b+树数据更新信息对应的更新时间;则读取数据更新后的b+树数据表中数据记录,并统计各字段列对应的统计数据,作为第一统计数据;给出同步数据更新一定时间,在上述读取操作对应时间的一段时间后,参见上述数据记录查询的说明,读取同步数据更新后的lsm树数据表中正确的数据记录,并统计各字段列对应的统计数据,作为第二统计数据。只有判断得到第二统计数据与第一统计数据一致时,确定该同步数据更新成功,b+树数据表与lsm树数据表之间数据一致;反之,b+树数据表与lsm树数据表之间数据不一致,需要提示该不一致的情况,以便查看b+树数据表与lsm树数据表,进行相关调整保障数据一致性。
97.因此,在本技术实施例一种可选的实施方式中,所述方法例如还可以包括以下步骤h-步骤k:
98.步骤h:在所述lsm树数据表中增加时间戳列,所述时间戳列对应的时间戳字段值用于记录b+树数据更新信息对应的更新时间;
99.步骤i:在所述b+树数据表数据更新后,读取所述b+树数据表中数据记录,获得所述b+树数据表中各字段列对应的第一统计数据和读取时间;
100.步骤j:在间隔所述读取时间预设时间段后,以每个数据记录标识、表示非删除的删除标识字段值、所述数据记录标识对应的表示最新更新次数的数据版本字段值和表示早于所述读取时间的时间戳字段值为读取条件,读取所述lsm树数据表中数据记录,获得所述lsm树数据表中所述各字段列对应的第二统计数据;
101.步骤k:若所述第二统计数据与所述第一统计数据不一致,提示所述lsm树数据表与所述b+树数据表之间数据不一致。
102.作为一种示例,在图4的基础上,在图7所示的一种数据更新后的b+树数据表和同步数据更新后的lsm树数据表的示意图,其中,lsm树数据表中增加时间戳列,读取b+树数据表中数据记录为【id=1,姓名=张三】、【id=2,姓名=二丫】和【id=3,姓名=王五】,获得b+树数据表中各字段列对应的第一统计数据为“id列:max(id)=3,sum(id)=6”、“姓名列:
max(姓名)=王五”,读取时间为“t=2021/5/12 10:35:00”。在间隔读取时间“t=2021/5/12 10:35:00”2分钟后,分别以“id=1&删除标识=0&数据版本=0&t<2021/5/12 10:35:00”、“id=2&删除标识=0&数据版本=1&t<2021/5/12 10:35:00”和“id=3&删除标识=0&数据版本=0&t<2021/5/12 10:35:00”为读取条件,读取所述lsm树数据表中数据记录,得到【id=1,姓名=张三,删除标识=0,数据版本=0】、【id=2,姓名=二丫,删除标识=0,数据版本=1】和【id=3,姓名=王五,删除标识=0,数据版本=1】,获得lsm树数据表中上述各字段列对应的第二统计数据为“id列:max(id)=3,sum(id)=6”、“姓名列:max(姓名)=王五”。第二统计数据与第一统计数据一致,确定该同步数据更新成功,b+树数据表与lsm树数据表之间数据一致。
103.通过本实施例提供的各种实施方式,在b+树数据库的b+树数据表同步至lsm树数据库得到lsm树数据表后,获取b+树数据表的当前b+树数据更新信息;其中,lsm树数据表包括删除标识列和数据版本列;在当前b+树数据更新信息的基础上,对插入数据、插入数据对应的删除标识字段值和数据版本字段值进行配置,得到lsm树数据插入信息;以lsm树数据插入信息更新lsm树数据表。可见,通过在lsm树数据表中增加删除标识列和数据版本列,当捕捉到b+树数据表的当前b+树数据更新信息时,设置插入数据和其对应的删除标识字段值和数据版本字段值的方式,能够将当前b+树数据更新信息转换为lsm树数据插入信息,使得lsm树数据库在数据更新时,基于lsm树数据插入信息执行高性能的数据插入操作,使得b+树数据库中数据更新在同步至lsm树数据库时,代价降低且效率提高。
104.示例性装置
105.参见图8,示出了本技术实施例中一种数据更新的同步装置的结构示意图。在本实施例中,所述装置例如具体可以包括:
106.获取单元801,用于在b+树数据库的b+树数据表同步至日志化结构合并lsm树数据库获得lsm树数据表后,获取所述b+树数据表的当前b+树数据更新信息;所述lsm树数据表包括删除标识列和数据版本列;
107.第一获得单元802,用于基于所述当前b+树数据更新信息,对插入数据、所述插入数据对应的删除标识字段值和数据版本字段值进行配置,获得lsm树数据插入信息;
108.更新单元803,用于基于所述lsm树数据插入信息,更新所述lsm树数据表。
109.在本技术实施例一种可选的实施方式中,所述当前b+树数据更新信息包括当前b+树数据修改信息、当前b+树数据删除信息和当前b+树数据插入信息中至少一种。
110.在本技术实施例一种可选的实施方式中,所述当前b+树数据更新信息包括所述当前b+树数据修改信息,所述第一获得单元802,用于:
111.获取所述当前b+树数据修改信息对应的旧数据记录、新数据记录和更新次数;
112.将所述插入数据、所述插入数据对应的删除标识字段值和数据版本字段值,配置为所述旧数据记录、所述旧数据记录对应的删除标识字段值表示删除、所述旧数据记录对应的数据版本字段值表示所述更新次数,以及所述新数据记录、所述新数据记录对应的删除标识字段值表示非删除、所述新数据记录对应的数据版本字段值表示所述更新次数,获得所述lsm树数据插入信息。
113.在本技术实施例一种可选的实施方式中,所述当前b+树数据更新信息包括所述当前b+树数据删除信息,所述第一获得单元802,用于:
114.获取所述当前b+树数据删除信息对应的旧数据记录和更新次数;
115.将所述插入数据、所述插入数据对应的删除标识字段值和数据版本字段值,配置为所述旧数据记录、所述旧数据记录对应的删除标识字段值表示删除和所述旧数据记录对应的数据版本字段值表示所述更新次数,获得所述lsm树数据插入信息。
116.在本技术实施例一种可选的实施方式中,所述当前b+树数据更新信息包括所述当前b+树数据插入信息,所述第一获得单元802,用于:
117.获取所述当前b+树数据插入信息对应的新数据记录和更新次数;
118.将所述插入数据、所述插入数据对应的删除标识字段值和数据版本字段值,配置为所述新数据记录、所述新数据记录对应的删除标识字段值表示非删除和所述新数据记录对应的数据版本字段值表示所述更新次数,获得所述lsm树数据插入信息。
119.在本技术实施例一种可选的实施方式中,所述装置还包括:
120.查询单元,用于在对所述lsm树数据表进行数据记录查询时,以所述数据记录查询请求携带的数据记录标识、表示非删除的删除标识字段值和所述数据记录标识对应的表示最新更新次数的数据版本字段值为查询条件,查询所述lsm树数据表中数据记录。
121.在本技术实施例一种可选的实施方式中,所述装置还包括:
122.增加单元,用于在所述lsm树数据表中增加时间戳列,所述时间戳列对应的时间戳字段值用于记录b+树数据更新信息对应的更新时间;
123.第二获得单元,用于在所述b+树数据表数据更新后,读取所述b+树数据表中数据记录,获得所述b+树数据表中各字段列对应的第一统计数据和读取时间;
124.第三获得单元,用于在间隔所述读取时间预设时间段后,以每个数据记录标识、表示非删除的删除标识字段值、所述数据记录标识对应的表示最新更新次数的数据版本字段值和表示早于所述读取时间的时间戳字段值为读取条件,读取所述lsm树数据表中数据记录,获得所述lsm树数据表中所述各字段列对应的第二统计数据;
125.提示单元,用于若所述第二统计数据与所述第一统计数据不一致,提示所述lsm树数据表与所述b+树数据表之间数据不一致。
126.通过本实施例提供的各种实施方式,在b+树数据库的b+树数据表同步至lsm树数据库得到lsm树数据表后,获取b+树数据表的当前b+树数据更新信息;其中,lsm树数据表包括删除标识列和数据版本列;在当前b+树数据更新信息的基础上,对插入数据、插入数据对应的删除标识字段值和数据版本字段值进行配置,得到lsm树数据插入信息;以lsm树数据插入信息更新lsm树数据表。可见,通过在lsm树数据表中增加删除标识列和数据版本列,当捕捉到b+树数据表的当前b+树数据更新信息时,设置插入数据和其对应的删除标识字段值和数据版本字段值的方式,能够将当前b+树数据更新信息转换为lsm树数据插入信息,使得lsm树数据库在数据更新时,基于lsm树数据插入信息执行高性能的数据插入操作,使得b+树数据库中数据更新在同步至lsm树数据库时,代价降低且效率提高。
127.图9是根据一示例性实施例示出的一种用于数据更新的同步装置900的框图。例如,装置900可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
128.参照图9,装置900可以包括以下一个或多个组件:处理组件902,存储器904,电源组件906,多媒体组件908,音频组件910,输入/输出(i/o)的接口912,传感器组件914,以及
通信组件916。
129.处理组件902通常控制装置900的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件902可以包括一个或多个处理器920来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件902可以包括一个或多个模块,便于处理组件902和其他组件之间的交互。例如,处理部件902可以包括多媒体模块,以方便多媒体组件908和处理组件902之间的交互。
130.存储器904被配置为存储各种类型的数据以支持在设备900的操作。这些数据的示例包括用于在装置900上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器904可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
131.电源组件906为装置900的各种组件提供电力。电源组件906可以包括电源管理系统,一个或多个电源,及其他与为装置900生成、管理和分配电力相关联的组件。
132.多媒体组件908包括在所述装置900和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相互关联的持续时间和压力。在一些实施例中,多媒体组件908包括一个前置摄像头和/或后置摄像头。当设备900处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
133.音频组件910被配置为输出和/或输入音频信号。例如,音频组件910包括一个麦克风(mic),当装置900处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器904或经由通信组件916发送。在一些实施例中,音频组件910还包括一个扬声器,用于输出音频信号。
134.i/o接口912为处理组件902和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
135.传感器组件914包括一个或多个传感器,用于为装置900提供各个方面的状态评估。例如,传感器组件914可以检测到设备900的打开/关闭状态,组件的相对定位,例如所述组件为装置900的显示器和小键盘,传感器组件914还可以检测装置900或装置900一个组件的位置改变,用户与装置900接触的存在或不存在,装置900方位或加速/减速和装置900的温度变化。传感器组件914可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件914还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件914还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
136.通信组件916被配置为便于装置900和其他设备之间有线或无线方式的通信。装置900可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施
例中,通信部件916经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件916还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
137.在示例性实施例中,装置900可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子组件实现,用于执行上述方法。
138.在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器904,上述指令可由装置900的处理器920执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
139.一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种数据更新的同步方法,所述方法包括:
140.在b+树数据库的b+树数据表同步至日志化结构合并lsm树数据库获得lsm树数据表后,获取所述b+树数据表的当前b+树数据更新信息;所述lsm树数据表包括删除标识列和数据版本列;
141.基于所述当前b+树数据更新信息,对插入数据、所述插入数据对应的删除标识字段值和数据版本字段值进行配置,获得lsm树数据插入信息;
142.基于所述lsm树数据插入信息,更新所述lsm树数据表。
143.图10是本技术实施例中服务器的结构示意图。该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)1022(例如,一个或一个以上处理器)和存储器1032,一个或一个以上存储应用程序1042或数据1044的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1032和存储介质1030可以是短暂存储或持久存储。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1022可以设置为与存储介质1030通信,在服务器1000上执行存储介质1030中的一系列指令操作。
144.服务器1000还可以包括一个或一个以上电源1026,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1058,一个或一个以上键盘1056,和/或,一个或一个以上操作系统1041,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
145.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
146.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业
技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
147.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
148.以上所述,仅是本技术的较佳实施例而已,并非对本技术作任何形式上的限制。虽然本技术已以较佳实施例揭露如上,然而并非用以限定本技术。任何熟悉本领域的技术人员,在不脱离本技术技术方案范围情况下,都可利用上述揭示的方法和技术内容对本技术技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本技术技术方案的内容,依据本技术的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本技术技术方案保护的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1