一种服务器架构及其数据库查询方法和存储介质与流程

文档序号:22124837发布日期:2020-09-04 17:05阅读:367来源:国知局
一种服务器架构及其数据库查询方法和存储介质与流程

本申请涉及服务器领域,特别涉及一种服务器架构及其数据库查询方法和存储介质。



背景技术:

现有的解决方案处理器端和加速器之间通过传统的pcie协议进行数据通信,由于pcie协议的限制,这种方式数据传输的延时很大,严重制约性能。

主要是因为这种传统的通信方式,需要将加速器端地址空间映射到处理器端的内存地址空间中,虚实地址转换,同时还需要经过复杂的驱动软件,延迟大;其次,现有架构是以处理为计算中心,处理器通过pcie控制器访问加速器的内存空间,处理器负载高,存储效率低;此外,现有的数据库查询加速逻辑在算法、工作频率、并行性等方面性能不高,影响了系统的整体加速性能。



技术实现要素:

本申请的目的是提供一种服务器架构及其数据库查询方法和存储介质,能够提高服务器对于数据库查询请求的处理效率。

为解决上述技术问题,本申请提供一种服务器架构,具体技术方案如下:

处理器;

至少一个与所述处理器通过高速串行接口相连的数据库加速芯片;

所述数据库加速芯片与所述处理器处于异构工作模式,所述数据库加速芯片用于承载数据库检索任务。

可选的,所述处理器通过异构缓存一致性接口与所述数据加速芯片相连,且所述数据加速芯片与所述处理器共享主机侧内存。

可选的,当所述数据库加速芯片大于一个时,各所述数据库加速芯片形成芯片池。

可选的,所述芯片池内各所述数据库加速芯片之间通过光纤接口互连。

本申请还提供一种数据库的查询方法,基于上文所述的服务器架构,具体技术方案如下:

接收数据库查询请求;

将所述数据库查询请求发送至所述数据库加速芯片,以使所述数据库加速芯片处理所述数据库查询请求。

可选的,将所述数据库查询请求发送至所述数据库加速芯片包括:

解析所述数据库查询请求,利用回调函数构造控制包报文;

将所述控制包报文发送至所述数据库加速芯片。

可选的,将所述数据库查询请求发送至所述数据库加速芯片之后,还包括:

所述数据库加速芯片利用协议转换模块将所述数据库查询请求由异构缓存一致性协议信号转换为内部并行数据总线信号。

可选的,所述数据库加速芯片处理所述数据库查询请求包括:

所述数据库加速芯片接收所述控制包报文;

根据所述控制包报文,利用异构缓存一致性接口从主机侧内存读取所述数据库查询请求对应的目标数据库数据,并在构建所述目标数据库数据对应的缓冲区数据包存入缓冲区;

在控制寄存器的输出状态满足条件时,从所述缓冲区中返回所述目标数据库数据,清除并释放控制包报文内存和缓冲区数据包内存。

可选的,从所述缓冲区中返回所述目标数据库数据之前,还包括:

判断所述目标数据库数据是否为所述数据库查询请求对应的查询条件;

若是,对所述缓冲区数据包进行加速操作,得到所述目标数据库数据。

可选的,对所述缓冲区数据包进行加速操作,得到所述目标数据库数据包括:

对所述缓冲区数据包进行加速逻辑运算,得到所述目标数据库数据。

可选的,所述加速逻辑运算包括扫描逻辑、过滤逻辑、与或逻辑、计算逻辑和聚合逻辑,则对所述缓冲区数据包进行加速逻辑运算包括:

利用所述扫描逻辑对所述缓冲区数据包进行预处理,并配置对应的状态控制寄存器;

利用所述过滤逻辑筛选所述缓冲区数据包中行数据;

利用所述与或逻辑对所述缓冲区数据包中的列数据进行与或运算;

利用所述计算逻辑对所述缓冲区数据包进行数据间的算数逻辑运算;

利用所述聚合逻辑对经过所述扫描逻辑、所述过滤逻辑、所述与或逻辑和所述计算逻辑的数据进行聚合运算或累加运算。

可选的,还包括:

在所述数据库加速芯片返回所述数据库查询请求对应的目标数据库数据后,利用中断通知所述处理器所述数据库查询请求处理完成。

可选的,还包括:

在所述数据库加速芯片返回所述数据库查询请求对应的目标数据库数据时,将完成标志写入可读寄存器,以便处理器轮循所述可读寄存器时获取所述完成标志并确认所述数据库查询请求处理完成。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。

本申请提供一种服务器架构,包括:处理器;至少一个与所述处理器通过高速串行接口相连的数据库加速芯片;所述数据库加速芯片与所述处理器处于异构工作模式,所述数据库加速芯片用于承载数据库检索任务。

本申请将当前的硬件平台以处理器为单核心转化为以处理器和数据库加速芯片作为双核心,在接收到数据库检索任务时,由处理器将该检索任务转交至数据库加速芯片处理,不影响服务器其他功能使用。由于数据库加速芯片专门用于执行数据库检索任务,减少了从处理器中转数据包的过程,减少了数据通信延迟,从而提高了数据库检测效率。本申请还提供一种数据库的查询方法和计算机可读存储介质,具有上述有益效果,此处不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种服务器架构示意图;

图2为本申请所提供的一种数据库的查询方法的流程图;

图3为本申请所提供的数据库加速芯片的加速逻辑实现框架图;

图4为本申请所提供的数据库加速芯片内部逻辑结构图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种服务器架构示意图,具体技术方案如下:

处理器;

至少一个与处理器通过高速串行接口相连的数据库加速芯片;

数据库加速芯片与处理器处于异构工作模式,数据库加速芯片用于承载数据库检索任务。

处理器通过异构缓存一致性接口与数据加速芯片相连,且数据加速芯片与处理器共享主机侧内存。

在此对于采用何种高速串行接口不做具体限定,例如可以采用opencapi接口(opencapi单通道25gb/s),较pcie通信协议的传输性能大大提高。此外,数据库加速芯片可以采用硬件描述语言实现内逻辑,例如寄存器级rtl语言,充分利用硬件底层语言高效率的优势,降低硬件资源占用情况,提升数据库查询能力和数据吞吐量。

此外,处理器和数据库加速芯片之间通过异构缓存一致性接口相连,可以采用异构缓存一致性协议通信,且数据加速芯片与处理器一侧的内存直连。异构缓存一致性协议具有内存零拷贝、简化软件栈、直接从处理器端内存读取等低传输延迟的特性。在加速芯片与主机处理器之间建立一条快速通道,允许数据库加速芯片可以直接访问主机处理器侧的内存,将传统以处理器为中心的体系结构转变成以加速芯片为核心的体系结构。

本申请实施例中,数据库加速芯片专门用于承载数据库检索任务。数据库检索任务包括但不限于数据库内容的增删改查等等。

在上述实施例的基础上,作为更优选的实施例,数据库加速芯片可以大于一个,即处理器同时与多个数据库芯片相连,各数据库加速芯片形成芯片池。芯片池内各数据库加速芯片之间可以通过光纤接口互连。由于各数据库加速芯片已经形成芯片池,池内各芯片之间并不需要采用异构缓存一致性接口,采用光纤接口或者其他网络接口均可实现通信。当采用包含多个数据库加速芯片的架构时,处理器在接收到数据库相关查询指令时,可以直接利用多个数据库加速芯片同时处理,进一步提高对于数据库相关任务的处理效率。

参见图2,图2为本申请所提供的一种数据库的查询方法的流程图,本申请还提供一种数据库的查询方法,基于上文所述的服务器架构,本实施例所提供的数据库的查询方法可以上一实施例相互参考对照,该查询方法包括:

s101:接收数据库查询请求;

s102:将数据库查询请求发送至数据库加速芯片,以使数据库加速芯片处理数据库查询请求。

本实施例中的数据库查询请求与上一实施例中的数据库检索任务相对应,当接收到数据库查询请求时,将数据库查询请求发送到数据库加速芯片,并不由处理器处理。换句话说,采用本申请提供的服务器架构时,当接收到数据库查询请求时,并不直接由处理器处理,而是交由与数据库相连的数据库加速芯片处理。由于数据库查询请求对应的数据库检索任务较为繁重,将大量占用处理器,使得服务器一旦处理数据库检索任务,将直接导致处理其他任务能力下降,因此本实施例将数据库查询请求转至数据库加速芯片处理,减少了数据处理时间和数据传输延迟,同时卸载处理器的控制负载,提高系统资源利用率。

此外,本申请实施例采用与传统的异构加速架构不同的体系结构,处理器与加速芯片间支持异构缓存一致性,即数据库加速芯片可以访问处理器侧的内存并保证与处理器内部缓存cache的一致性。允许加速芯片直接访问系统内存,省去了以往先通过pcie进行地址映射转换的过程,不需处理器中转,从而减少了数据通信延迟。

在上一实施例的基础上,步骤s102中将数据库查询请求发送至数据库加速芯片可以采用如下执行方式:

s1021:解析数据库查询请求,利用回调函数构造控制包报文;

s1022:将控制包报文发送至数据库加速芯片。

本实施例中,处理器并不直接将数据库查询请求直接发送至数据库加速芯片,而是先解析数据库查询求,利用回调函数构造控制包报文,将构造的控制包报文发送至数据库加速芯片。这是数据库加速芯片可以视为数据库检索专用芯片,其检索能力强。但是外界的数据库查询请求可能来源于不同设备,或者为不同形式、不同格式的数据库查询请求,而现有的处理器已经具备对于数据库查询请求的解析能力,本实施例旨在利用处理器实现对数据库查询请求的解析,避免给数据库加速芯片增加额外数据处理负担。而控制包报文则是数据库加速芯片可以直接处理的数据格式。需要注意的是,在解析数据库查询请求,并得到控制包报文这一过程中,仅仅意味着数据库查询请求的格式转换为数据库加速芯片与处理器约定的数据格式,而数据库查询请求中包含的信息并未发生变化。

特别的,在将数据库查询请求发送至所述数据库加速芯片之后,数据库加速芯片可以利用协议转换模块将数据库查询请求由异构缓存一致性协议信号转换为内部并行数据总线信号。协议转换模块设于数据库加速芯片中,由于处理器和数据库加速芯片采用异构缓存一致性接口相连,因此,数据库加速芯片在接收到任何来自于处理器的数据后,需要先进行信号转换,以转换为数据库加速芯片所对应信号类型。

下文对于数据库加速芯片处理数据库查询请求的过程作描述:

s201:数据库加速芯片接收控制包报文;

s202:根据控制包报文,利用异构缓存一致性接口从主机侧内存读取数据库查询请求对应的目标数据库数据,并在构建目标数据库数据对应的缓冲区数据包存入缓冲区;

s203:在控制寄存器的输出状态满足条件时,从缓冲区中返回目标数据库数据,清除并释放控制包报文内存和缓冲区数据包内存。

数据库加速芯片在得到由处理器解析的控制包报文后,根据该控制包报文从主机侧内存读取数据对应的目标数据库数据。由于数据库依旧位于主机侧,而数据库加速芯片与处理器共享主机侧内存,因此其可以直接调用内存从数据库中查找数据库查询请求对应的目标数据库数据。在得到目标数据库数据后,将目标数据库数据以缓冲区数据包的形式存入自身的缓冲区。

需要注意的是,此时并不直接返回目标数据库数据,而是在控制寄存器满足输出状态时,再将目标数据库数据返回给数据库查询请求的请求方。因此,数据库加速芯片需要不断控制寄存器,并在控制器寄存器条件允许时及时返回数据。数据返回后,还需要清除控制包报文内存和缓冲区数据包内存。具体的,数据库加速芯片可以通过控制总线例如axi-4lite接口读取控制寄存器,并根据控制寄存器的输出状态输出数据库查询请求对应的查询结果信息。

上述处理数据库查询请求,也即控制包报文的过程,实现了利用数据库加速芯片替代处理器完成利用内存查询数据库的操作,并利用数据库加速芯片替代处理器完成对目标数据库数据的解包、合并等操作,进一卸载处理器的控制负载,提高系统资源利用率。

基于上述实施例,作为优选的实施例,s203中从缓冲区中返回目标数据库数据之前,还包括:

判断目标数据库数据是否为数据库查询请求对应的查询条件;

若是,对缓冲区数据包进行加速操作,得到目标数据库数据。

本实施例旨在判断已经存入缓冲区的目标数据库是否满足数据库查询请求对应的查询条件,若确认满足条件,在返回至请求方之前,对缓冲区数据包进行加速,以提高数据库查询请求的响应速度。查询条件的判断只要指判断数据行是否满足数据库查询条件,例如数据内容、数据格式等等。当然,若查询条件不满足,可以重新进行数据库检索。

若是由处理器返回数据库查询请求对应的目标数据库数据,其需要先检索,再将检索到的目标数据库数据的数据包存入本地,之后对目标数据库数据进行组包再返回请求方。而本实施例中,目标数据库数据以缓冲区数据包的形式存入数据库加速芯片的用户态缓冲区,换句话说,数据库加速芯片处理数据库查询请求均在用户态完成,避免用户态和内核态的转变导致数据的多次无效拷贝,同时简化软件栈层级,直接驱动设备运行,使得采用数据库加速芯片对于数据库查询请求的响应速度大大提高,检索效率高。

对缓冲区数据包进行加速逻辑运算,得到目标数据库数据。该加速逻辑运算可以包括扫描逻辑、过滤逻辑、与或逻辑、计算逻辑和聚合逻辑,则对缓冲区数据包进行加速逻辑运算包括:

利用扫描逻辑对缓冲区数据包进行预处理,并配置对应的状态控制寄存器;利用过滤逻辑筛选缓冲区数据包中行数据;利用与或逻辑对缓冲区数据包中的列数据进行与或运算;利用计算逻辑对缓冲区数据包进行数据间的算数逻辑运算;利用聚合逻辑对经过扫描逻辑、过滤逻辑、与或逻辑和计算逻辑的数据进行聚合运算或累加运算。

过滤逻辑包括:大于、小于、大于等于、小于等于、等于、不等于、between范围运算,实现时支持四组过滤执行单元并行执行。

与或逻辑支持and和or,考虑到系统资源利用效率和性能,实现过程中支持四输入逻辑运算操作,支持括号,如果语句大于四输入,会进行拆分,使执行单元功能具有高可用性。

计算逻辑包括:通用alu算子,如*、+、-等,难点是需支持多种数据类型,q6(单表测试)需支持乘运算。

聚合逻辑包括:累加、乘累加、求平方、取最大值、取最小值、绝对值、平方差等聚合类型运算,q6需支持累加操作。

参见图3,图3为本申请所提供的数据库加速芯片的加速逻辑实现框架图,从图3可以看出,从数据库加速芯片中的缓冲区取出缓冲区数据包后,先进行查询条件判断,在满足查询请求且寄存器条件满足时,对缓冲区数据包进行加速逻辑处理。在图3中,包含不同类型的axi总线,其中,axi4主要面向高性能地址映射通信的需求,而axi4-lite是一个简单地吞吐量地址映射性通信总线,但二者均为axi总线,只是在主设备存在区别时可以采用相适应的总线类型。

值得一提的是,在执行加速逻辑运算时,均可以借助于加速逻辑对应的回调函数实现。

容易理解的是,本领域技术人员需要事先确定控制包报文格式,并确定要操作的数据表和关系式,以便加速逻辑根据关系式进行加速逻辑运算。

基于上述实施例,参见图4,图4为本申请所提供的数据库加速芯片内部逻辑结构图,图4中,每个数据库加速芯片可以包括多个加速逻辑模块,每个加速逻辑模块包含完整的扫描逻辑、过滤逻辑、与或逻辑和计算逻辑,在数据库加速芯片时,可以同时调用多个加速逻辑模块处理缓冲区数据包,提高对于数据库查询请求的响应速度。

基于上述实施例,作为优选的实施例,在数据库加速芯片返回目标数据库之后,需要告知处理器该数据库查询请求已经处理完毕,在此对于如何告知处理器不做具体限定,下文提供两种方式:

1、利用中断通知处理器数据库查询请求处理完成。

2、在数据库加速芯片返回数据库查询请求对应的目标数据库数据时,将完成标志写入可读寄存器,以便处理器轮循可读寄存器时获取完成标志并确认数据库查询请求处理完成。

在数据库加速芯片进行运算时,处理器可以去处理其他事务,加速逻辑在运算完成后通过中断的方式告知处理器,也可以把完成标志写入可读寄存器,处理器采用轮询的方式,获取完成的标志,即可确认数据库查询请求已经被数据库加速芯片处理完毕。

本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1