CN115827682A - 一种数据库查询加速引擎装置、方法及存储介质 - Google Patents
一种数据库查询加速引擎装置、方法及存储介质 Download PDFInfo
- Publication number
- CN115827682A CN115827682A CN202310094045.9A CN202310094045A CN115827682A CN 115827682 A CN115827682 A CN 115827682A CN 202310094045 A CN202310094045 A CN 202310094045A CN 115827682 A CN115827682 A CN 115827682A
- Authority
- CN
- China
- Prior art keywords
- data
- data processing
- channel adapter
- processed
- engine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 289
- 238000004891 communication Methods 0.000 claims abstract description 8
- 230000015654 memory Effects 0.000 claims description 73
- 238000012216 screening Methods 0.000 claims description 17
- 230000002776 aggregation Effects 0.000 claims description 12
- 238000004220 aggregation Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 16
- 230000004931 aggregating effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库查询加速引擎装置、方法及存储介质,涉及数据库技术领域,包括:引擎通道适配器和与主机服务器建立通信连接的主机通道适配器;与引擎通道适配器和主机通道适配器连接的Infiniband接口,用于获取主机服务器在对数据查询请求响应时产生的数据处理指令和从关系型数据库中查找到的待处理数据并传输至引擎通道适配器;与引擎通道适配器建立通信连接的FPGA模块,用于获取数据处理指令和待处理数据并基于数据处理指令对待处理数据进行数据处理操作,将数据处理结果传输至引擎通道适配器以便将数据处理结果发送至主机服务器。本申请通过数据库查询加速引擎装置可以实现数据库的快速查询操作,以减少时间损耗。
Description
技术领域
本发明涉及数据库技术领域,特别涉及一种数据库查询加速引擎装置、方法及存储介质。
背景技术
数据库是一种数据记录存储系统,它支持数据的存储、搜索和解析。它被广泛应用于商业、工业、智能家居和医疗保健等领域。用户可以通过查询数据库来发现隐藏在数据集中的信息。通过对数据库的查询会触发各种数据操作,比如排序、筛选、连接和聚合等操作。随着传感器网络技术的发展和信息化社会的不断推进,数据库中存储的信息种类和数量日渐增加,这为用户端数据库快速查询响应带来了巨大挑战。
现有的大多数研究对查询操作进行了分解,只在FPGA(Field Programmable GateArray,即现场可编程逻辑门阵列)上实现了排序、选择等关键操作。但是,中间处理结果需要在主机和FPGA加速板卡之间进行通信,这将导致过多的数据传输开销,在FPGA上处理数据的速度优势被大量的数据传输过程严重影响,导致数据库查询操作的时间开销过大。此外,各种类型的数据库查询也需要加速引擎具备不同的数据处理操作和分析能力。
发明内容
有鉴于此,本发明的目的在于提供一种数据库查询加速引擎装置、方法及存储介质,能够实现数据库的快速查询操作,以减少时间损耗。其具体方案如下:
第一方面,本申请公开了一种数据库查询加速引擎装置,包括:
引擎通道适配器以及与主机服务器建立通信连接的主机通道适配器;
一端与所述引擎通道适配器连接、另一端与所述主机通道适配器连接的Infiniband接口,用于通过所述主机通道适配器获取所述主机服务器在对数据查询请求进行响应时产生的数据处理指令,以及通过所述主机通道适配器获取所述主机服务器从关系型数据库中查找到的与所述数据处理指令对应的待处理数据,并将所述数据处理指令和所述待处理数据传输至所述引擎通道适配器;
与所述引擎通道适配器建立通信连接的FPGA模块,用于获取所述引擎通道适配器发送的所述数据处理指令和所述待处理数据,以及基于所述数据处理指令对所述待处理数据进行相应的数据处理操作,并将数据处理结果传输至所述引擎通道适配器,以便所述引擎通道适配器依次通过所述Infiniband接口以及所述主机通道适配器将所述数据处理结果发送至所述主机服务器。
可选的,所述FPGA模块包括缓冲器模块,所述缓冲器模块:
控制缓冲器,用于存储通过所述引擎通道适配器发送的所述主机服务器在对数据查询请求进行响应时产生的数据处理指令;
数据缓冲器,用于存储通过所述引擎通道适配器发送的所述主机服务器从关系型数据库中查找到的与所述数据处理指令对应的待处理数据。
可选的,所述FPGA模块包括若干数据处理子模块;
其中,任一所述数据处理子模块,用于根据被分配的所述数据处理指令对相应的所述待处理数据进行相应的数据处理操作以得到相应的数据处理结果。
可选的,所述FPGA模块,还包括:
设置于每一所述数据处理子模块与所述缓冲器模块之间的AXI4总线,用于将从所述控制缓冲器中选择的所述数据处理指令以及所述数据缓冲器中保存的相应的所述待处理数据发送至相应的所述数据处理子模块,并将所述数据处理子模块得到的所述数据处理结果返回至所述缓冲器模块进行保存。
可选的,所述缓冲器模块,还包括用于存储每一所述数据处理子模块通过所述AXI4总线发送的所述数据处理结果的结果缓冲器。
可选的,任一所述数据处理子模块,还包括:
控制存储器,用于存储所述AXI4总线发送的所述数据处理指令;
数据存储器,用于存储所述AXI4总线发送的所述待处理数据;
结果存储器,用于存储基于所述数据处理指令对所述待处理数据进行相应数据处理操作得到的所述数据处理结果,并将所述数据处理结果通过所述AXI4总线发送至所述结果缓冲器中。
可选的,任一所述数据处理子模块,包括:
排序单元,用于根据所述控制存储器中存储的表征执行数据排序操作的第一数据处理指令对所述数据存储器中相应的所述待处理数据进行数据排序操作,并将排序后数据存储至所述结果存储器中;
和/或,筛选单元,用于根据所述控制存储器中存储的表征执行数据筛选操作的第二数据处理指令对所述数据存储器中相应的所述待处理数据进行数据筛选操作,并将筛选后数据存储至所述结果存储器中;
和/或,连接单元,用于根据所述控制存储器中存储的表征执行数据连接操作的第三数据处理指令对所述数据存储器中相应的所述待处理数据进行数据连接操作,并将连接后数据存储至所述结果存储器中;
和/或,聚合单元,用于根据所述控制存储器中存储的表征执行数据聚合操作的第四数据处理指令对所述数据存储器中相应的所述待处理数据进行数据聚合操作,并将聚合后数据存储至所述结果存储器中。
第二方面,本申请公开了一种数据库加速查询方法,应用于数据库查询加速引擎装置,包括:
通过主机通道适配器获取主机服务器在对数据查询请求进行响应时产生的数据处理指令,以及所述主机服务器从关系型数据库中查找到的与所述数据处理指令对应的待处理数据;
将所述数据处理指令和所述待处理数据通过Infiniband接口传输至引擎通道适配器,以便所述引擎通道适配器将所述数据处理指令和所述待处理数据发送至FPGA模块;
通过所述FPGA模块获取所述引擎通道适配器发送的所述数据处理指令和所述待处理数据,并基于所述数据处理指令对所述待处理数据进行相应的数据处理操作以得到相应的数据处理结果;
将所述数据处理结果传输至所述引擎通道适配器,以便所述引擎通道适配器依次通过所述Infiniband接口以及所述主机通道适配器将所述数据处理结果发送至所述主机服务器。
第三方面,本申请公开了一种数据库查询加速引擎系统,包括主机服务器以及前述的数据库查询加速引擎装置。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的数据库加速查询方法。
可见,本申请提供了一种数据库查询加速引擎装置,包括引擎通道适配器以及与主机服务器建立通信连接的主机通道适配器;一端与所述引擎通道适配器连接、另一端与所述主机通道适配器连接的Infiniband接口,用于通过所述主机通道适配器获取所述主机服务器在对数据查询请求进行响应时产生的数据处理指令,以及通过所述主机通道适配器获取所述主机服务器从关系型数据库中查找到的与所述数据处理指令对应的待处理数据,并将所述数据处理指令和所述待处理数据传输至所述引擎通道适配器;与所述引擎通道适配器建立通信连接的FPGA模块,用于获取所述引擎通道适配器发送的所述数据处理指令和所述待处理数据,以及基于所述数据处理指令对所述待处理数据进行相应的数据处理操作,并将数据处理结果传输至所述引擎通道适配器,以便所述引擎通道适配器依次通过所述Infiniband接口以及所述主机通道适配器将所述数据处理结果发送至所述主机服务器。
由此可见,可以通过本申请提供的上述数据库查询加速引擎装置对数据进行相应的处理,避免了直接利用主机服务器中的CPU对数据进行处理导致时间损耗过大等问题,利用Infiniband接口进行所述主机服务器和所述数据库查询加速引擎装置之间的传输过程可以提高数据传输速率,并且可以通过重复使用所述数据库查询加速引擎装置中的通用模块以提高资源利用率,所述数据库查询加速引擎装置还可以根据需求重新配置以支持多种不同的操作更新。
本申请还相应提供了一种数据库加速查询方法,该方法首先通过主机通道适配器获取主机服务器在对数据查询请求进行响应时产生的数据处理指令,以及所述主机服务器从关系型数据库中查找到的与所述数据处理指令对应的待处理数据;接着将所述数据处理指令和所述待处理数据通过Infiniband接口传输至引擎通道适配器,以便所述引擎通道适配器将所述数据处理指令和所述待处理数据发送至FPGA模块;然后通过所述FPGA模块获取所述引擎通道适配器发送的所述数据处理指令和所述待处理数据,并基于所述数据处理指令对所述待处理数据进行相应的数据处理操作以得到相应的数据处理结果;最后将所述数据处理结果传输至所述引擎通道适配器,以便所述引擎通道适配器依次通过所述Infiniband接口以及所述主机通道适配器将所述数据处理结果发送至所述主机服务器。
由此可见,本申请通过将数据处理指令和相应的待处理数据从所述主机服务器传输至所述数据库查询加速引擎装置以进行数据查询请求中的数据处理操作,这样一来,可以避免利用CPU进行数据处理操作导致时间损耗过大等问题,并且本申请限制了仅对关系型数据库的查询加速,满足了对关系型数据库进行数据查询加速的需求,避免由于数据库类型不限制导致数据处理和分析能力不强等问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种数据库查询加速引擎装置结构示意图;
图2为本申请公开的一种数据库加速查询方法流程图;
图3为本申请公开的一种具体的数据库加速查询方法流程图;
图4为本申请公开的一种数据库查询加速引擎系统结构图。
图中各标记说明如下:1为引擎通道适配器;2为主机通道适配器;3为Infiniband接口;4为FPGA模块;5为缓冲器模块;6为控制缓冲器;7为数据缓冲器;8为数据处理子模块;9为AXI4总线;10为结果缓存器;11为控制存储器;12为数据存储器;13为结果存储器;14为排序单元;15为筛选单元;16为连接单元;17为聚合单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有的大多数研究对查询操作进行了分解,只在FPGA上实现了排序、选择等关键操作。但是,中间处理结果需要在主机和FPGA加速板卡之间进行通信,这将导致过多的数据传输开销,在FPGA上处理数据的速度优势被大量的数据传输过程严重影响,导致数据库查询操作的时间开销过大。此外,各种类型的数据库查询也需要加速引擎具备不同的数据处理操作和分析能力。为此,本申请提供了一种数据库查询加速引擎装置以提升数据库查询操作的速度。
参见图1所示,本申请实施例公开了一种数据库查询加速引擎装置,包括:引擎通道适配器1(TCA,即Target Channel Adapter)以及与主机服务器建立通信连接的主机通道适配器2(HCA,即Host Channel Adapter);一端与所述引擎通道适配器1连接、另一端与所述主机通道适配器2连接的Infiniband(无限带宽技术)接口3,用于通过所述主机通道适配器2获取所述主机服务器在对数据查询请求进行响应时产生的数据处理指令,以及通过所述主机通道适配器2获取所述主机服务器从关系型数据库中查找到的与所述数据处理指令对应的待处理数据,并将所述数据处理指令和所述待处理数据传输至所述引擎通道适配器1。可以理解的是,所述Infiniband接口3用于连接所述主机服务器和所述数据库查询加速引擎装置并在所述主机服务器和所述数据库查询加速引擎装置之间实现高速的数据传输交换操作,所述Infiniband接口3的两端包含所述引擎通道适配器1和所述主机通道适配器2,所述引擎通道适配器1与所述数据库查询加速引擎装置进行连接,所述主机通道适配器2与所述主机服务器进行连接。需要指出的是,所述Infiniband接口3支持远程直接数据存取(RDMA,Remote Direct Memory Access),具备在完全卸载CPU和操作系统的方式下在两个远程系统的存储区域移动数据的能力,Infiniband的物理信号技术远超于其他网络技术,具备比其他任何网络技术都大的带宽,并且Infiniband提供了比现有技术PCIe(peripheral component interconnect express,即高速串行计算机扩展总线标准)接口更高的宽带,以提高数据传输速率。这样一来,通过利用Infiniband接口3连接所述主机服务器和所述数据库查询加速引擎装置并进行数据传输过程,可以减少所述主机服务器与所述数据库查询加速引擎装置之间的数据传输开销,大大提高了数据传输速率。
本实施例中,所述数据库查询加速引擎装置包括与所述引擎通道适配器1建立通信连接的FPGA模块4,所述FPGA模块4用于获取所述引擎通道适配器1发送的所述数据处理指令和所述待处理数据,以及基于所述数据处理指令对所述待处理数据进行相应的数据处理操作,并将数据处理结果传输至所述引擎通道适配器1,以便所述引擎通道适配器1依次通过所述Infiniband接口3以及所述主机通道适配器2将所述数据处理结果发送至所述主机服务器。即所述FPGA模块4主要用于对所述主机服务器发送的所述待处理数据进行与所述数据处理指令对应的数据处理操作。这样一来,可以将原本在CPU(Central ProcessUnit,即中央处理器)中执行的数据处理操作转移至所述FPGA模块4中,实现对数据查询指令对应的数据进行加速处理,以减少时间损耗提高数据查询效率。
本实施例中,所述FPGA模块4包括缓冲器模块5,所述缓冲器模块包含控制缓冲器6(Control Buffer),用于存储通过所述引擎通道适配器发送的所述主机服务器在对数据查询请求进行响应时产生的数据处理指令;数据缓冲器7(Data Buffer),用于存储通过所述引擎通道适配器1发送的所述主机服务器从关系型数据库中查找到的与所述数据处理指令对应的待处理数据。这样一来,将所述主机服务器发送的全部所述数据处理指令和全部所述待处理数据分别保存至所述控制缓冲器6和所述数据缓冲器7中,使FPGA模块除了拥有加速功能之外,还可以缓存相应的数据,避免当需要对大量数据进行处理时直接对得到的数据进行数据处理操作导致数据丢失或资源占用等问题出现,影响数据处理效率。
本实施例中,所述FPGA模块4包括若干数据处理子模块8,其中,任一所述数据处理子模块8,用于根据被分配的所述数据处理指令对相应的所述待处理数据进行相应的数据处理操作以得到相应的数据处理结果。进一步的,由于所述主机服务器可能会在同一时间发送大量的所述数据处理指令和相应的所述待处理数据,若只用一个数据处理子模块8可能会导致数据处理操作缓慢,达不到加速的效果,因此本申请在所述FPGA模块4中设置了若干个所述数据处理子模块8,当所述FPGA模块4获取到大量所述数据处理指令和相应的所述待处理数据时,可以将大量的所述处理指令和相应的所述待处理数据分给多个所述数据处理子模块8同时进行相应的数据处理操作,从而减少每一个所述数据处理子模块8的工作量以达到提高数据处理效率的效果。
本实施例中,所述FPGA模块4还包括设置于每一所述数据处理子模块8与所述缓冲器模块5之间的AXI4(Advanced eXtensible Interface,即一种总线协议)总线9(AXI4BUS),用于将从所述控制缓冲器6中选择的所述数据处理指令以及所述数据缓冲器7中保存的相应的所述待处理数据发送至相应的所述数据处理子模块8,并将所述数据处理子模块8得到的所述数据处理结果返回至所述缓冲器模块5进行保存。可以理解的是,所述AXI4总线可以用于为每一所述数据处理子模块8分配相应的所述数据处理指令和所述待处理数据,并实现所述数据处理子模块8与所述缓冲器模块5之间的数据传输。
本实施例中,所述缓存器模块5,还可以包括用于存储每一所述数据处理子模块8通过所述AXI4总线9发送的所述数据处理结果的结果缓冲器10。即所述结果缓存器10(Result Buffer)中存储了全部所述数据处理子模块8执行相应的数据处理操作后得到的全部所述数据处理结果,以将分配给每一个所述数据处理子模块8进行数据处理得到的所述数据处理结果进行汇总,并将汇总完成的全部所述数据处理结果集中通过所述引擎通道适配器1经由所述Infiniband接口3传输至所述主机服务器中,这样一来,可以避免将每一所述数据处理子模块8得到的所述数据处理结果直接返回至主机服务器导致数据传输通道过于拥挤产生崩溃、缓慢等现象。
本实施例中,任一所述数据处理子模块8,还可以包括:控制存储器11(ControlRAM,即Control Random Access Memory),用于存储所述AXI4总线9发送的所述数据处理指令;数据存储器12(Data RAM,即Data Random Access Memory),用于存储所述AXI4总线9发送的所述待处理数据;结果存储器13(Result Memory),用于存储基于所述数据处理指令对所述待处理数据进行相应数据处理操作得到的所述数据处理结果,并将所述数据处理结果通过所述AXI4总线9发送至所述结果缓冲器10中。可以理解的是,每一所述数据处理子模块8均存在所述控制存储器11、所述数据存储器12和所述结果存储器13,并且所述控制存储器11、所述数据存储器12和所述结果存储器13均与所述AXI4总线9连接,其中所述控制存储器11中存储了相应的所述数据处理子模块8获取到的所述AXI4总线9分配后发送的所述数据处理指令,所述数据存储器12中存储了相应的所述数据处理子模块8获取到的所述AXI4总线9分配后发送的相应所述待处理数据,所述结果存储器13中存储了相应的所述数据处理子模块8进行数据处理操作后得到的所述数据处理结果。进一步的,由于每次所述数据处理子模块8被分配的所述数据处理指令和相应的所述待处理数据不同,当本次的数据处理操作完成得到相应的所述数据处理结果并通过所述结果存储器13返回至所述结果缓存器10后,则可以将所述控制存储器11、所述数据存储器12和所述结果存储器13中的数据清除以获取并存储下一次被分配的数据处理指令和待处理数据以及相应的数据处理结果。这样一来,通过为每一所述数据处理子模块8均设置三种存储器以存储相应数据,可以防止在数据处理过程中出现意外情况导致数据丢失需要重新传输数据的情况出现,并且及时清除已处理数据可以防止内存资源占用过多导致装置运行缓慢的情况出现,极大提高了数据处理效率。
本实施例中,任一所述数据处理子模块8,包括:排序单元14(Sort),用于根据所述控制存储器11中存储的表征执行数据排序操作的第一数据处理指令对所述数据存储器12中相应的所述待处理数据进行数据排序操作,并将排序后数据存储至所述结果存储器13中;和/或,筛选单元15(Filter),用于根据所述控制存储器11中存储的表征执行数据筛选操作的第二数据处理指令对所述数据存储器12中相应的所述待处理数据进行数据筛选操作,并将筛选后数据存储至所述结果存储器13中;和/或,连接单元16(Connect),用于根据所述控制存储器11中存储的表征执行数据连接操作的第三数据处理指令对所述数据存储器12中相应的所述待处理数据进行数据连接操作,并将连接后数据存储至所述结果存储器13中;和/或,聚合单元17(Aggregate),用于根据所述控制存储器11中存储的表征执行数据聚合操作的第四数据处理指令对所述数据存储器12中相应的所述待处理数据进行数据聚合操作,并将聚合后数据存储至所述结果存储器13中。可以理解的是,所述数据查询请求中可能包含许多数据处理指令,例如排序、筛选、连接和聚合等,本申请在每一所述数据处理子模块8中均设置了所述排序单元14、所述筛选单元15、所述连接单元16和所述聚合单元17,并且所述排序单元14、所述筛选单元15、所述连接单元16和所述聚合单元17均与所述控制存储器11、所述数据存储器12和所述结果存储器13相连,在所述数据处理子模块8中可以对所述控制存储器11中存储的所述数据处理指令进行判断,以确定需要执行的相应操作,并输入至相应的处理单元中,例如,若所述数据处理指令表征要对所述待处理数据进行聚合操作,则将所述数据处理指令和所述待处理数据传输至所述聚合单元17中,以进行相应的数据聚合操作,执行完成后所述聚合单元17将相应的数据处理结果即聚合后数据传输至所述结果存储器13中以进行存储。这样一来,通过设置若干数据处理单元可以指出不同类型的数据查询处理操作,并且通过重复使用所述数据库查询加速引擎装置中的通用模块即所述数据处理子模块8以提高资源的利用率,由于FPGA为可编程的芯片,因此用户也可以根据需求重新对所述数据库查询加速引擎装置进行配置,以支持多种不同的查询处理操作。
可见,本申请提供了一种数据库查询加速引擎装置,包括引擎通道适配器以及与主机服务器建立通信连接的主机通道适配器;一端与所述引擎通道适配器连接、另一端与所述主机通道适配器连接的Infiniband接口,用于通过所述主机通道适配器获取所述主机服务器在对数据查询请求进行响应时产生的数据处理指令,以及通过所述主机通道适配器获取所述主机服务器从关系型数据库中查找到的与所述数据处理指令对应的待处理数据,并将所述数据处理指令和所述待处理数据传输至所述引擎通道适配器;与所述引擎通道适配器建立通信连接的FPGA模块,用于获取所述引擎通道适配器发送的所述数据处理指令和所述待处理数据,以及基于所述数据处理指令对所述待处理数据进行相应的数据处理操作,并将数据处理结果传输至所述引擎通道适配器,以便所述引擎通道适配器依次通过所述Infiniband接口以及所述主机通道适配器将所述数据处理结果发送至所述主机服务器。
由此可见,可以通过本申请提供的上述数据库查询加速引擎装置对数据进行相应的处理,避免了直接利用主机服务器中的CPU(Central Process Unit,即中央处理器)对数据进行处理导致时间损耗过大等问题,利用Infiniband接口进行所述主机服务器和所述数据库查询加速引擎装置之间的传输过程可以提高数据传输速率,并且可以通过重复使用所述数据库查询加速引擎装置中的通用模块以提高资源利用率,所述数据库查询加速引擎装置还可以根据需求重新配置以支持多种不同的操作更新。
参见图2所示,本申请实施例公开了一种数据库加速查询方法,应用于数据库查询加速引擎装置,包括:
步骤S11:通过主机通道适配器获取主机服务器在对数据查询请求进行响应时产生的数据处理指令,以及所述主机服务器从关系型数据库中查找到的与所述数据处理指令对应的待处理数据。
本实施例中,用户通过所述主机服务器发出数据查询请求,所述主机服务器的存储读取引擎接收到所述数据查询请求后对所述数据查询请求进行响应以产生相应的数据处理指令,并基于所述数据处理指令从关系型数据库中查找到相应的待处理数据,需要指出的是,由于数据量较大,获取的所述待处理数据可以先暂时存储至所述主机服务器中的CPU缓存Cache中,所述缓存将所述数据处理指令和所述待处理数据打包后传输至所述主机通道适配器。需要进一步指出的是,由于不同类型的数据库的存储结构不同,所以一种数据查询加速装置无法同时实现对多种数据库查询的加速,因此本实施例中限定所述数据库查询加速引擎装置仅对关系型数据库的查询进行加速,以满足关系型数据库高速查询的需求。其中,所述关系型数据库包括但不限于MySQL数据库、Oracle数据库等。
步骤S12:将所述数据处理指令和所述待处理数据通过Infiniband接口传输至引擎通道适配器,以便所述引擎通道适配器将所述数据处理指令和所述待处理数据发送至FPGA模块。
本实施例中,所述主机通道适配器通过所述Infiniband接口将所述数据处理指令和所述待处理数据传输至所述引擎通道适配器,以便所述引擎通道适配器将所述数据处理指令和所述待处理数据分别发送至FPGA模块的控制缓冲器和数据缓冲器中进行存储。
步骤S13:通过所述FPGA模块获取所述引擎通道适配器发送的所述数据处理指令和所述待处理数据,并基于所述数据处理指令对所述待处理数据进行相应的数据处理操作以得到相应的数据处理结果。
本实施例中,所述FPGA模块获取到所述引擎通道适配器发送的所述数据处理指令和所述待处理数据后,通过AXI4总线将所述数据处理指令和所述待处理数据分配并发送至若干数据处理子模块中的控制存储器和数据存储器中,基于所述数据处理指令对应的数据处理操作,所述控制存储器和所述数据存储器将所述数据处理指令和所述待处理数据传输至相应的数据处理单元中以对所述待处理数据进行处理得到相应的数据处理结果,并存储至结果存储器中。其中所述数据处理操作包括但不限于数据排序操作、数据筛选操作、数据连接操作和数据聚合操作等,所述数据处理单元包括但不限于排序单元、筛选单元、连接单元和聚合单元。需要指出的是,由于所述FPGA模块中利用AXI4总线实现数据传输,因此在所述FPGA模块获取到所述引擎通道适配器发送的所述数据处理指令和所述待处理数据后,需要先利用预设的协议转换桥将所述数据处理指令和所述待处理数据转换为AXI4总线格式,再将转换后的数据存储至所述控制缓冲器和所述数据缓冲器中,这样一来,所述数据处理指令和所述待处理数据在所述FPGA模块中可以正常进行传输。
步骤S14:将所述数据处理结果传输至所述引擎通道适配器,以便所述引擎通道适配器依次通过所述Infiniband接口以及所述主机通道适配器将所述数据处理结果发送至所述主机服务器。
本实施例中,所述数据处理子模块得到相应的所述数据处理结果后,将所述数据处理结果先传输至结果缓冲器中进行存储,当所述结果缓冲器获取到全部所述数据处理子模块发送的数据处理结果后,对全部所述数据处理结果进行汇总并传输至所述引擎通道适配器,以便所述引擎通道适配器经过所述Infiniband接口和所述主机通道适配器将所述数据处理结果发送至所述主机服务器。所述主机服务器接收到所述数据处理结果后,需要通过CPU对所述数据处理结果进行二次校验,校验完成后通过显示器等设备显示所述数据处理结果,以完成单次数据查询操作。
参见图3所示,为本申请公开的一种具体的数据加速查询流程图,包括:首先主机服务器的存储读取引擎读取数据库中存储的待处理数据,读取到的所述待处理数据经过所述Infiniband接口传输至所述数据库查询加速引擎装置中,所述数据库查询加速引擎装置中的FPGA模块执行数据加速处理操作,以对所述待处理数据执行排序、筛选、连接和聚合等操作以得到相应的处理后数据,将处理后的数据经过所述Infiniband接口传输至所述主机服务器,以便所述主机服务器输出查询处理结果。
本实施例中,为了验证所述数据库查询加速引擎装置的可靠性,本申请还相应公开了一个对比实验。所述对比实验选择Power服务器作为主机服务器,并使用XilinxZCU106开发板作为载体实现所述数据库查询加速引擎装置,数据库选用常规的MySQL关系型数据库,分别使用所述数据库查询加速引擎装置和服务器CPU在同样的数据和查询条件下对不同大小的数据包进行查询测试,并记录各组实验所需的查询时间,具体的实验查询性能结果如表一所示,其中表一中的“查询条件”为不同大小的数据包,即利用不同大小的数据包进行查询测试;“传统CPU”为利用传统的服务器CPU对“查询条件”中若干不同大小的所述数据包进行查询操作所需的查询时间;“数据库查询加速引擎装置”为利用本方案提供的所述数据库查询加速引擎装置对“查询条件”中若干不同大小的所述数据包进行查询操作所需的查询时间;“加速效果”为利用所述数据库查询加速引擎装置进行查询操作的查询时间相较于利用服务器CPU进行查询操作的查询时间的时间降低率,具体内容如下:
表一
基于表一所示的对比数据可知,在查询数据相同的情况下,利用本申请提供的所述数据库查询加速引擎装置进行数据查询的所需时间比利用CPU直接进行数据查询的时间大幅度减少,因为可以确定利用所述数据库查询加速引擎装置进行数据查询操作可以大大加快数据库查询效率,满足数据查询请求的实时性需求。
可见,本申请首先通过主机通道适配器获取主机服务器在对数据查询请求进行响应时产生的数据处理指令,以及所述主机服务器从关系型数据库中查找到的与所述数据处理指令对应的待处理数据;接着将所述数据处理指令和所述待处理数据通过Infiniband接口传输至引擎通道适配器,以便所述引擎通道适配器将所述数据处理指令和所述待处理数据发送至FPGA模块;然后通过所述FPGA模块获取所述引擎通道适配器发送的所述数据处理指令和所述待处理数据,并基于所述数据处理指令对所述待处理数据进行相应的数据处理操作以得到相应的数据处理结果;最后将所述数据处理结果传输至所述引擎通道适配器,以便所述引擎通道适配器依次通过所述Infiniband接口以及所述主机通道适配器将所述数据处理结果发送至所述主机服务器。
由此可见,本申请通过将数据处理指令和相应的待处理数据从所述主机服务器传输至所述数据库查询加速引擎装置以进行数据查询请求中的数据处理操作,这样一来,可以避免利用CPU进行数据处理操作导致时间损耗过大等问题,并且本申请限制了仅对关系型数据库的查询加速,满足了对关系型数据库进行数据查询加速的需求,避免由于数据库类型不限制导致数据处理和分析能力不强等问题。
进一步的,本申请实施例还公开了一种数据库查询加速引擎系统,图4是根据一示例性实施例示出的数据库查询加速引擎系统结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图4为本申请实施例提供的一种数据库查询加速引擎系统的结构示意图。该数据库查询加速引擎系统,具体可以包括:一个主机服务器和本申请提供的数据库加速查询引擎装置,所述数据库查询加速引擎系统用于在所述主机服务器与所述数据库加速查询引擎装置中实现前述实施例公开的数据加速查询方法。其中所述主机服务器中包括显示设备,用于获取用户输入的数据查询请求并显示基于所述数据查询请求进行数据处理操作后得到的数据处理结果;存储读取引擎,用于读取关系型数据库中的待处理数据;缓存Cache,用于存储所述存储读取引擎从关系型数据库中获取到的所述待处理数据。本实施例中的所述主机服务器具体可以为电子计算机,具体类型在此不进行具体限定。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的数据库加速查询方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、缓冲器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据库查询加速引擎装置,其特征在于,包括:
引擎通道适配器以及与主机服务器建立通信连接的主机通道适配器;
一端与所述引擎通道适配器连接、另一端与所述主机通道适配器连接的Infiniband接口,用于通过所述主机通道适配器获取所述主机服务器在对数据查询请求进行响应时产生的数据处理指令,以及通过所述主机通道适配器获取所述主机服务器从关系型数据库中查找到的与所述数据处理指令对应的待处理数据,并将所述数据处理指令和所述待处理数据传输至所述引擎通道适配器;
与所述引擎通道适配器建立通信连接的FPGA模块,用于获取所述引擎通道适配器发送的所述数据处理指令和所述待处理数据,以及基于所述数据处理指令对所述待处理数据进行相应的数据处理操作,并将数据处理结果传输至所述引擎通道适配器,以便所述引擎通道适配器依次通过所述Infiniband接口以及所述主机通道适配器将所述数据处理结果发送至所述主机服务器。
2.根据权利要求1所述的数据库查询加速引擎装置,其特征在于,所述FPGA模块包括缓冲器模块,所述缓冲器模块:
控制缓冲器,用于存储通过所述引擎通道适配器发送的所述主机服务器在对数据查询请求进行响应时产生的数据处理指令;
数据缓冲器,用于存储通过所述引擎通道适配器发送的所述主机服务器从关系型数据库中查找到的与所述数据处理指令对应的待处理数据。
3.根据权利要求2所述的数据库查询加速引擎装置,其特征在于,所述FPGA模块包括若干数据处理子模块;
其中,任一所述数据处理子模块,用于根据被分配的所述数据处理指令对相应的所述待处理数据进行相应的数据处理操作以得到相应的数据处理结果。
4.根据权利要求3所述的数据库查询加速引擎装置,其特征在于,所述FPGA模块,还包括:
设置于每一所述数据处理子模块与所述缓冲器模块之间的AXI4总线,用于将从所述控制缓冲器中选择的所述数据处理指令以及所述数据缓冲器中保存的相应的所述待处理数据发送至相应的所述数据处理子模块,并将所述数据处理子模块得到的所述数据处理结果返回至所述缓冲器模块进行保存。
5.根据权利要求4所述的数据库查询加速引擎装置,其特征在于,所述缓冲器模块,还包括用于存储每一所述数据处理子模块通过所述AXI4总线发送的所述数据处理结果的结果缓冲器。
6.根据权利要求5所述的数据库查询加速引擎装置,其特征在于,任一所述数据处理子模块,还包括:
控制存储器,用于存储所述AXI4总线发送的所述数据处理指令;
数据存储器,用于存储所述AXI4总线发送的所述待处理数据;
结果存储器,用于存储基于所述数据处理指令对所述待处理数据进行相应数据处理操作得到的所述数据处理结果,并将所述数据处理结果通过所述AXI4总线发送至所述结果缓冲器中。
7.根据权利要求6所述的数据库查询加速引擎装置,其特征在于,任一所述数据处理子模块,包括:
排序单元,用于根据所述控制存储器中存储的表征执行数据排序操作的第一数据处理指令对所述数据存储器中相应的所述待处理数据进行数据排序操作,并将排序后数据存储至所述结果存储器中;
和/或,筛选单元,用于根据所述控制存储器中存储的表征执行数据筛选操作的第二数据处理指令对所述数据存储器中相应的所述待处理数据进行数据筛选操作,并将筛选后数据存储至所述结果存储器中;
和/或,连接单元,用于根据所述控制存储器中存储的表征执行数据连接操作的第三数据处理指令对所述数据存储器中相应的所述待处理数据进行数据连接操作,并将连接后数据存储至所述结果存储器中;
和/或,聚合单元,用于根据所述控制存储器中存储的表征执行数据聚合操作的第四数据处理指令对所述数据存储器中相应的所述待处理数据进行数据聚合操作,并将聚合后数据存储至所述结果存储器中。
8.一种数据库加速查询方法,其特征在于,应用于数据库查询加速引擎装置,包括:
通过主机通道适配器获取主机服务器在对数据查询请求进行响应时产生的数据处理指令,以及所述主机服务器从关系型数据库中查找到的与所述数据处理指令对应的待处理数据;
将所述数据处理指令和所述待处理数据通过Infiniband接口传输至引擎通道适配器,以便所述引擎通道适配器将所述数据处理指令和所述待处理数据发送至FPGA模块;
通过所述FPGA模块获取所述引擎通道适配器发送的所述数据处理指令和所述待处理数据,并基于所述数据处理指令对所述待处理数据进行相应的数据处理操作以得到相应的数据处理结果;
将所述数据处理结果传输至所述引擎通道适配器,以便所述引擎通道适配器依次通过所述Infiniband接口以及所述主机通道适配器将所述数据处理结果发送至所述主机服务器。
9.一种数据库查询加速引擎系统,其特征在于,包括主机服务器以及如权利要求1至7任一项所述的数据库查询加速引擎装置。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求8所述的数据库加速查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310094045.9A CN115827682B (zh) | 2023-02-10 | 2023-02-10 | 一种数据库查询加速引擎装置、方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310094045.9A CN115827682B (zh) | 2023-02-10 | 2023-02-10 | 一种数据库查询加速引擎装置、方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115827682A true CN115827682A (zh) | 2023-03-21 |
CN115827682B CN115827682B (zh) | 2023-04-18 |
Family
ID=85520965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310094045.9A Active CN115827682B (zh) | 2023-02-10 | 2023-02-10 | 一种数据库查询加速引擎装置、方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827682B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117075966A (zh) * | 2023-08-31 | 2023-11-17 | 中科驭数(北京)科技有限公司 | 指令处理方法、装置、设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7130932B1 (en) * | 2002-07-08 | 2006-10-31 | Adaptec, Inc. | Method and apparatus for increasing the performance of communications between a host processor and a SATA or ATA device |
US20070277036A1 (en) * | 2003-05-23 | 2007-11-29 | Washington University, A Corporation Of The State Of Missouri | Intelligent data storage and processing using fpga devices |
CN113168409A (zh) * | 2018-12-06 | 2021-07-23 | 赛灵思公司 | 加速数据查询的集成电路和方法 |
CN113905097A (zh) * | 2021-09-26 | 2022-01-07 | 威讯柏睿数据科技(北京)有限公司 | 一种数据传输方法和装置 |
CN115643318A (zh) * | 2022-09-29 | 2023-01-24 | 中科驭数(北京)科技有限公司 | 命令执行方法、装置、设备及计算机可读存储介质 |
-
2023
- 2023-02-10 CN CN202310094045.9A patent/CN115827682B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7130932B1 (en) * | 2002-07-08 | 2006-10-31 | Adaptec, Inc. | Method and apparatus for increasing the performance of communications between a host processor and a SATA or ATA device |
US20070277036A1 (en) * | 2003-05-23 | 2007-11-29 | Washington University, A Corporation Of The State Of Missouri | Intelligent data storage and processing using fpga devices |
CN113168409A (zh) * | 2018-12-06 | 2021-07-23 | 赛灵思公司 | 加速数据查询的集成电路和方法 |
CN113905097A (zh) * | 2021-09-26 | 2022-01-07 | 威讯柏睿数据科技(北京)有限公司 | 一种数据传输方法和装置 |
CN115643318A (zh) * | 2022-09-29 | 2023-01-24 | 中科驭数(北京)科技有限公司 | 命令执行方法、装置、设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
郭斌,熊光楞,陈晓波,蹇佳: "MATLAB与HLA/RTI通用适配器研究与实现" * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117075966A (zh) * | 2023-08-31 | 2023-11-17 | 中科驭数(北京)科技有限公司 | 指令处理方法、装置、设备及可读存储介质 |
CN117075966B (zh) * | 2023-08-31 | 2024-04-19 | 中科驭数(北京)科技有限公司 | 指令处理方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115827682B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200264942A1 (en) | Message management method and device, and storage medium | |
CN110096336B (zh) | 数据监控方法、装置、设备和介质 | |
US10120820B2 (en) | Direct memory access transmission control method and apparatus | |
CN110750341B (zh) | 任务调度方法、装置、系统、终端设备及存储介质 | |
CN110708256A (zh) | Cdn调度方法、装置、网络设备及存储介质 | |
CN115827682B (zh) | 一种数据库查询加速引擎装置、方法及存储介质 | |
CN107357885B (zh) | 数据写入方法及装置、电子设备、计算机存储介质 | |
WO2023061177A1 (zh) | 基于列式数据扫描的多数据发送和接收方法、装置和设备 | |
US20210399986A1 (en) | Data communication method, server device, client device and medium | |
WO2023061180A1 (zh) | 基于多频率的数据发送和接收方法、装置和设备 | |
CN108924128A (zh) | 一种移动终端及其进程间通信的限制方法、存储介质 | |
CN102831007B (zh) | 实时处理系统中的共享资源访问方法和实时处理系统 | |
WO2023051319A1 (zh) | 基于多数据对齐的数据发送和接收方法、装置和设备 | |
CN114338386B (zh) | 一种网络的配置方法、装置、电子设备及存储介质 | |
CN116186096A (zh) | 基于fpga的关系型数据库聚合查询方法、装置、设备及介质 | |
CN112202781B (zh) | 一种电商大数据量回执报文处理方法、装置和系统 | |
CN111078160B (zh) | 基于调用比例及响应时长的数据迁移存储方法及装置 | |
CN109120665B (zh) | 高速数据包采集方法及装置 | |
CN110430098B (zh) | 数据处理系统 | |
CN111479307A (zh) | 数据传输方法、装置、ap及存储介质 | |
CN115643558B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN117234998B (zh) | 一种多主机数据访问方法及系统 | |
CN113835888B (zh) | CPU动态分配提升WiFi性能的方法、WiFi通讯设备及存储介质 | |
CN110290482B (zh) | 一种彩信处理方法、系统及终端设备 | |
CN103605622B (zh) | 一种传输数据的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230919 Address after: Office Area, 5th Floor, S02 Building, No. 1036 Langchao Road, High tech Zone, Jinan City, Shandong Province, 250000 Patentee after: Shandong Inspur Database Technology Co.,Ltd. Address before: Building S02, No. 1036, Gaoxin Langchao Road, Jinan City, Shandong Province, 250011 Patentee before: Shandong Inspur Scientific Research Institute Co.,Ltd. |