CN116383240A - 基于fpga多数据库加速查询方法、装置、设备及介质 - Google Patents

基于fpga多数据库加速查询方法、装置、设备及介质 Download PDF

Info

Publication number
CN116383240A
CN116383240A CN202310148384.0A CN202310148384A CN116383240A CN 116383240 A CN116383240 A CN 116383240A CN 202310148384 A CN202310148384 A CN 202310148384A CN 116383240 A CN116383240 A CN 116383240A
Authority
CN
China
Prior art keywords
data
processed
processing
instruction
database
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.)
Pending
Application number
CN202310148384.0A
Other languages
English (en)
Inventor
王雄儒
魏子重
赵鑫鑫
姜凯
王帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Inspur Database Technology Co Ltd
Original Assignee
Shandong Inspur Science Research Institute Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Inspur Science Research Institute Co Ltd filed Critical Shandong Inspur Science Research Institute Co Ltd
Priority to CN202310148384.0A priority Critical patent/CN116383240A/zh
Publication of CN116383240A publication Critical patent/CN116383240A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了基于FPGA多数据库加速查询方法、装置、设备及介质,涉及数据库应用设计领域,包括:从待处理数据包中确定出待处理数据;基于指令表、待处理数据以及数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,为待处理数据分配加速单元并标注地址,得到处理单元地址;对处理单元地址、待处理数据以及数据处理指令进行格式转换操作,得到转换后数据,对转换后数据进行排序筛选处理,以得到处理结果,将处理结果发送并保存至先进先出队列;将先进先出队列中的处理结果发送至存储器,以便存储器将处理结果发送至服务器进行显示,能够实现对多个数据库同时进行数据查询,提高资源利用率,加快查询效率,降低查询操作系的功耗。

Description

基于FPGA多数据库加速查询方法、装置、设备及介质
技术领域
本发明涉及数据库应用设计领域,特别涉及一种基于FPGA多数据库加速查询方法、装置、设备及介质。
背景技术
广义上的数据库是“按照数据结构来组织、存储和管理数据的仓库”,是一个长期存储在服务器内的、有组织的、可共享的、统一管理的大量数据的集合。数据库作为一种数据记录存储的集成系统,它采用了多种不同的模型来组织数据,其以行、列、表等不同形式存储数据。数据库支持数据的全方位存储、搜索和解析,现已被广泛应用于商业、工业、智能家居和医疗保健等领域。
随着人工智能时代的到来,大数据与信息化进程的不断推进,数据库的装机容量呈现指数上涨,多数据库联合调用实现数据查询处理的场景需求也与日俱增。现阶段,数据库应用者大多通过服务器搭载的CPU实现多数据库的联合查询处理。然而,多数据库同时查询涉及到的海量的数据和复杂的计算,给原本擅长调度和管理的服务器搭载CPU的性能带来了巨大影响,用户端对多数据库执行查询操作的响应效率也大打折扣。为此,一种全新的基于FPGA的多数据库查询加速引擎亟待相关领域研究者进行深入探索。
由上可见,如何实现对多个数据库同时进行数据查询,提高资源利用率,加快查询效率,降低查询操作的功耗是本领域有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种基于FPGA多数据库加速查询方法、装置、设备及介质,能够实现对多个数据库同时进行数据查询,提高资源利用率,加快查询效率,降低查询操作系的功耗。其具体方案如下:
第一方面,本申请公开了一种基于FPGA多数据库加速查询方法,应用于FPGA,包括:
获取数据处理指令和包括各数据库中数据的待处理数据包,从所述待处理数据包中确定出待处理数据,并将所述待处理数据和所述数据处理指令保存至本地;
基于预设的指令表、所述待处理数据以及所述数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注地址,以得到处理单元地址;
对所述处理单元地址、所述待处理数据以及所述数据处理指令进行格式转换操作,以得到转换后数据,根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至本地的先进先出队列;
将所述先进先出队列中的所述处理结果发送至预设的存储器,以便所述存储器将所述处理结果发送至服务器进行显示。
可选的,所述从所述待处理数据包中确定出待处理数据,并将所述待处理数据和所述数据处理指令保存至本地,包括:
利用预设的MIG IP核并采用FPGA时序逻辑,从所述待处理数据包中确定出待处理数据,将所述待处理数据包进行卸载操作,然后将所述待处理数据保存至本地的运行内存;
将所述数据处理指令保存至本地的控制运行内存。
可选的,所述基于预设的指令表、所述待处理数据以及所述数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注地址,包括:
基于预设的指令表、所述待处理数据以及所述数据处理指令并利用本地的仲裁模块确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注AXIslave地址。
可选的,所述对所述处理单元地址、所述待处理数据以及所述数据处理指令进行格式转换操作,以得到转换后数据,包括:
利用本地的协议转换模块将所述处理单元地址、所述待处理数据以及所述数据处理指令转换为标准AXI总线格式,以得到转换后数据,并将所述转换后数据发送至本地的加速单元。
可选的,所述根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至本地的先进先出队列,包括:
基于所述数据处理指令确定出数据查询相关度;
根据所述数据查询相关度并利用所述加速单元对所述转换后数据进行排序筛选处理,以得到处理结果,通过AXI总线将所述处理结果发送并保存至本地的先进先出队列。
可选的,所述获取数据处理指令和包括各数据库中数据的待处理数据包,包括:
建立本地与预设的存储器之间的第一连接关系,并通过XDMA接口建立预设的所述存储器与服务器之间的第二连接关系,以便所述服务器基于用户端发送的信息处理请求生成数据处理指令,然后从第三方数据库中获取待处理数据包,利用第二连接关系将所述数据处理指令和包括各数据库中数据的所述待处理数据包发送至所述存储器;
根据所述第一连接关系获取所述存储器中的所述数据处理指令和包括各数据库中数据的所述待处理数据包。
可选的,所述将所述先进先出队列中的所述处理结果发送至预设的存储器,以便所述存储器将所述处理结果发送至服务器进行显示,包括:
通过AXI总线将所述先进先出队列中的所述处理结果发送至预设的存储器,以便当所述存储器获取到所述服务器发送的传输信号时,将所述处理结果通过所述第二连接关系发送至所述服务器,以便所述服务器对所述处理结果进行二次校验,若二次校验通过,则将所述处理结果发送至预设的显示设备进行显示。
第二方面,本申请公开了一种基于FPGA多数据库加速查询装置,包括:
待处理数据确定模块,用于获取数据处理指令和包括各数据库中数据的待处理数据包,从所述待处理数据包中确定出待处理数据,并将所述待处理数据和所述数据处理指令保存至本地;
加速单元分配模块,用于基于预设的指令表、所述待处理数据以及所述数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注地址,以得到处理单元地址;
格式转换模块,用于对所述处理单元地址、所述待处理数据以及所述数据处理指令进行格式转换操作,以得到转换后数据,根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至本地的先进先出队列;
处理结果显示模块,用于将所述先进先出队列中的所述处理结果发送至预设的存储器,以便所述存储器将所述处理结果发送至服务器进行显示。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的基于FPGA多数据库加速查询方法。
第四方面,本申请公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的基于FPGA多数据库加速查询方法的步骤。
可见,本申请提供了一种基于FPGA多数据库加速查询方法,包括获取数据处理指令和包括各数据库中数据的待处理数据包,从所述待处理数据包中确定出待处理数据,并将所述待处理数据和所述数据处理指令保存至本地;基于预设的指令表、所述待处理数据以及所述数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注地址,以得到处理单元地址;对所述处理单元地址、所述待处理数据以及所述数据处理指令进行格式转换操作,以得到转换后数据,根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至本地的先进先出队列;将所述先进先出队列中的所述处理结果发送至预设的存储器,以便所述存储器将所述处理结果发送至服务器进行显示。本申请基于FPGA的多数据库查询加速引擎。基于FPGA的多数据库查询加速引擎不仅支持多个不同类型数据库的数据高速查询需求,而且通过FPGA模块复用来提高资源的利用率;降低总控服务器CPU查询操作耗时的同时也降低了查询操作系统功耗。此外,基于FPGA的多数据库查询加速引擎也可以根据用户查询实际需要重新进行加速模块配置,灵活应对查询操作更新。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种基于FPGA多数据库加速查询方法流程图;
图2为本申请公开的一种FPGA结构及工作流程示意图;
图3为本申请公开的一种基于FPGA多数据库结构图;
图4为本申请公开的一种基于FPGA多数据库加速查询方法流程图;
图5为本申请公开的一种多数据库系统的具体结构和实现方式图;
图6为本申请公开的一种基于FPGA多数据库加速查询装置结构示意图;
图7为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
广义上的数据库是“按照数据结构来组织、存储和管理数据的仓库”,是一个长期存储在服务器内的、有组织的、可共享的、统一管理的大量数据的集合。数据库作为一种数据记录存储的集成系统,它采用了多种不同的模型来组织数据,其以行、列、表等不同形式存储数据。数据库支持数据的全方位存储、搜索和解析,现已被广泛应用于商业、工业、智能家居和医疗保健等领域。随着人工智能时代的到来,大数据与信息化进程的不断推进,数据库的装机容量呈现指数上涨,多数据库联合调用实现数据查询处理的场景需求也与日俱增。现阶段,数据库应用者大多通过服务器搭载的CPU实现多数据库的联合查询处理。然而,多数据库同时查询涉及到的海量的数据和复杂的计算,给原本擅长调度和管理的服务器搭载CPU的性能带来了巨大影响,用户端对多数据库执行查询操作的响应效率也大打折扣。为此,一种全新的基于FPGA的多数据库查询加速引擎亟待相关领域研究者进行深入探索。由上可见,如何实现对多个数据库同时进行数据查询,提高资源利用率,加快查询效率,降低查询操作的功耗是本领域有待解决的问题。
本发明涉及数据库设计领域,具体涉及一种基于FPGA(Field Programmable GateArray,现场可程式门阵列)的多数据库查询加速引擎。该设计基于FPGA可编程阵列逻辑,实现了一种全新的多数据库查询加速引擎以满足用户同时对多个数据库的高速查询需求。多数据库查询加速的系统实现方式包括含多数据库DB(数据存储单元)主控服务器和基于FPGA的多数据库查询加速引擎。DB主控服务器分析用户需求并控制加速器的实现,其工作重点是充分发挥CPU(Central Processing Unit,中央处理器)的优势,实现指令和数据的高速调度,而基于FPGA的多数据库查询加速引擎的重点在于实现目标数据库的高速查询处理需求。主控服务器和基于FPGA的多数据库查询加速引擎通过XDMA协议连接(XDMA分别连接DB主控服务器的主存和基于FPGA的多数据库查询加速引擎包含的DDR4存储器,实现存储器端对端直接高速数据交换与访问),该协议的物理层面由PCIe4.0(PCI-Express,高速串行总线)实现,XDMA协议实现了二者的数据高速传输交换操作。FPGA上实现的多数据库查询加速引擎由Xilinx MIG DDR4存储读取控制器、数据查询整体控制器、数据RAM、控制RAM、结果RAM、传输仲裁器、FIFO和数据传输路径等主要组件组成。多数据库总控服务器终端通过XDMA接口控制基于FPGA的多数据库查询加速引擎。
参见图1所示,本发明实施例公开了一种基于FPGA多数据库加速查询方法,应用于FPGA,具体可以包括:
步骤S11:获取数据处理指令和包括各数据库中数据的待处理数据包,从所述待处理数据包中确定出待处理数据,并将所述待处理数据和所述数据处理指令保存至本地。
本实施例中,获取数据处理指令和包括各数据库中数据的待处理数据包,然后利用预设的MIG IP核并采用FPGA时序逻辑,从所述待处理数据包中确定出待处理数据,将所述待处理数据包进行卸载操作,然后将包含各数据库中数据的所述待处理数据保存至本地的运行内存,将所述数据处理指令保存至本地的控制运行内存。也就是说,在获取数据处理指令和包括各数据库中数据的待处理数据包之后,将主机通过XDMA传送的待处理数据包从存储器卸载,并将数据处理指令和包括各数据库中数据的待处理数据分别存储至数据RAM(Data RAM模块)和控制RAM(Control RAM模块)中,该阶段由Xilinx官方提供的MIG IP核完成,并配合适当的FPGA时序逻辑实现。
步骤S12:基于预设的指令表、所述待处理数据以及所述数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注地址,以得到处理单元地址。
本实施例中,基于预设的指令表、所述待处理数据以及所述数据处理指令并利用本地的仲裁模块确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注AXI slave地址,以得到处理单元地址。FPGA的具体结构及工作流程如图2所示,对照指令表识别控制RAM中存储的多数据库查询操作指令(即数据处理指令),并按照指令执行的预估时长以及相应的数据处理难度分配加速单元,并对数据流标记AXI slave地址,该操作由本地的仲裁模块(Arbitiation模块)实现。
步骤S13:对所述处理单元地址、所述待处理数据以及所述数据处理指令进行格式转换操作,以得到转换后数据,根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至本地的先进先出队列。
本实施例中,利用本地的协议转换模块将所述处理单元地址、所述待处理数据以及所述数据处理指令转换为标准AXI总线格式,以得到转换后数据,并将所述转换后数据发送至本地的加速单元,然后根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至数据处理模块中的先进先出队列。具体的排序筛选处理过程如下,基于所述数据处理指令确定出数据查询相关度,然后根据所述数据查询相关度并利用所述加速单元对所述转换后数据进行排序筛选处理,以得到处理结果,通过AXI总线将所述处理结果发送并保存至本地的先进先出队列。如图2所示,将数据RAM和控制RAM存储的待处理数据和数据处理指令以及处理单元地址,转换为标准AXI总线格式,该操作由二者之间的协议转换模块(AXI BUS模块)实现;转换后的数据包通过AXI总线发送到仲裁模块裁定的数据包加速单元(加速单元视为AXI从机Slave,分别为AXI Lite0~AXI Lite 15)进行排序筛选处理,然后根据需求实现不同的查询功能,加速单元按照控制RAM存储的数据处理指令,首先将多个数据库的数据聚集(Data Mix模块),随后按照数据查询相关度高低进行排序(Sorting模块)、并按照相关度筛选出符合查询需求的数据(Filter模块),最终按照相关度排序结果(即处理结果)存储至FIFO中(Result FIFO_0~Result FIFO_7)。
基于FPGA多数据库系统内的结构如图3所示,当用户有数据库查询需要时,在数据应用层的DB总控服务器端由数据库应用程序发起对多个数据库的读取指令(即Database1-Database N);随后,DB总控读取多个数据库对应存储分区内的全部内容,由于数据量较大(通常为上万条),并暂存至服务器缓存中等待数据处理指令;数据完整读取结束后,DB总控服务器的CPU进行调度控制,将数据处理指令和服务器缓存的待处理数据打包发送至多数据库查询加速引擎(多数据库查询加速引擎中包括DDR4和FPGA);基于FPGA的多数据库查询加速引擎根据数据处理指令对数据进行并行加速聚集排序和筛选处理,并将处理结果及时反馈至DB总控服务器,完成查询加速操作,并利用服务器进行显示。
步骤S14:将所述先进先出队列中的所述处理结果发送至预设的存储器,以便所述存储器将所述处理结果发送至服务器进行显示。
本实施例中,如图2所示,处理结果依序经过AXI总线发送至处理结果存储器(Result RAM模块),并由AXI总线传输至DDR4存储,最终XDMA端口发送至服务器进行显示。
本实施例中,获取数据处理指令和包括各数据库中数据的待处理数据包,从所述待处理数据包中确定出待处理数据,并将所述待处理数据和所述数据处理指令保存至本地;基于预设的指令表、所述待处理数据以及所述数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注地址,以得到处理单元地址;对所述处理单元地址、所述待处理数据以及所述数据处理指令进行格式转换操作,以得到转换后数据,根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至本地的先进先出队列;将所述先进先出队列中的所述处理结果发送至预设的存储器,以便所述存储器将所述处理结果发送至服务器进行显示。本申请基于FPGA的多数据库查询加速引擎。基于FPGA的多数据库查询加速引擎不仅支持多个不同类型数据库的数据高速查询需求,而且通过FPGA模块复用来提高资源的利用率;降低总控服务器CPU查询操作耗时的同时也降低了查询操作系统功耗。此外,基于FPGA的多数据库查询加速引擎也可以根据用户查询实际需要重新进行加速模块配置,灵活应对查询操作更新。
参见图4所示,本发明实施例公开了一种基于FPGA多数据库加速查询方法,具体可以包括:
步骤S21:建立本地与预设的存储器之间的第一连接关系,并通过XDMA接口建立预设的所述存储器与服务器之间的第二连接关系,以便所述服务器基于用户端发送的信息处理请求生成数据处理指令,从第三方数据库中获取待处理数据包,然后利用第二连接关系将所述数据处理指令和包括各数据库中数据的所述待处理数据包发送至所述存储器,根据所述第一连接关系获取所述存储器中的所述数据处理指令和包括各数据库中数据的所述待处理数据包。
步骤S22:从所述待处理数据包中确定出待处理数据,并将所述待处理数据和所述数据处理指令保存至本地。
步骤S23:基于预设的指令表、所述待处理数据以及所述数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注地址,以得到处理单元地址。
步骤S24:对所述处理单元地址、所述待处理数据以及所述数据处理指令进行格式转换操作,以得到转换后数据,根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至本地的先进先出队列。
步骤S25:通过AXI总线将所述先进先出队列中的所述处理结果发送至预设的存储器,以便当所述存储器获取到所述服务器发送的传输信号时,将所述处理结果通过所述第二连接关系发送至所述服务器,以便所述服务器对所述处理结果进行二次校验,若二次校验通过,则将所述处理结果发送至预设的显示设备进行显示。
本申请的实现方式如下:1、用户在服务器终端发出对多个数据库基于某信息的查询处理需求,服务器终端的多数据库应用程序接收到准确的信息查询指令,并发送至位于服务器终端的Database(数据库)控制器;2、Database控制器控制服务器终端分别从多个数据库读取相关存储信息,并将从多个数据库接收到的未经处理的读取信息发送至服务器主存,并由主存进行暂存,未经处理的信息数量庞杂,不经处理无法直接向用户显示;3、从多数据库采集的相关信息全部存储至服务器主存后,缓存的数据和查询处理指令经服务器CPU打包后,直接通过XDMA接口发送至FPGA多数据库查询加速引擎搭载的DDR4暂存;4、DDR4数据接收完毕,多数据库查询加速引擎的FPGA芯片读取DDR4存储器存储的指令信息以及相应的未处理数据,并对读取数据按需求执行高速并行聚集排序和筛选处理;5、FPGA将处理结果再次存储至DDR4指定存储分区中;6、服务器CPU通过XDMA接口接收DDR4特定分区存储的加速处理结果,并将结果直接映射到服务器主存;7、Database控制器对服务器主存的处理结果进行二次校验,输出至用户端,并通过查询结果显示设备展示查询结果。多数据库查询加速引擎的FPGA模块处理过程可以分为四个阶段:(1)DDR4存储数据卸载;(2)加速处理数据仲裁,处理单元分配;(3)总线格式转换;(4)数据查询加速处理。具体的,第一阶段,DDR4存储数据卸载。将主机通过XDMA传送的待处理数据包从存储器卸载,并分别存储至数据RAM(Data RAM模块)和控制RAM(Control RAM模块)中。该阶段由Xilinx官方提供的MIGIP核完成,并配合适当的FPGA时序逻辑实现。第二阶段,加速处理数据仲裁,处理单元分配。对照指令表识别控制RAM中存储的多数据库查询操作指令,并根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并对数据流标记AXI slave地址。该操作由仲裁模块(Arbitiation模块)实现。第三阶段,总线格式转换。将数据RAM和控制RAM存储的数据和操作指令数据流,转换为标准AXI总线格式,该操作由二者之间的协议转换模块(AXI BUS模块)实现;转换后的数据包通过AXI总线发送到仲裁模块裁定的数据包加速单元(加速单元视为AXI从机Slave,分别为AXI Lite 0~AXI Lite 15)聚集排序和筛选。第四阶段,根据需求实现不同的查询功能。加速单元按照控制RAM存储的操作内容,首先将多个数据库的数据聚集(Data Mix模块),随后按照数据查询相关度高低进行排序(Sorting模块)、并按照相关度筛选出符合查询需求的数据(Filter模块),最终按照相关度排序结果存储至FIFO中(Result FIFO_0~Result FIFO_7);处理结果依序经过AXI总线发送至处理结果存储器(Result RAM模块),并由AXI总线传输至DDR4存储,最终XDMA端口发送至主机端。
具体的多数据库系统的结构和实现方式如图5所示,结构:多数据库查询加速的系统实现方式包括含多数据库DB主控服务器和基于FPGA的多数据库查询加速引擎,DB主控服务器分析用户需求并控制加速器的实现,其工作重点是充分发挥CPU的优势,实现指令和数据的高速调度,而基于FPGA的多数据库查询加速引擎的重点在于实现目标数据库的高速查询处理需求。主控服务器和基于FPGA的多数据库查询加速引擎通过XDMA协议连接(XDMA分别连接DB主控服务器的主存和基于FPGA的多数据库查询加速引擎包含的DDR4存储器,实现存储器端对端直接高速数据交换与访问),该协议的物理层面由PCIe4.0实现,XDMA协议实现了二者的数据高速传输交换操作。FPGA上实现的多数据库查询加速引擎由Xilinx MIGDDR4存储读取控制器、数据查询整体控制器、数据RAM、控制RAM、结果RAM、传输仲裁器、FIFO和数据传输路径等主要组件组成。实现方式:1、用户在服务器终端发出对多个数据库基于某信息的查询处理需求,服务器终端的多数据库应用程序接收到准确的信息查询指令,并发送至位于服务器终端的Database控制器;2、Database控制器控制服务器终端分别从多个数据库读取相关存储信息,并将从多个数据库接收到的未经处理的读取信息发送至服务器主存,并由主存进行暂存,未经处理的信息数量庞杂,不经处理无法直接向用户显示;3、从多数据库采集的相关信息全部存储至服务器主存后,缓存的数据和查询处理指令经服务器CPU打包后,直接通过XDMA接口发送至FPGA多数据库查询加速引擎搭载的DDR4暂存;4、DDR4数据接收完毕,多数据库查询加速引擎的FPGA芯片读取DDR4存储器存储的指令信息以及相应的未处理数据,并对读取数据按需求执行高速并行聚集排序和筛选处理;5、FPGA将处理结果再次存储至DDR4指定存储分区中;6、服务器CPU通过XDMA接口接收DDR4特定分区存储的加速处理结果,并将结果直接映射到服务器主存;7和8、Database控制器对服务器主存的处理结果进行二次校验,输出至用户端,并通过查询结果显示设备展示查询结果。
本实施例中,获取数据处理指令和包括各数据库中数据的待处理数据包,从所述待处理数据包中确定出待处理数据,并将所述待处理数据和所述数据处理指令保存至本地;基于预设的指令表、所述待处理数据以及所述数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注地址,以得到处理单元地址;对所述处理单元地址、所述待处理数据以及所述数据处理指令进行格式转换操作,以得到转换后数据,根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至本地的先进先出队列;将所述先进先出队列中的所述处理结果发送至预设的存储器,以便所述存储器将所述处理结果发送至服务器进行显示。本申请基于FPGA的多数据库查询加速引擎。基于FPGA的多数据库查询加速引擎不仅支持多个不同类型数据库的数据高速查询需求,而且通过FPGA模块复用来提高资源的利用率;降低总控服务器CPU查询操作耗时的同时也降低了查询操作系统功耗。此外,基于FPGA的多数据库查询加速引擎也可以根据用户查询实际需要重新进行加速模块配置,灵活应对查询操作更新。
参见图6所示,本发明实施例公开了一种基于FPGA多数据库加速查询装置,具体可以包括:
待处理数据确定模块11,用于数据处理指令和包括各数据库中数据的获取待处理数据包,从所述待处理数据包中确定出待处理数据,并将所述待处理数据和所述数据处理指令保存至本地;
加速单元分配模块12,用于基于预设的指令表、所述待处理数据以及所述数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注地址,以得到处理单元地址;
格式转换模块13,用于对所述处理单元地址、所述待处理数据以及所述数据处理指令进行格式转换操作,以得到转换后数据,根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至本地的先进先出队列;
处理结果显示模块14,用于将所述先进先出队列中的所述处理结果发送至预设的存储器,以便所述存储器将所述处理结果发送至服务器进行显示。
本实施例中,获取数据处理指令和包括各数据库中数据的待处理数据包,从所述待处理数据包中确定出待处理数据,并将所述待处理数据和所述数据处理指令保存至本地;基于预设的指令表、所述待处理数据以及所述数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注地址,以得到处理单元地址;对所述处理单元地址、所述待处理数据以及所述数据处理指令进行格式转换操作,以得到转换后数据,根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至本地的先进先出队列;将所述先进先出队列中的所述处理结果发送至预设的存储器,以便所述存储器将所述处理结果发送至服务器进行显示。本申请基于FPGA的多数据库查询加速引擎。基于FPGA的多数据库查询加速引擎不仅支持多个不同类型数据库的数据高速查询需求,而且通过FPGA模块复用来提高资源的利用率;降低总控服务器CPU查询操作耗时的同时也降低了查询操作系统功耗。此外,基于FPGA的多数据库查询加速引擎也可以根据用户查询实际需要重新进行加速模块配置,灵活应对查询操作更新。
在一些具体实施例中,所述待处理数据确定模块11,具体可以包括:
待处理数据保存模块,用于利用预设的MIG IP核并采用FPGA时序逻辑,从所述待处理数据包中确定出待处理数据,将所述待处理数据包进行卸载操作,然后将所述待处理数据保存至本地的运行内存;
数据处理指令保存模块,用于将所述数据处理指令保存至本地的控制运行内存。
在一些具体实施例中,所述加速单元分配模块12,具体可以包括:
加速单元分配模块,用于基于预设的指令表、所述待处理数据以及所述数据处理指令并利用本地的仲裁模块确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注AXI slave地址。
在一些具体实施例中,所述格式转换模块13,具体可以包括:
格式转换模块,用于利用本地的协议转换模块将所述处理单元地址、所述待处理数据以及所述数据处理指令转换为标准AXI总线格式,以得到转换后数据,并将所述转换后数据发送至本地的加速单元。
在一些具体实施例中,所述处理结果显示模块14,具体可以包括:
数据查询相关度确定模块,用于基于所述数据处理指令确定出数据查询相关度;
处理结果发送模块,用于根据所述数据查询相关度并利用所述加速单元对所述转换后数据进行排序筛选处理,以得到处理结果,通过AXI总线将所述处理结果发送并保存至本地的先进先出队列。
在一些具体实施例中,所述待处理数据确定模块11,具体可以包括:
连接关系建立模块,用于建立本地与预设的存储器之间的第一连接关系,并通过XDMA接口建立预设的所述存储器与服务器之间的第二连接关系,以便所述服务器基于用户端发送的信息处理请求生成数据处理指令,然后从第三方数据库中获取待处理数据包,利用第二连接关系将所述数据处理指令和包括各数据库中数据的所述待处理数据包发送至所述存储器;
待处理数据包获取模块,用于根据所述第一连接关系获取所述存储器中的所述数据处理指令和包括各数据库中数据的所述待处理数据包。
在一些具体实施例中,所述处理结果显示模块14,具体可以包括:
处理结果显示模块,用于通过AXI总线将所述先进先出队列中的所述处理结果发送至预设的存储器,以便当所述存储器获取到所述服务器发送的传输信号时,将所述处理结果通过所述第二连接关系发送至所述服务器,以便所述服务器对所述处理结果进行二次校验,若二次校验通过,则将所述处理结果发送至预设的显示设备进行显示。
图7为本申请实施例提供的一种电子设备的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由电子设备执行的基于FPGA多数据库加速查询方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的基于FPGA多数据库加速查询方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括基于FPGA多数据库加速查询设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的基于FPGA多数据库加速查询方法步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种基于FPGA多数据库加速查询方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种基于FPGA多数据库加速查询方法,其特征在于,应用于FPGA,包括:
获取数据处理指令和包括各数据库中数据的待处理数据包,从所述待处理数据包中确定出待处理数据,并将所述待处理数据和所述数据处理指令保存至本地;
基于预设的指令表、所述待处理数据以及所述数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注地址,以得到处理单元地址;
对所述处理单元地址、所述待处理数据以及所述数据处理指令进行格式转换操作,以得到转换后数据,根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至本地的先进先出队列;
将所述先进先出队列中的所述处理结果发送至预设的存储器,以便所述存储器将所述处理结果发送至服务器进行显示。
2.根据权利要求1所述的基于FPGA多数据库加速查询方法,其特征在于,所述从所述待处理数据包中确定出待处理数据,并将所述待处理数据和所述数据处理指令保存至本地,包括:
利用预设的MIG IP核并采用FPGA时序逻辑,从所述待处理数据包中确定出待处理数据,将所述待处理数据包进行卸载操作,然后将所述待处理数据保存至本地的运行内存;
将所述数据处理指令保存至本地的控制运行内存。
3.根据权利要求1所述的基于FPGA多数据库加速查询方法,其特征在于,所述基于预设的指令表、所述待处理数据以及所述数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注地址,包括:
基于预设的指令表、所述待处理数据以及所述数据处理指令并利用本地的仲裁模块确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注AXI slave地址。
4.根据权利要求1所述的基于FPGA多数据库加速查询方法,其特征在于,所述对所述处理单元地址、所述待处理数据以及所述数据处理指令进行格式转换操作,以得到转换后数据,包括:
利用本地的协议转换模块将所述处理单元地址、所述待处理数据以及所述数据处理指令转换为标准AXI总线格式,以得到转换后数据,并将所述转换后数据发送至本地的加速单元。
5.根据权利要求4所述的基于FPGA多数据库加速查询方法,其特征在于,所述根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至本地的先进先出队列,包括:
基于所述数据处理指令确定出数据查询相关度;
根据所述数据查询相关度并利用所述加速单元对所述转换后数据进行排序筛选处理,以得到处理结果,通过AXI总线将所述处理结果发送并保存至本地的先进先出队列。
6.根据权利要求1至5任一项所述的基于FPGA多数据库加速查询方法,其特征在于,所述获取数据处理指令和包括各数据库中数据的待处理数据包,包括:
建立本地与预设的存储器之间的第一连接关系,并通过XDMA接口建立预设的所述存储器与服务器之间的第二连接关系,以便所述服务器基于用户端发送的信息处理请求生成数据处理指令,然后从第三方数据库中获取待处理数据包,利用第二连接关系将所述数据处理指令和包括各数据库中数据的所述待处理数据包发送至所述存储器;
根据所述第一连接关系获取所述存储器中的所述数据处理指令和包括各数据库中数据的所述待处理数据包。
7.根据权利要求6所述的基于FPGA多数据库加速查询方法,其特征在于,所述将所述先进先出队列中的所述处理结果发送至预设的存储器,以便所述存储器将所述处理结果发送至服务器进行显示,包括:
通过AXI总线将所述先进先出队列中的所述处理结果发送至预设的存储器,以便当所述存储器获取到所述服务器发送的传输信号时,将所述处理结果通过所述第二连接关系发送至所述服务器,以便所述服务器对所述处理结果进行二次校验,若二次校验通过,则将所述处理结果发送至预设的显示设备进行显示。
8.一种基于FPGA多数据库加速查询装置,其特征在于,包括:
待处理数据确定模块,用于获取数据处理指令和包括各数据库中数据的待处理数据包,从所述待处理数据包中确定出待处理数据,并将所述待处理数据和所述数据处理指令保存至本地;
加速单元分配模块,用于基于预设的指令表、所述待处理数据以及所述数据处理指令确定出指令执行的预估时长以及相应的数据处理难度,根据所述指令执行的预估时长以及相应的数据处理难度为所述待处理数据分配加速单元,并为所述待处理数据标注地址,以得到处理单元地址;
格式转换模块,用于对所述处理单元地址、所述待处理数据以及所述数据处理指令进行格式转换操作,以得到转换后数据,根据所述数据处理指令对所述转换后数据进行排序筛选处理,以得到处理结果,将所述处理结果发送并保存至本地的先进先出队列;
处理结果显示模块,用于将所述先进先出队列中的所述处理结果发送至预设的存储器,以便所述存储器将所述处理结果发送至服务器进行显示。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的基于FPGA多数据库加速查询方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于FPGA多数据库加速查询方法。
CN202310148384.0A 2023-02-21 2023-02-21 基于fpga多数据库加速查询方法、装置、设备及介质 Pending CN116383240A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310148384.0A CN116383240A (zh) 2023-02-21 2023-02-21 基于fpga多数据库加速查询方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310148384.0A CN116383240A (zh) 2023-02-21 2023-02-21 基于fpga多数据库加速查询方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN116383240A true CN116383240A (zh) 2023-07-04

Family

ID=86966298

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310148384.0A Pending CN116383240A (zh) 2023-02-21 2023-02-21 基于fpga多数据库加速查询方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN116383240A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116756059A (zh) * 2023-08-15 2023-09-15 苏州浪潮智能科技有限公司 查询数据输出方法、加速器件、系统、存储介质及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116756059A (zh) * 2023-08-15 2023-09-15 苏州浪潮智能科技有限公司 查询数据输出方法、加速器件、系统、存储介质及设备
CN116756059B (zh) * 2023-08-15 2023-11-10 苏州浪潮智能科技有限公司 查询数据输出方法、加速器件、系统、存储介质及设备

Similar Documents

Publication Publication Date Title
US10831562B2 (en) Method and system for operating a data center by reducing an amount of data to be processed
US8381230B2 (en) Message passing with queues and channels
JP2677744B2 (ja) 分散メモリ式デジタル計算システム
CN109074281B (zh) 图形处理器任务的分配方法和装置
CN103336672B (zh) 数据读取方法、装置及计算设备
CN111917587B (zh) 利用服务系统进行网络服务管理的方法及服务系统
CN108881485A (zh) 保障大数据包下的高并发系统响应时间的方法
CN107515784A (zh) 一种在分布式系统中计算资源的方法与设备
CN112612523A (zh) 一种嵌入式设备驱动系统及方法
CN112307065B (zh) 一种数据处理方法、装置及服务器
CN116383240A (zh) 基于fpga多数据库加速查询方法、装置、设备及介质
US20240220334A1 (en) Data processing method in distributed system, and related system
CN110706148B (zh) 人脸图像处理方法、装置、设备和存储介质
US8543722B2 (en) Message passing with queues and channels
CN116795647A (zh) 一种数据库异构资源管理与调度方法、装置、设备及介质
CN110069565B (zh) 一种分布式数据库数据批量处理的方法及装置
CN109726219A (zh) 数据查询的方法及终端设备
CN116155828B (zh) 一种多个虚拟队列的报文保序方法及其装置、存储介质、电子设备
CN109582242B (zh) 级联存储阵列系统的地址确定方法、装置、电子设备
CN116186096A (zh) 基于fpga的关系型数据库聚合查询方法、装置、设备及介质
JP2001229058A (ja) データベースサーバ処理方法
CN114398410A (zh) 一种连续编号生成方法、装置、服务器集群及存储介质
CN113760986A (zh) 一种数据查询方法、装置、设备及存储介质
CN112541038A (zh) 时序数据管理方法、系统、计算设备及存储介质
JPH02245864A (ja) 多重プロセッサシステム

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
TA01 Transfer of patent application right
TA01 Transfer of patent application 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

Applicant after: Shandong Inspur Database Technology Co.,Ltd.

Address before: 250000 building S02, No. 1036, Gaoxin Inspur Road, Jinan, Shandong

Applicant before: Shandong Inspur Scientific Research Institute Co.,Ltd.