使用概率数据结构减少请求制造技术

技术编号:32752628 阅读:36 留言:0更新日期:2022-03-20 09:04
公开了涉及提供和使用概率数据结构以至少减少数据库节点之间的请求的技术。在各种实施方案中,第一数据库节点来处理涉及将一组数据库记录写入至第一数据库节点的存储器中缓存的数据库事务。作为处理数据库事务的一部分,第一数据库节点可以在一组概率数据结构中插入与该组数据库记录对应的一组数据库键。第一数据库节点可以向第二数据库节点发送该组概率数据结构以使得第二数据库节点能够确定是否从第一数据库节点请求与数据库键相关联的数据库记录。的数据库记录。的数据库记录。

【技术实现步骤摘要】
【国外来华专利技术】使用概率数据结构减少请求

技术介绍


[0001]公开文本一般涉及数据库系统,并且更具体地,涉及使用概率数据结构减少数据库节点之间的调用/请求。
[0002]相关技术的描述
[0003]现代数据库系统常规地实现如下管理系统,该管理系统使用户能够以可以有效访问和操纵的有组织的方式存储信息的集合。在一些情况下,这些管理系统维护具有多个级别的日志结构合并树(LSM树),每个级别将信息存储为键值对。LSM树通常包括两个高级组件:存储器中缓存和持久存储。在操作中,在稍后将它们刷新到持久存储之前,数据库系统最初将数据库记录写入存储器中缓存中。
附图说明
[0004]图1是示出根据一些实施方案的具有包括概率数据结构的数据库节点的系统的示例元素的框图。
[0005]图2A是示出根据一些实施方案的概率数据结构的示例元素的框图。
[0006]图2B是示出根据一些实施方案的概率数据结构的缓存行结构的示例元素的框图。
[0007]图3是示出根据一些实施方案的能够在缓存行结构中插入数据库键的事务引擎的示例元素的框图。
[0008]图4是示出根据一些实施方案的具有概率数据结构的数据库节点之间的交互的示例元素的框图。
[0009]图5是示出根据一些实施方案的处理长时间运行事务的事务引擎的示例元素的框图。
[0010]图6是示出根据一些实施方案的涉及生成和提供一组概率数据结构的示例方法的流程图。
[0011]图7是示出根据一些实施方案的涉及使用一组概率数据结构的示例方法的流程图。<br/>[0012]图8是示出根据一些实施方案的涉及处理长时间运行事务的示例方法的流程图。
[0013]图9是示出根据一些实施方案的示例计算机系统的框图。
[0014]公开文本包括对“一个实施方案”或“实施方案”的引用。短语“在一个实施方案中”或“在实施方案中”的出现不一定指代相同的实施方案。特定特征、结构或特性可以以与公开文本一致的任何合适方式组合。
[0015]在公开文本中,不同的实体(其可以不同地称为“单元”、“电路”、其它组件等)可以被描述或要求为“配置”以执行一个或多个任务或操作。该公式——[实体]被配置为[执行一个或多个任务]——在本文中用于指代结构(即,物理的东西,诸如电子电路)。更具体地,该公式用于指示该结构被布置为在操作期间执行一个或多个任务。可以说一个结构被“配
置为”执行一些任务,即使该结构当前没有被操作。“被配置为通过网络进行通信的网络接口”旨在涵盖例如具有在操作期间执行该功能的电路的集成电路,即使所讨论的集成电路当前没有被使用(例如,电源没有连接到它)。因此,被描述或记载为“配置为”执行一些任务的实体指代物理的东西,诸如设备、电路、存储可执行以实现任务的程序指令的存储器等。该短语在本文中不用于指代无形的东西.因此,“配置为”构造在本文中不用于指代诸如应用程序编程接口(API)的软件实体。
[0016]术语“配置为”并非旨在表示“可配置为”。例如,未编程的FPGA不会被视为“配置为”执行一些特定功能,尽管它可能“可配置为”执行该功能,并且可能“配置为”在编程后执行该功能。
[0017]如本文所用,术语“第一”、“第二”等用作它们之前的名词的标签,并且不暗示任何类型的排序(例如,空间、时间、逻辑等),除非特别说明。例如,在具有八个处理核心的处理器中,术语“第一”和“第二”处理核心可用于指代八个处理核心中的任何两个。换句话说,例如,第一和第二处理核心不限于处理核心0和1。
[0018]如本文所用,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除附加因素可能影响确定的可能性。也就是说,确定可以仅基于指定的因素或基于指定的因素以及其他未指定的因素。考虑短语“基于B确定A”。该短语指定B是用于确定A或影响A确定的因素。该短语不排除A的确定也可能基于一些其它因素,诸如C。该短语还旨在涵盖仅基于B确定A的实施方案。如本文所用,短语“基于”因此与短语“至少部分地基于”同义。
具体实施方式
[0019]在一些实现方式中,维护LSM树的数据库系统在将这些记录写入与LSM树相关联的持久存储之前将记录写入LSM树的存储器中缓存。在一些方法中,数据库系统包括负责将记录写入LSM树的单个数据库节点。在其它方法中,数据库系统包括多个数据库节点,该多个数据库节点将记录写入LSM树,同时还从LSM树中读取记录。这些数据库节点可能共享公共的持久存储,但每个都具有自己的存储器中缓存。然而,在该场景中,由数据库节点写入其存储器中缓存的记录对其它数据库节点不可见,直到这些记录被刷新到公共持久存储。本专利技术人已经认识到该布置导致某些低效率。考虑正在处理涉及访问特定记录的最新版本的事务的第一数据库节点。该记录可以存储在第二数据库节点的存储器中缓存中,并且因此对第一数据库节点不可见。结果,第一数据库节点必须向第二数据库节点发出请求,以便确定第二数据库节点是否具有该记录的最新版本。
[0020]在许多情况下,数据库节点的存储器中缓存的大小可能非常小(例如,2GB或10GB),并且因此在任何时间点只能存储有限数量的记录。结果,即使数据库节点生成了许多记录请求,这些请求中的许多(如果不是大多数)都不会导致记录被返回。因此,尽管请求的记录通常不存在于第二数据库节点的存储器中缓存中,但第一数据库节点仍然需要向第二数据库节点发出请求以查看该记录是否存在。本专利技术人已经认识到这减慢了数据库系统的整体操作,因为数据库节点花费大量时间向彼此发出记录请求,即使这些请求通常不会导致记录被返回。公开文本解决了由于在数据库节点之间针对通常不存在于其它数据库节点的记录发送太多请求而消耗太多资源的该技术问题。
[0021]公开文本描述了用于实现使数据库节点能够确定是否从另一个数据库节点请求
数据库记录的概率数据结构的技术。如本文所用,术语“概率数据结构”是指存储指示特定项目不存在或可能存在于系统内的特定位置处的信息的数据结构。例如,概率数据结构可以存储指示特定数据库键的数据库记录不存在或可能存在于某个数据库节点的存储器中缓存中的信息。布隆过滤器、布谷鸟过滤器、与超日志相关的结构和冲浪尝试都是概率数据结构的示例。
[0022]在下面描述的各种实施方案中,系统包括多个数据库节点,该数据库节点能够在将那些数据库记录刷新到由那些数据库节点共享的持久存储之前将数据库记录写入它们自己的本地存储器中缓存。当将数据库记录写入存储器中缓存时,在各种实施方案中,数据库节点将数据库记录的数据库键插入概率数据结构中。如本文所用,短语“将数据库键插入概率数据结构中”广义上是指基于数据库键对概率数据结构中的信息进行修改。数据库键本身不必存储在概率数据结构中。例如,可以将一组散列函数应用于数据库键以导出一组散列值。这些散列值可用于设定概率数据结构中的位。
[0023]为了将数据库键插入概率数据结构中,在各种实施方案中,数据库节点应用一组散列函数来导出一组对应的散列值。散列值之一可用于选择概率数据结构本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:通过第一数据库节点处理涉及将一组数据库记录写入至所述第一数据库节点的存储器中缓存的数据库事务,其中所述处理包括将与所述一组数据库记录对应的一组数据库键插入一组概率数据结构;和通过所述第一数据库节点将所述一组概率数据结构发送至第二数据库节点,以使得所述第二数据库节点能够确定是否从所述第一数据库节点请求与数据库键相关联的数据库记录。2.根据权利要求1所述的方法,其中将所述一组数据库键中给定的一个数据库键插入在所述一组概率数据结构中给定的一个概率数据结构中包括:通过所述第一数据库节点将散列函数应用于所述给定的数据库键,以导出与在所述给定的概率数据结构中包括的多个缓存行中特定的一个缓存行对应的散列值;和通过所述第一数据库节点将所述给定的数据库键插入在所述给定的概率数据结构的所述特定的缓存行中。3.根据权利要求2所述的方法,其中将所述给定的数据库键插入在所述给定的概率数据结构的所述特定的缓存行中包括:通过所述第一数据库节点将一组散列函数应用于所述给定的数据库键,以导出一组散列值;和通过所述第一数据库节点基于所述一组散列值设定所述特定的缓存行的一组位。4.根据权利要求1至3中任一项所述的方法,其中插入所述一组数据库键包括:通过所述第一数据库节点将所述一组数据库键中的数据库键插入在所述一组概率数据结构的第一概率数据结构中;和响应于所述第一概率数据结构包括定义阈值数量的数据库键,所述第一数据库节点将所述一组数据库键中的其余数据库键插入在所述一组概率数据结构中的不同的第二概率数据结构中。5.根据权利要求1至4中任一项所述的方法,其中所述一组概率数据结构中给定的一个概率数据结构与元数据相关联,所述元数据指示已经将数据库键插入在所述给定的概率数据结构中的活动事务的数量,其中所述方法还包括:通过所述第一数据库节点基于所述活动事务的数量是否指示针对所述给定的概率数据结构存在活动事务而确定是否可以清除所述给定的概率数据结构。6.根据权利要求5所述的方法,其中所述一组概率数据结构中的至少两个概率数据结构各自包括作为处理所述数据库事务的一部分而插入的相应数据库键,并且其中所述方法还包括:响应于提交与所述存储器中缓存相关的数据库事务,所述第一数据库节点针对所述至少两个概率数据结构中的每个概率数据结构递减与所述这个概率数据结构相关联的活动事务的数量。7.根据权利要求1至6中任一项所述的方法,还包括:在向所述第二数据库节点发送所述一组概率数据结构之后,所述第一数据库节点将一个或多个附加概率数据结构添加至所述一组概率数据结构;通过所述第一数据库节点从所述第二数据库节点接收对与特定数据库键相关联的数
据库记录的最新版本的数据库记录请求;和通过所述第一数据库节点响应于所述数据库记录请求包括所述一个或多个附加概率数据结构。8.根据权利要求7所述的方法,其中所...

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

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

1