存储器内数据库中的直接表关联制造技术

技术编号:21041081 阅读:34 留言:0更新日期:2019-05-04 09:47
为了解决关系数据库系统中的时延问题,提供了一种包括数据库服务器、处理器和相关联的随机存取存储器的计算机化数据库管理系统。处理器可以在随机存取存储器中配置存储器内数据库以具有表,每个表包含具有相关联的存储器地址的多个单元,在表内的原始单元和目标单元之间建立直接表关联,接收在包括目标单元的第二表上执行包括原始单元的第一表的联接数据库操作的请求,取消引用针对原始单元的直接表关联以获得针对目标单元的存储器地址处所存储的目标单元的值,执行联接数据库操作以生成包括值的联接表,并将联接表存储在随机存取存储器中的新位置处。

【技术实现步骤摘要】
【国外来华专利技术】存储器内数据库中的直接表关联
技术介绍
计算机化数据库被广泛用来存储和组织数据。计算机化数据库的最近应用的一个领域是实时处理在线事务。通常,关系数据库被用来处理此类事务。为了满足对在线事务不断增长的需求,数据库开发人员在开发这样的关系数据库系统时面临着挑战,这样的关系数据库系统实现了低时延并且在高并发性条件下可以很好地运行。
技术实现思路
为了解决上述问题,提供了一种计算机化数据库管理系统,其包括数据库服务器、处理器和相关联的随机存取存储器。处理器可以将随机存取存储器中的存储器内数据库配置为具有表,每个表包含具有相关联的存储器地址的多个单元,在包含原始单元的行和包含在表内的至少一个目标单元的行之间建立直接表关联,接收在包括目标单元的第二表上执行包括原始单元的第一表的联接数据库操作的请求,取消引用针对原始单元的直接表关联以获得在针对目标单元的存储器地址处被存储的目标单元的值,执行联接数据库操作以产生包括该值的联接表,并将联接表存储在随机存取存储器中的新位置处。提供本
技术实现思路
是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步被描述。本
技术实现思路
不旨在标识所要求保护的主题内容的关键特征或必要特征,也不旨在被用来限制所要求保护的主题内容的范围。此外,所要求保护的主题内容不限于解决在本公开的任何部分中提到的任何或所有缺点的实现。附图说明图1是根据本公开的一个实施例的计算机化数据库管理系统的示意图。图2A-2B是图1的系统的直接表关联的示意图,其示出了多对一关系。图3A-3B是图1的系统的直接表关联的示意图,其示出了与中间索引表的多对多关系。图4A-4B是图1的系统的直接表关联的示意图,其示出了主键版本元素。图5是图4的系统中的联接数据库操作的示意图。图6是将主键行插入表中并与图4的系统中的主键版本元素链接的示意图。图7是将外键行插入表中并与图4的系统中的主键版本元素链接的示意图。图8是从图4的系统中的主键版本元素的主键行列表中删除主键行的示意图。图9是从图4的系统中的主键版本元素的主键行列表更新主键行的示意图。图10是根据本公开的一个实施例的用于计算机化数据库管理的方法的流程图。图11示出了根据本公开的实施例的示例计算系统。具体实施方式本申请的专利技术人已经发现,处理对关系数据库的查询消耗了大量处理资源,这在诸如高并发性的一些用例场景中可能导致不可接受的时延。将表数据存储在诸如固态驱动器(SSD)和硬盘驱动器(HDD)中的磁盘上位置中的传统数据库架构只允许访问大量数据块,这可能需要很长时间才能取回。专利技术人已经构想使用存储器内数据库平台,其提供比固态驱动器和硬盘驱动器更快的访问时间。通过将数据库数据存储在随机存取存储器而不是SSD或HDD中,与SSD或HDD存储装置相比,可以用低时延访问所存储的数据的每个字节。在诸如在线事务处理的字段中所使用的关系数据库的日益增长的复杂度、以及在高峰使用时间期间在这些数据库上的查询负载的日益增长的并发性已经给当前数据库架构带来了压力,这降低了时延性能。如图1所示,为了解决上述问题,提供了计算机化数据库管理系统10。计算机化数据库管理系统10包括计算设备12,其被配置为经由诸如因特网的广域网(WAN)16与HTTP服务器14通信。进而,HTTP服务器14被配置为经由局域网(LAN)20与数据库服务器18通信。备选地,应当理解,在一些配置中,HTTP服务器14和数据库服务器18可以经由WAN进行通信。附加地,计算设备12上的应用程序22可以直接连接到数据库程序50。在在线购物事务的示例中,用户可以使用由计算设备12执行的应用程序22来购买特定产品。在示例性购物会话中,应用程序22下载并显示具有搜索界面的网站,该搜索界面使得用户能够进行搜索关于产品的信息,诸如尺寸、价格或可用颜色。搜索查询作为HTTP请求24从应用程序22被发送到HTTP服务器14。进而,为了处理HTTP请求24,HTTP服务器14经由局域网20将数据库查询26发送到后端数据库服务器18。数据库服务器18处理数据库查询26并将查询结果28发送到HTTP服务器14,HTTP服务器14处理查询结果28并向用户返回HTTP响应30,其被显示在计算设备12上。数据库服务器18包括处理器32、非易失性存储器34和随机存取存储器36。在随机存取存储器36中的存储器内数据库38内,处理器32被配置为包括被组织成逻辑行和逻辑列的多个单元的第一表40和被组织成逻辑行和逻辑列的多个单元的第二表42,单元中的每一个具有随机存取存储器36内的相关联的存储器地址。处理器32进一步被配置为在第一表40中的多个单元的原始单元46的存储器地址与第二表42中的多个单元的目标单元48的存储器地址之间建立直接表关联44。应当理解,原始单元46可以是外键,并且目标单元48可以是具有唯一约束的主键(或另一标识符),使得包含主键的列不具有任何重复值。数据库服务器18中的非易失性存储器34被配置为包括执行存储器内数据库管理模块52的数据库程序50。存储器内数据库管理模块52还包括被编程为执行与存储器内数据库管理有关的特定功能的各种功能软件模块,其包括联接模块54、插入模块56、删除模块58和更新模块60。应当理解,可以例如在诸如专用集成电路(ASIC)的专用硬件或固件中实现这些软件模块中的一个或多个软件模块的功能。当由计算设备12执行的应用程序22发送HTTP请求24时,HTTP服务器14根据HTTP服务器14上的应用逻辑来处理该请求。应用逻辑可以生成被发送到数据库服务器18的数据库查询26。返回到在线购物事务的示例,HTTP请求24可以是将产品添加到购物车,并且购物车应用可以由HTTP服务器14执行。购物车应用进而可以与后端数据库服务器18通信以验证期望产品在库存中,减少库存,获得相关定价、折扣和税收信息等。在这些通信期间,在HTTP服务器14和数据库服务器18之间发送各种数据库查询。因此,例如如果HTTP请求24要将具有特定尺寸和颜色的产品添加到购物车,则HTTP服务器14可以发送并且数据库服务器18可以接收数据库查询26,以在第二表42上执行第一表40的联接数据库操作,以验证产品的期望颜色是否可用于期望尺寸。在非易失性存储器34中被存储并由处理器32执行的联接模块54包含用以根据下面所描述的过程实现联接数据库操作的程序逻辑。本公开内容提出了一种用于在关系数据库中高效地执行联接数据库操作的新策略,该关系数据库是通常包括循环扫描程序的当前方法的高效替代方案。在常规系统中,为了在联接操作中从每个表中取回数据,常规系统遍历表的每一行或索引以找到包含期望数据的行。每次执行联接数据库操作时都会执行扫描,而不管在相同数据集上的先前联接如何。由于常规联接操作的效率在很大程度上取决于扫描速度,因此时延是针对联接操作性能的持续关注点。相比之下,根据本文所描述的技术,仅利用第二表42的初始扫描来创建直接表关联44,而不是针对每个联接操作扫描整个表。在初始扫描之后的后续联接数据库操作中,在解除引用操作62中解除引用针对第一表40中的原始单元46的直接表关联44,以获得针对第二表42中的目标单元48的存储器地址处所存储的目标单元48的值。下面详细描述了直接表关联44本文档来自技高网...

【技术保护点】
1.一种计算机化数据库管理系统,包括:数据库服务器,其包括处理器和相关联的随机存取存储器,所述处理器被配置为:将所述随机存取存储器中的存储器内数据库配置为具有:被组织成逻辑行和逻辑列的多个单元的第一表,以及被组织成逻辑行和逻辑列的多个单元的第二表,所述表中的每个表的所述单元中的每个单元在所述随机存取存储器内具有相关联的存储器地址;在所述第一表的所述多个单元的原始单元的存储器地址和所述第二表的所述多个单元的目标单元的存储器地址之间建立直接表关联;接收在包括所述目标单元的所述第二表的一个或多个行或列上执行包括所述原始单元的所述第一表的一个或多个行或列的联接数据库操作的请求;取消引用针对所述原始单元的所述直接表关联,以获得在针对所述目标单元的所述存储器地址处所存储的所述目标单元的值;使用所述值来执行所述联接数据库操作,以从而产生包括所述值的联接表;以及将所述联接表存储在所述随机存取存储器中的新位置处。

【技术特征摘要】
【国外来华专利技术】2016.09.28 US 15/279,0151.一种计算机化数据库管理系统,包括:数据库服务器,其包括处理器和相关联的随机存取存储器,所述处理器被配置为:将所述随机存取存储器中的存储器内数据库配置为具有:被组织成逻辑行和逻辑列的多个单元的第一表,以及被组织成逻辑行和逻辑列的多个单元的第二表,所述表中的每个表的所述单元中的每个单元在所述随机存取存储器内具有相关联的存储器地址;在所述第一表的所述多个单元的原始单元的存储器地址和所述第二表的所述多个单元的目标单元的存储器地址之间建立直接表关联;接收在包括所述目标单元的所述第二表的一个或多个行或列上执行包括所述原始单元的所述第一表的一个或多个行或列的联接数据库操作的请求;取消引用针对所述原始单元的所述直接表关联,以获得在针对所述目标单元的所述存储器地址处所存储的所述目标单元的值;使用所述值来执行所述联接数据库操作,以从而产生包括所述值的联接表;以及将所述联接表存储在所述随机存取存储器中的新位置处。2.根据权利要求1所述的计算机化数据库管理系统,其中所述联接数据库操作是在所述第一表和所述第二表之间的多对一关系上的联接数据库操作,所述直接表关联包括物理存储器地址指针,所述物理存储器地址指针被包括在包含所述原始单元的行中,并且指向所述目标单元的所述存储器地址。3.根据权利要求1所述的计算机化数据库管理系统,其中所述联接数据库操作是在所述第一表和所述第二表之间的多对多关系上的联接数据库操作,所述直接表关联包括中间表、第一物理存储器地址指针和第二物理存储器地址指针,其中:所述中间表包括被组织成逻辑行和逻辑列的多个单元;所述第一物理存储器地址指针被包括在所述中间表的所述多个单元中的至少一个单元内,并且指向与所述第一表的所述多个单元的目标单元相对应的随机存取存储器内的存储器地址;并且所述第二物理存储器地址指针被包括在所述中间表的所述多个单元中的至少一个单元内,并且指向与所述第二表的所述多个单元的至少一个目标单元相对应的随机存取存储器内的存储器地址。4.根据权利要求1所述的计算机化数据库管理系统,其中包含所述原始单元的所述行或所述列包含外键,并且包含所述目标单元的所述行或所述列包含主键;并且所述处理器还被配置为定义主键版本元素,所述主键版本元素被配置为包括:物理存储器地址指针,所述物理存储器地址指针被指向主键行版本列表的开头,其中包含所述原始单元的所述多个行中的行被配置为包括被指向所述主键版本元素的物理存储器地址指针,并且包含所述目标单元的所述多个行中的行被配置为包括被指向所述主键版本元素的物理存储器地址指针;以及引用计数,所述引用计数用以确定在时间点多少主行正在引用所述主键版本元素。5.根据权利要求4所述的计算机化数据库管理系统,其中所述处理器还被配置为:在包含所述第一表的所述外键的所述行上执行所述联接数据库操作,其中所述外键引用指向所述主键版本元素的所述物理存储器地址指针,以获得在所述第二表中所存储的所述主键值。6.根据权利要求4所述的计算机化数据库管理系统,其中所述处理器还被配置为:接收执行插入数据库操作以将一个或多个行的主键插入到所述第二表中的请求;扫描所述第二表以定位针对所述插入数据库操作的适当位置;分配随机存取存储器以用于新的主键行的添加;分配主键版本元素;执行所述插入数据库操作;更新被指向所述主键行版本列表的所述主键版本元素中的物理存储器地址指针;更新被指向主键版本元素的所述主键行版本中的物理存储器地址指针;以及将物理存储器地址指针包括在所述主键行版本中,所述物理存储器地址指针被指向所述主键行版本列表中的后续行。7.根据权利要求4所述的计算机化数据库管理系统,其中所述处理器还被配置为:接收执行数据库操作以将一个或多个行的外键插入到所述第一表中的请求;扫描所述第一表以定位针对所述插入数据库操作的适当位置;分配存储器以用于支持物理存储器地址指针实现;执行所述插入数据库操作;在所述外键行中创建将被指向所述主键版本元素的物理存储器地址指针;通过扫描用于对应的所述主键行版本的所述第二表来验证所述外键行的插入;以及从对应的所述主键行版本引用物理存储器地址指针来初始化所述外键行,以指向所述主键版本元素。8.根据权利要求4所述的计算机化数据库管理系统,其中所述处理器还被配置为:接收执行数据库...

【专利技术属性】
技术研发人员:N·武基科A·武基科
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

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

1