用于高效地实现可快速复制的数据库的方法和装置制造方法及图纸

技术编号:24505841 阅读:45 留言:0更新日期:2020-06-13 07:58
一种可快速复制的数据库装置,包括处理器和与处理器进行电子通信的存储器。存储器存储具有多个记录的数据库表,每个记录具有包括版本标识符的复合键。存储器还存储指令,该指令能够执行以使处理器生成数据库表的第一虚拟克隆和数据库表的第二虚拟克隆,在第一虚拟克隆处接收查询,并且修改查询以使其包括第一虚拟克隆的版本标识符。处理器可以使用修改后的查询来查询数据库表,以部分地基于来自具有与第一虚拟克隆的版本标识符的祖先路径相关联的版本标识符的记录集合的每个记录来生成响应,并且发送该响应。每个复合键包括版本标识符和数据部分。

Methods and devices for efficient implementation of database that can be replicated quickly

【技术实现步骤摘要】
【国外来华专利技术】用于高效地实现可快速复制的数据库的方法和装置对相关申请的交叉引用本申请要求于2017年11月1日提交的标题为“MethodsandApparatusforEfficientlyImplementingaDistributedDatabasewithinaNetwork(用于在网络内高效地实现分布式数据库的方法和装置)”的第62/580,056号美国临时申请的优先权和权益,该美国临时申请的公开以其全部被引用的方式并入本文中。
技术介绍
本文描述的实施例一般涉及用于实现提高效率的数据库系统的方法和装置。
技术实现思路
在某些实施例中,可快速复制的数据库装置包括处理器以及与处理器进行电子通信的存储器。存储器存储具有多个记录的数据库表,每个记录具有包括版本标识符的复合键。存储器还存储指令,该指令能够执行以使处理器生成数据库表的第一虚拟克隆和数据库表的第二虚拟克隆,在第一虚拟克隆处接收查询并修改查询以使该查询包括第一个虚拟克隆的版本标识符。处理器可以使用修改后的查询来查询数据库表,以部分地基于来自具有与第一虚拟克隆的版本标识符的祖先路径相关联的版本标识符的记录集合的每个记录来生成响应,并发送该响应。每个复合键包括版本标识符和数据部分。附图说明图1是示出了根据实施例的用于实现可快速复制的数据库的系统的框图。图2A是根据实施例的可查询的层次树和相关联的数据库表的图。图2B是根据实施例的冲突约束被强制执行的可查询的层次树和相关联的数据库表的图。图3A是示出了根据实施例的用于生成层次树的虚拟克隆并与层次树的虚拟克隆进行交互的方法的流程图。图3B包括示出了图3A的层次树的时间演化以及经由图3A的层次树与数据库表的交互的一系列图。图4A至图4F包括示出了根据实施例的包括虚拟克隆的表示的层次树的时间演化以及相关联的数据库表的图。图4G包括示出了根据实施例的查询过程的图。图5包括示出了根据实施例的增量垃圾收集过程的一系列图。图6是根据实施例的用于快速复制数据库的处理器实现的垃圾收集(或级联删除)方法的过程流程图。图7是根据实施例的用于快速复制数据库的处理器实现的垃圾收集(或级联删除)方法的过程流程图。图8A至图8D是示出了根据实施例的可快速复制的数据库系统的实现的图。图9包括示出了根据实施例的快速复制操作的一系列图。具体实施方式本公开的高效数据库系统包括一个或多个物理关系数据库(包括“数据库表”和/或在本文中与“数据库表”可互换使用),每个物理关系数据库存储在非暂时性处理器可读存储器中,并且一个或多个相关联的动态层次树的每一个包括多个虚拟克隆,由此可以在预定条件下和/或在预定时间段内访问和/或修改关系数据库的数据。本文阐述的数据库实现和管理方法比已知的数据库复制和交互方法显著更快并且更高效。本文描述的关系数据库当根据本公开被实现时可以被称为“可快速复制”,因为许多不同的“副本”可以经由新虚拟克隆的实例化来快速创建和/或定义,其中每个不同的“副本”是指“虚拟”副本-如从不同的相关联的虚拟克隆的角度来看的并且从不同的相关联的虚拟克隆访问的内容。换句话说,可以说关系数据库是被“包装”在将关系数据库转换为可快速复制的数据库的类中。在某些实现中,本公开的高效数据库系统可以被描述为“无领导者”,因为在多个相关联的、地理位置分散的位置处有多个物理关系数据库(即,关系数据库的“实例”)以及相关联的动态层次树,可选地,每个具有不同的相关联的管理员,但是没有关系数据库的集中式的“主”或“领导者”副本。换句话说,可以在多个物理关系数据库的每一个处以不同的顺序和/或在不同的时间应用不同的更改。在分布式数据库系统中没有领导者,可以提高分布式数据库系统的安全性。例如,对于领导者,存在攻击和/或故障的单个点。如果恶意软件感染领导者和/或领导者的数据库表中的值被恶意更改以致其具有不正确的值,则该感染和/或不正确的值可能会在整个数据库实例网络中传播,或被传递到另一个分布式数据库实例。相反,在本公开的无领导者系统中,没有攻击和/或故障的单个点。本文描述的无领导者分布式数据库系统还可以提高一种或多种共识算法的收敛速度,同时减少设备之间传输的数据量。通过生成可以被用于跟踪对数据库表的内容的不同的增量更改的虚拟克隆,本文描述的分布式数据库系统也是“可快速复制的”。如本文所使用的,“快速复制”具有与短语“虚拟克隆”相同的含义。这样,与某些已知的分布式数据库不同,无需使用复制和重复就可以完成更新,其可以是资源密集型的且耗时的,尤其是当被管理的数据语料库庞大时。在某些实施例中,来自层次树的虚拟克隆组的每个虚拟克隆可以用作“虚拟数据库”,因为关系数据库的数据可以由与该虚拟克隆交互的用户(例如,经由查询)访问,使得对该用户呈现数据是在该虚拟克隆处本地地被存储和/或正在被搜索,尽管其不是(即,存储和查询发生在关系数据库/表上)。对关系数据库的数据表的修改可以被应用在来自虚拟克隆组中的多个虚拟克隆上,并且可以使用“复合键”(例如,使用被添加到数据库表中的属性以及数据库表的遗留键字段)在关系数据库内与该虚拟克隆相关联。复合键可以包括至少两个值:与至少一个虚拟克隆相关联的版本标识符(“版本ID”)、以及表示正在被引用的数据库表的属性的字段(例如,行(即,“记录”或“元组”)标识符或名称、列(即“属性”)标识符或名称、数据标签、数据值等),诸如该数据库表的遗留键字段(在本文中也被称为“虚拟主键字段”)。示例属性包括但不限于虚拟主键名称、值(例如余额、借记、贷记、转账金额)、货币、描述、日期、数量、计数(tally)、版本、持续时间、顺序等。复合键的部分可以被存储为数据库表记录的一部分,使得由一个虚拟克隆做出的编辑从任何其他虚拟克隆的角度来看不会影响数据库表的数据。在某些实施例中,给定复合键的多个实例不被允许在任何给定时间下在数据库表内共存(即,在数据库表内仅能有给定复合键的一个实例)。由特定虚拟克隆对关系数据库的数据表做出的修改经由该虚拟克隆的版本标识符而与该虚拟克隆相关联,使得经由该虚拟克隆做出的后续查询或修改可以被应用于关系数据库的最新形式,如经由该虚拟克隆/版本ID对数据库表做出的累积交互所定义的那样。但是,由特定虚拟克隆对数据库表做出的修改从其他虚拟克隆的角度来看并非明显的或可访问的。归因于根据虚拟克隆的相关联的版本ID对更改的虚拟克隆的相关联的修改的更改,以此分布式方式实现更改将消除复制、分发和本地存储(例如,在托管虚拟克隆的一组服务器节点中的每一个处)每个关系数据库的数据的多个副本的需要。本文阐述的方法可以消除对响应于每台机器在与其进行网络通信中做出的每个更改将关系数据库的整个内容多次发送到许多机器的需要。可快速复制的数据库系统图1是示出了根据一些实施例的可快速复制的数据库系统100的组件的系统图。如图1所示,系统100包括与网络105进行无线或有线通信的第一计算设备110、以及也与网络105进行无线或有线通信的一个或多个附加的计算设备120。第一计算本文档来自技高网...

【技术保护点】
1.一种设备,包括:/n处理器;以及/n与所述处理器进行电子通信的存储器,所述存储器存储包括多个记录的数据库表,来自所述多个记录的每个记录具有包括版本标识符的复合键,/n所述存储器包括指令,所述指令能够执行以使所述处理器:/n生成所述数据库表的第一虚拟克隆和所述数据库表的第二虚拟克隆;/n在所述第一虚拟克隆处接收查询;/n基于在所述第一虚拟克隆处接收到所述查询,修改所述查询以定义包括与所述第一虚拟克隆相关联的版本标识符的修改后的查询;/n使用所述修改后的查询来查询所述数据库表,以基于以下各项生成包括来自所述多个记录的记录集合的响应:(1)来自所述记录集合的每个记录满足所述查询;以及(2)来自所述记录集合的每个记录具有与和所述第一虚拟克隆相关联的所述版本标识符的祖先路径相关联的版本标识符;/n发送包括所述记录集合的所述响应作为对所述查询的响应;/n来自所述多个记录的每个记录的复合键包括该复合键的所述版本标识符和数据部分,所述多个记录被配置使得在任何给定时间在数据库表中仅存在以下中的一个:(1)包括所述数据部分的值和与所述第一虚拟克隆相关联的所述版本标识符的复合键;或(2)包括所述数据部分的值和与所述第二虚拟克隆相关联的所述版本标识符的复合键。/n...

【技术特征摘要】
【国外来华专利技术】20171101 US 62/580,0561.一种设备,包括:
处理器;以及
与所述处理器进行电子通信的存储器,所述存储器存储包括多个记录的数据库表,来自所述多个记录的每个记录具有包括版本标识符的复合键,
所述存储器包括指令,所述指令能够执行以使所述处理器:
生成所述数据库表的第一虚拟克隆和所述数据库表的第二虚拟克隆;
在所述第一虚拟克隆处接收查询;
基于在所述第一虚拟克隆处接收到所述查询,修改所述查询以定义包括与所述第一虚拟克隆相关联的版本标识符的修改后的查询;
使用所述修改后的查询来查询所述数据库表,以基于以下各项生成包括来自所述多个记录的记录集合的响应:(1)来自所述记录集合的每个记录满足所述查询;以及(2)来自所述记录集合的每个记录具有与和所述第一虚拟克隆相关联的所述版本标识符的祖先路径相关联的版本标识符;
发送包括所述记录集合的所述响应作为对所述查询的响应;
来自所述多个记录的每个记录的复合键包括该复合键的所述版本标识符和数据部分,所述多个记录被配置使得在任何给定时间在数据库表中仅存在以下中的一个:(1)包括所述数据部分的值和与所述第一虚拟克隆相关联的所述版本标识符的复合键;或(2)包括所述数据部分的值和与所述第二虚拟克隆相关联的所述版本标识符的复合键。


2.如权利要求1所述的装置,其中所述存储器还包括指令,所述指令能够执行以使所述处理器:
响应于经由所述第一虚拟克隆接收到的插入指令,将记录添加到所述数据库表,所述记录包括具有与所述第一虚拟克隆相关联的版本标识符的复合键和数据,使得:(1)随后在所述第一虚拟克隆处接收到的并引用所述数据的查询返回所述记录;以及(2)随后在所述第三虚拟克隆处接收到的针对所述数据的查询不返回所述记录。


3.如权利要求1所述的装置,其中,所述指令还能够执行以使所述处理器:
响应于将所述数据库表的第一记录的字段的值从第一值更新为第二值并经由第三虚拟克隆接收到的指令,将第二记录添加到所述数据库表,所述第二记录包括具有与所述第三虚拟克隆相关联的版本标识符的复合键和所述第二值;以及
响应于更新所述第一记录的所述字段的所述值的所述指令,将所述第一记录的复合键修改为不包括与所述第三虚拟克隆相关联的所述版本标识符,使得:
随后在所述第三虚拟克隆处接收到的并引用所述字段的查询返回所述第二记录,以及
在所述第一虚拟克隆处接收到的并引用所述字段的查询返回所述第一记录。


4.如权利要求1所述的装置,其中,所述指令还能够执行以使所述处理器:
响应于从所述多个记录中删除记录并经由第三虚拟克隆接收到的指令,将所述记录的所述复合键的所述版本标识符修改为不包括与所述第三虚拟克隆相关联的版本标识符,使得:
随后在所述第三虚拟克隆处接收到的针对所述记录的查询不返回所述记录,以及
随后在所述第一虚拟克隆处接收到的针对所述记录的查询返回所述记录。


5.如权利要求1所述的装置,其中,所述响应是第一响应,并且所述修改后的查询是第一修改后的查询,所述指令还能够执行以使处理器:
如果所述第一响应是空值,则生成包括所述第二虚拟克隆的版本标识符的第二修改后的查询,所述第二虚拟克隆是所述第一虚拟克隆的祖先;
使用所述第二修改后的查询来查询所述数据库表,以基于以下各项生成包括来自所述多个记录的记录集合的第二响应:(1)来自所述第二响应的所述记录集合的每个记录满足所述第二修改后的查询;以及(2)来自所述第二响应的所述记录集合的每个记录具有与所述第二虚拟克隆的所述版本标识符的祖先路径相关联的版本标识符;以及
发送包括所述记录集合的所述第二响应作为对所述查询的响应。


6.如权利要求1所述的装置,其中所述指令还能够执行以使所述处理器:将所述第一虚拟克隆是所述第二虚拟克隆的后代的指示存储在所述存储器中。


7.如权利要求1所述的装置,其中,所述指令还能够执行以使所述处理器:生成所述数据库表的第三虚拟克隆,所述第三虚拟克隆既不是所述第一虚拟克隆的祖先也不是所述第一虚拟克隆的后代,所述多个记录包括具有包括与所述第三虚拟克隆相关联的所述版本标识符和所述数据部分的值的复合键的记录。


8.一种装置,包括:
处理器;以及
与所述处理器进行电...

【专利技术属性】
技术研发人员:L·C·贝尔德三世M·哈蒙
申请(专利权)人:斯沃尔德斯股份有限公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1