为数据库架构生成哈希树制造技术

技术编号:33720737 阅读:18 留言:0更新日期:2022-06-08 21:12
本申请公开了涉及确定数据库架构集合是否不同的技术。计算机系统可以接收用于为存储在具有第一数据库架构的数据库中的数据集合创建快照的请求。响应于接收到该请求,计算机系统可以为数据集合创建快照。作为创建的一部分,计算机系统可以基于第一数据库架构生成哈希值的第一层系,该哈希值的第一层系包括第一数据库架构的第一根哈希值。哈希值的第一层系可用于确定第一数据库架构是否不同于第二数据库架构。计算机系统可以与快照一起包括哈希值的第一层系。值的第一层系。值的第一层系。

【技术实现步骤摘要】
【国外来华专利技术】为数据库架构生成哈希树

技术介绍


[0001]公开文本总体上涉及数据库架构,并且更具体地,涉及创建具有标识数据库架构的根哈希值(root hash value)的哈希树(或哈希值的层系)。
[0002]相关技术描述
[0003]现代数据库系统通常实施使用户能够以有组织的方式存储能被有效访问和操纵的信息采集的管理系统。在许多情况下,这些管理系统对被构造为标识信息片段之间的关系的关系数据库维护。存储在关系数据库中的信息通常被组织为表的集合,每个表由列和行组成,其中每个列限定对信息的分组。在关系数据库的背景中,表的结构(例如,形成表的列)以及它们如何相关是在数据库架构中指定的,该数据库架构为数据库中诸如表、视图、存储过程等对象提供逻辑分组。在数据库的整个生命周期中,随着添加其他表以及在结构上更改或删除旧表,数据库架构可能会经历各种更改。
附图说明
[0004]图1是示出根据一些实施方案能够创建哈希树的系统的示例性单元的框图,该哈希树具有可用于标识数据库架构的根哈希值。
[0005]图2是示出根据一些实施方案能够生成包括哈希树的快照的快照生成引擎的示例性单元的框图。
[0006]图3A是示出根据一些实施方案的具有可用于标识数据库架构的根哈希值的哈希树的示例性单元的框图。
[0007]图3B是示出根据一些实施方案的两个不同哈希树的示例性单元的框图。
[0008]图4是示出根据一些实施方案的包括示例性数据的示例性单元的框图,可以对该示例性数据进行哈希化(hashed)以创建具有根哈希值的哈希树。
[0009]图5是示出根据一些实施方案的可用于创建与快照相关联的状态的输入引擎的示例性单元的框图。
[0010]图6和图7是示出根据一些实施方案的涉及创建包括根哈希值的快照的示例性方法的流程图。
[0011]图8是示出根据一些实施方案的示例计算机系统的框图。
[0012]公开文本包括对“一个实施方案”或“实施方案”的引用。短语“在一个实施方案中”或“在实施方案中”的出现不一定指同一个实施方案。特定的特征、结构或特性可以以与公开文本一致的任何合适的方式组合。
[0013]在公开文本中,不同的实体(可以不同地称为“单元”、“电路”、其他组件等)可以被描述或称为“被配置”为执行一个或多个任务或操作。该表述——[实体]被配置为[执行一个或多个任务]——在此用于指结构(即,物理上的事物,例如电子电路)。更具体地,该表述用于表示该结构被布置为在操作期间执行一个或多个任务。即使结构当前未操作,也可以
说该结构被“配置为”执行某些任务。“被配置为通过网络进行通信的网络接口”旨在涵盖例如具有在操作期间执行该功能的电路的集成电路,即使所讨论的集成电路当前未被使用(例如,电源未连接到该集成电路)。因此,被描述或叙述为“被配置为”执行某一任务的实体是指物理上的事物,例如设备、电路、存储可执行以实现该任务的程序指令的存储器等。这个措辞在这里不是用来指无形的事物。因此,“被配置为”在此不用于指软件实体诸如应用编程接口(API)。
[0014]术语“配置为”并不意味着“可配置为”。例如,未编程的FPGA不会被认为是“被配置为”执行某一特定功能,尽管它可以是“可配置为”执行该功能,并且可以“被配置为”在编程之后执行该功能。
[0015]如本文所使用的,术语“第一”、“第二”等用作它们前面的名词的标签,并不隐含任何类型的排序(例如,空间、时间、逻辑等),除非特别说明。例如,在具有八个处理核心的处理器中,术语“第一”和“第二”处理核心可用于指代八个处理核心中的任何两个。换言之,例如,第一处理核心和第二处理核心不限于处理核心0和1。
[0016]如本文所使用的,术语“基于”用于描述影响决定的一个或多个因素。这个术语不排除可能影响决定的其他因素。即,决定可以仅基于指定因素或基于指定因素以及其他未指定的因素。考虑措辞“根据B确定A”。该措辞指定了B是用于确定A或影响A的决定的因素。该措辞并不排除A的决定还可以基于一些其他因素,例如C。该措辞还旨在涵盖仅基于B来确定A的实施方案。如本文所使用的,措辞“基于”因此与措辞“至少部分地基于”同义。
具体实施方式
[0017]许多数据库系统能够创建它们所管理的数据库的数据库快照。术语“数据库快照”在本文中按照其在本领域中的普通和习惯含义来使用,指的是在创建数据库快照的时间点保存数据库的一部分或全部的状态的数据库结构。因此,数据库快照可用于重新创建与创建数据库快照的状态相对应的数据库的一部分或全部。但是在一些实现方式中,数据库快照不存储关于数据库的某些信息,诸如其数据库架构。当重新创建数据库的一部分或全部时,数据库系统可以使用已经存在的数据库架构。然而,如果数据库架构不同于创建快照时间点时的数据库架构,则数据库系统将可能遇到诸如数据损坏和系统崩溃等问题。
[0018]例如,在多租户模型中,数据库系统在数据库中为多个租户存储数据。在某个时候,数据库系统可以生成租户数据库快照,该快照捕获特定租户在该时间点的所有数据。该数据库快照可用于例如在沙箱环境中或在不同数据库上重新创建租户作为租户迁移服务的一部分。如果沙箱环境或其他数据库的数据库架构不同(例如,某些表包括附加列),则租户的数据将不能在没有数据损坏或其他不希望出现的问题的情况下在该数据库架构下进行输入。因此,为了避免这些不希望出现的问题,可能需要确定两个数据库架构是否不同
[0019]公开文本描述了用于确定数据库架构是否不同以及标识不同数据库架构如何不同的各种技术。在下文描述的各种实施方案中,数据库系统为存储在由数据库系统管理的数据库中的数据集合创建快照。在一些情况下,数据库系统可以响应于接收到来自另一系统诸如应用程序服务器或用户设备的请求而创建快照。在各实施方案中,作为创建快照的一部分,数据库系统将哈希函数应用于在限定数据库层系的数据库架构中指定的信息的不同部分,在该数据库层系中,数据库对象(例如,表)包括属性/列,属性/列本身包括特性(例
如,数据类型)。术语“哈希函数”在本文中是按照其在本领域中的普通和习惯含义来使用的,是指可用于将任意大小的数据映射到固定大小的值的函数。在各实施方案中,数据库系统将每个属性的一个或多个特性一同哈希化(即,通过应用哈希函数),以导出哈希值层系的第一层。术语“哈希值”在本文中是按照其在本领域中的普通和习惯含义使用的,是指通过将哈希函数应用于数据而导出的值。数据库系统可以将与同一数据库表相关的第一层的哈希值分组,并将哈希函数应用于各个组,以导出哈希值层系的第二层。然后,该过程可以继续(例如,通过将第二层的哈希值一同哈希化),直到最终导出根哈希值。因此,在一些实施方案中,该根哈希值可以代表整个数据库架构。在各实施方案中,数据库系统包括具有所创建的快照的哈希值的层系。
[0020]在各实施方案中,当重新创建由快照标识的状态(例如,使数据库存储创建快照时由快照捕获的数据集合)时,数据库系统基于在其中存储快照数据的数据库的当前数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:由计算机系统接收为存储在具有第一数据库架构的数据库中的数据集合创建快照的请求;响应于接收到所述请求,所述计算机系统为所述数据集合创建所述快照,其中所述创建包括:基于所述第一数据库架构,生成哈希值的第一层系,所述哈希值的第一层系包括用于所述第一数据库架构的第一根哈希值;和与所述快照一起包括所述哈希值的第一层系,其中所述哈希值的第一层系能用于确定所述第一数据库架构是否不同于第二数据库架构。2.根据权利要求1所述的方法,其中所述第一数据库架构限定多个数据库表,其中给定的数据库表与属性集合相关联,并且其中给定的属性与特性集合相关联。3.根据权利要求2所述的方法,其中生成所述哈希值的第一层系包括:针对所述给定的属性,将哈希函数应用于所述给定的属性的所述特性集合中的一个或多个以导出属性哈希值,所述属性哈希值形成哈希值的第一层的一部分。4.根据权利要求3所述的方法,其中所述哈希值的第一层中包括的特定的属性哈希值集合对应于所述多个数据库表中的特定数据库表,其中生成所述哈希值的第一层系包括:将哈希函数应用于所述特定的属性哈希值集合以导出形成哈希值的第二层的一部分的表哈希值。5.根据权利要求4所述的方法,其中所述特定数据库表与索引相关联,其中将所述索引的特性进行哈希化以形成索引哈希值,并且其中将所述索引哈希值与所述特定的属性哈希值集合一起进行哈希化以形成所述表哈希值。6.根据权利要求4所述的方法,其中生成所述哈希值的第一层系包括:将哈希函数应用于所述哈希值的第二层中包括的表哈希值以导出所述第一根哈希值。7.根据权利要求1至5中任一项所述的方法,还包括:由所述计算机系统接收基于所述快照将所述数据集合输入具有所述第二数据库架构的数据库的第二请求;响应于所述第二请求,所述计算机系统生成哈希值的第二层系,所述哈希值的第二层系包括用于所述第二数据库架构的第二根哈希值;和由所述计算机系统将所述第一根哈希值与所述第二根哈希值进行比较,以确定所述第一数据库架构是否不同于所述第二数据库架构。8.根据权利要求7所述的方法,还包括:响应于确定所述第一数据库架构不同于所述第二数据库架构,所述计算机系统阻止将所述数据集合输入具有所述第二数据库架构的所述数据库;和由所述计算机系统返回对所述第二请求的应答,所述应答标识所述第一数据库架构与所述第二数据库架构之间的至少一个差异。9.根据权利要求7所述的方法,其中返回对所述第二请求的所述应答包...

【专利技术属性】
技术研发人员:A
申请(专利权)人:易享信息技术有限公司
类型:发明
国别省市:

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

1