用于使用基于硬件的处理来提供分布式树遍历的系统和方法技术方案

技术编号:15919349 阅读:14 留言:0更新日期:2017-08-02 04:33
主机CPU运行数据库管理系统(DBMS)和硬件协同处理器通过在主机CPU请求树型数据结构时分配高速缓存中的可重用存储器以存储树型数据结构的部分来加速对树型数据结构的遍历。硬件协同处理器以对主机CPU透明的方式管理高速缓存的树型数据结构。位于主机CPU处或者分离计算设备处的驱动器可以提供在主机CPU与硬件协同处理器之间的接口,因此减少在主机CPU与硬件协同处理器之间的通信。

【技术实现步骤摘要】
【国外来华专利技术】用于使用基于硬件的处理来提供分布式树遍历的系统和方法
技术介绍
如今的数据库系统必须对大数据库执行许多查询,例如Google必须每天回答约十亿个搜索查询。为了保持响应时间低,必须尽可能快地执行查询。查询是在保持数据库的数据库管理系统与依赖于在这样的数据库中存储的数据的数据库应用之间的接口。因此,加速查询执行增加数据库系统的性能,并且数据库应用将从降低的响应时间受益。专用和可重配置硬件加速器与常规的基于软件的处理器相比具有改进数据库查询、尤其是计算的吞吐量、延时和功率要求的长久历史。然而同时,这些类型的设备的专用性质也一般地意味着它们仅能够执行相对简单的功能,从而要求基于软件的处理完成任务或者至少充当备用处理。该分布式处理可能导致在两个系统之间的同步和/或一致性问题。现场可编程门阵列(FPGA)和其他硬件逻辑设备(例如专用集成电路(ASIC)和复杂可编程门阵列(CPGA))已经用来加速对树数据结构的存储和遍历。当前解决方案采用两种一般方式之一:通过内容可寻址存储器结构的高速缓存和用于树的FPGA加速器,在FPGA加速器中,在专用寄存器传送级(RTL)逻辑中布置树节点。第一类解决方案具有两个缺点。首先,它通常地以显式高速缓存策略为特征,其中主机(例如数据库管理系统(DBMS))必须做出关于在高速缓存中存储/更新项目的决策。第二,最经常使用的数据结构没有提高很高存储器效率。第二类解决方案也具有两个主要缺点。首先,由于在硬件中直接地表示整个树,所以它们消耗大量片上存储器/逻辑。第二,实施的树结构很刚性从而使对树结构的动态更新难以快速地和经济地处置。
技术实现思路
本公开描述用于在硬件中高速缓存和处理树式数据结构的系统和方法。一种示例系统包括数据库管理系统(DBMS)、驱动器和逻辑设备。至少部分地在由一个或者多个处理器可执行的计算机可读介质中体现DBMS和驱动器。DBMS接收用于在一个或者多个树型关系数据库数据结构中存储的信息的查询,并且响应于接收到查询,向驱动器发送查询。驱动器响应于从DBMS接收到查询,向至少部分地在硬件中体现的逻辑设备发送修改的查询。逻辑设备包括高速缓存存储器,高速缓存存储器用于存储与关联于DBMS的一个或者多个树型关系数据库数据结构之一的至少部分关联的树型关系数据库数据结构。逻辑设备响应于接收到修改的查询来至少基于修改的查询来遍历在高速缓存存储器中存储的树型关系数据库数据结构的节点,取回位于每个遍历的节点处的数据的部分;并且向驱动器发送取回的数据的部分。驱动器响应于接收到数据的部分,基于在关联于DBMS的树型关系数据库数据结构处存储的数据证实数据的部分,并且向DBMS发送证实的数据的部分。向逻辑设备重新发送数据的未证实或者不一致的部分。驱动器在查找表(LUT)内存储从硬件逻辑设备接收的数据的部分作为节点并且使用LUT以答复从DBMS接收的查询。在其他示例中,逻辑设备在与逻辑设备关联的高速缓存存储器当前不包括与关联于接收的查询的节点关联的页面时,至少基于分配规则,为与接收的查询、节点数据和路径信息关联的节点分配在高速缓存存储器内的页面。逻辑设备至少基于接收所接收的查询、节点数据和路径信息依次地分配页面。高速缓存的页面包括存储值的值位置和存储一个或者多个指针的指针位置。指针位置与在高速缓存存储器内的值位置在逻辑上分离。提供本
技术实现思路
以用简化的形式介绍以下在具体实施方式中进一步描述的概念的选择。本
技术实现思路
未旨在于标识要求保护的主题的关键或者必要特征,它也未旨在于在确定要求保护的主题的范围时用作辅助。例如术语“技术”可以如以上和贯穿本文而描述的上下文所允许的那样指代一个或者多个系统、一个或者多个方法、计算机可读指令、一个或者多个模块、算法、硬件逻辑和/或一个或者多个操作。附图说明参照附图描述具体实施方式。在各图中,附图标记的最左数字标识该附图标记首次出现的图。不同图中的相同附图标记指示相似或者相同项目。图1是描绘用于实施数据库管理系统的示例环境的图。图2是描绘示例硬件逻辑设备的框图,该硬件逻辑设备执行支持数据库管理系统的读取/写入操作。图3-1和3-2示出如下框图,这些框图描绘由数据库管理系统使用的示例数据库管理软件部件和驱动器软件部件。图4是描绘数据库管理系统的软件和硬件部件的示例操作的流程图。图5-1和5-2示出如下流程图,该流程图描绘在数据库管理系统的部件之间的示例交互操作。图6是示出用于执行对在硬件逻辑设备处高速缓存的树型数据结构的遍历的示例方式的流程图。图7-1和7-2示出在数据库管理系统的软件部件处验证结果的流程图。图8-1和8-2用图形图示在逻辑设备与软件部件之间的交互。图9用图形图示在逻辑设备处出现的存储器分配。图10示出由逻辑设备产生的示例结果。具体实施方式概述这里描述的示例提供如下系统的构造,该系统具有主机中央处理单元(CPU)(例如运行数据库管理系统(DBMS))和硬件协同处理器,该硬件协同处理器可以执行与高速缓存的树型数据结构有关的操作,高速缓存的树型数据结构与由DBMS维持的完整树型数据结构关联。硬件协同处理器可以通过在DBMS提供树型数据结构请求时,分配高速缓存中的可重用存储器以存储树型数据结构的部分,来加速对树型数据结构的遍历。硬件协同处理器可以用对DBMS透明的方式管理高速缓存的树型数据结构。驱动器模块也可以位于与DBMS分离的计算设备中或者可以位于与DBMS相同的计算设备处。驱动器模块可以提供在DBMS与硬件协同处理器之间的接口,因此减少在DBMS与硬件协同处理器之间的通信。驱动器模块可以基于DBMS向驱动器模块发送的与树型数据结构关联的节点级查询提供树级查询。驱动器模块可以向硬件协同处理器发送树级查询。硬件协同处理器可以基于由驱动器模块提供的树级查询向驱动器返回树级结果。驱动器模块可以接收和验证从硬件协同处理器发送的结果。从硬件协同处理器发送的结果可以包括与硬件协同处理器在遍历期间基于由驱动器模块发送的接收的树级查询和树标识信息找到的、高速缓存的树型数据结构的每个节点关联的值。驱动器模块可以向DBMS发送验证的结果。与高速缓存的树型数据结构的节点中的一个或者多个节点关联的不一致结果可以使后续通信出现在硬件协同处理器与驱动器模块之间以便更新高速缓存的树型数据结构。驱动器模块和硬件协同处理器可以是用于在普通CPU上运行的关系数据库的附加件。主机CPU包括数据库管理系统(DBMS),该DBMS实施可以在关系数据库中视为现有技术的功能、诸如但不限于结构化查询语言(SQL)解析、查询规划以及向和从客户端的数据移动。硬件协同处理器可以充当加速器。有用于与DBMS一起使用加速器的多个原因。树遍历加速、索引查找和运行中数据压缩是一些可能性。另一个是安全性。例如Cipherbase是集成硬件逻辑平台作为受信任计算模块的SQL服务器的增强版本。数据可以由云客户加密、上传到服务器中,然后仅在FPGA内被解密和处理以维持对于黑客或者对于云服务的系统管理员的保密性。DBMS具有用于以加密形式存储和管理数据,然后依赖于FPGA对这些加密的值执行操作的能力。作为结果,在数据库中对加密的值的索引树遍历可以依赖于FPGA用于执行在查询中包括的查找关键字与每个树节点的内容之间的比较。示例系统本文档来自技高网
...
用于使用基于硬件的处理来提供分布式树遍历的系统和方法

【技术保护点】
一种系统,包括:数据库管理系统(DBMS),至少部分地在由一个或者多个处理器可执行的计算机可读介质中被体现,其中所述DBMS响应于接收到查询而被配置为发送查询;以及驱动器,至少部分地在由一个或者多个处理器可执行的计算机可读介质中被体现,其中所述驱动器响应于从所述DBMS接收到所述查询而被配置为发送修改的查询,由此创建更有效搜索工具。

【技术特征摘要】
【国外来华专利技术】2014.11.26 US 14/555,2751.一种系统,包括:数据库管理系统(DBMS),至少部分地在由一个或者多个处理器可执行的计算机可读介质中被体现,其中所述DBMS响应于接收到查询而被配置为发送查询;以及驱动器,至少部分地在由一个或者多个处理器可执行的计算机可读介质中被体现,其中所述驱动器响应于从所述DBMS接收到所述查询而被配置为发送修改的查询,由此创建更有效搜索工具。2.根据权利要求1所述的系统,还包括:逻辑设备,至少部分地在硬件中被体现,所述逻辑设备包括用于存储树型关系数据库数据结构的高速缓存存储器,所述树型关系数据库数据结构与关联于所述DBMS的一个或者多个所述树型关系数据库数据结构之一的至少部分关联,所述逻辑设备被配置为响应于接收到所述修改的查询:至少基于所述修改的查询来遍历在所述高速缓存存储器中被存储的所述树型关系数据库数据结构的节点;取回位于每个遍历的节点处的数据的部分;以及向所述驱动器发送取回的所述数据的部分。3.根据权利要求1或者权利要求2所述的系统,其中所述驱动器被配置为减少在所述DBMS与所述逻辑设备之间的通信。4.根据权利要求1或者权利要求2所述的系统,其中所述驱动器被配置为响应于接收到所述数据的部分:至少基于在关联于所述DBMS的所述树型关系数据库数据结构之一处被存储的数据证实所述数据的所述部分;以及向所述DBMS发送证实的所述数据的所述部分。5.根据权利要求1或者权利要求2所述的系统,其中所述查询是至少包括查询值和位于关联节点处的数据的节点级查询,其中所述修改的查询是包括所述查询值和节点标识符的树级请求。6.根据权利要求1或者权利要求2所述的系统,其中所述驱动器被配置为响应于接收到数据的部分:确定所述数据的接收的所述部分是否不一致;以及响应于确定所述数据的接收的所述部分不一致,发送所述查询、节点数据和路径信息,以及还包括:逻辑设备,被配置为响应于接收到所述查询、所述节点数据和所述路径信息来执行以下各项中的至少一项:分配用于与所述节点数据关联的节点的页面;或者更新在与所述节点数据关联的先前高速缓存的页面中被包括的数据值或者指针信息中的至少一个。7.根据权利要求1所述的系统,还包括:逻辑设备,被配置为响应于接收到所述查询、节点数据和路径信息,在与所述逻辑设备关联的高速缓存存储器当前不包括与关联于接收的所述查询的节点关联的页面时,至少基于分配规则为与接收的所述查询、所述节点数据和所述路径信息关联的所述节点依次地分配在所述高速缓存存储器内的页面。8.根据权利要求1所述的系统,其中所述驱动器被配置为:尝试证实从所述逻辑设备发送的数据的部分;以及响应于不能够证实所述数据的部分,发送所述查询、节点数据和路径信息,以及还包括:逻辑设备,响应于在所述逻辑设备先前发送所述数据的部分之后接收到所述查询、所述节点数据和所述路径信息,更新在与接收的所述节点数据或者接收的所述路径信息中的至少一个关联的所述先前高速缓存的页面中被包括的数据值或者指针信息中的至少一个。9.根据权利要求1或者权利要求2所述的系统,其中所述驱动器被配置为:在查找表(LUT)内存储从所述逻辑设备接收的接收的数据的部分作为节点;响应于从所述DBMS接收到所述查询,确定在所述LUT内被存储的信息是否与接收的所述查询关联;以及至少基于在所述LUT内被存储的所述信息与接收的所述查询关联的确定,向...

【专利技术属性】
技术研发人员:K·H·埃古罗Z·伊斯特范A·阿拉苏R·拉马莫西K·施里拉格哈夫
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

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

1