CN116028455A - 一种数据处理方法、装置、存储介质及电子设备 - Google Patents
一种数据处理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN116028455A CN116028455A CN202310020157.XA CN202310020157A CN116028455A CN 116028455 A CN116028455 A CN 116028455A CN 202310020157 A CN202310020157 A CN 202310020157A CN 116028455 A CN116028455 A CN 116028455A
- Authority
- CN
- China
- Prior art keywords
- data
- processed
- cache area
- target
- copying
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 230000001133 acceleration Effects 0.000 claims abstract description 70
- 238000012545 processing Methods 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000006870 function Effects 0.000 claims abstract description 44
- 230000008569 process Effects 0.000 claims abstract description 27
- 230000004044 response Effects 0.000 claims abstract description 7
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013507 mapping Methods 0.000 claims description 16
- 230000002093 peripheral effect Effects 0.000 claims description 15
- 238000009434 installation Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 8
- 238000010276 construction Methods 0.000 description 6
- 238000013506 data mapping Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 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
本申请实施例提供了一种数据处理方法、装置、存储介质及电子设备,该方法应用于服务器中,包括:响应数据处理请求,将文件缓存区域中的待处理数据拷贝至目标缓存区域中,文件缓存区域和目标缓存区域部署在操作系统的内核地址空间内;在操作系统的用户地址空间调用数据读取函数,将目标缓存区域内的待处理数据拷贝至加速板卡中,用户地址空间的虚拟内存的虚拟地址与文件缓存区域的虚拟内存的虚拟地址指向相同的物理地址;控制加速板卡对待处理数据进行处理,得到处理结果。通过本申请,解决了相关技术中,将磁盘中的数据写入加速板卡的过程中存在数据拷贝次数多的问题,进而达到了降低数据处理时间,提高服务器中数据库异构加速处理性能的效果。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种数据处理方法、装置、存储介质及电子设备。
背景技术
在数字化时代的背景下,基于数据库进行数据存储与查询已经越来越普遍,但是随着海量的数据的积累叠加,数据量也来越大,为了更加快速的查询数据库中的关键数据,人们提出了很多基于数据库的异构加速计算查询的方法。在数据库异构加速计算方案中通常采用硬件异构加速控制器进行加速,例如,CPU(Central Processing Unit,中央处理器)或FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)。在使用FPGA的硬件异构加速方案中,当对安装在服务器中的数据库中的数据进行查询时,数据在服务器的操作系统中用户地址空间和内核地址空间之间的数据拷贝会占用大量的查询时间,影响数据库异构加速查询的性能。
如图1所示的数据库异构计算的整体框架,在图1中,FPGA加速卡作为异构加速计算中的硬件加速器,数据库运行在操作系统的用户地址空间中,当数据库执行数据查询时会在用户地址空间中调用数据读函数,然后进入内核地址空间,当数据库首次查询某些数据时,这些数据并不在内核地址空间的文件缓存中,需要DMA(Direct Memory Access,直接存储器访问)将数据拷贝至内核地址空间的文件缓存区中,完成数据的第一次拷贝;然后,响应数据读操作,CPU将数据拷贝至用户地址空间的数据库缓冲区中,完成数据的第二次拷贝。然后,在用户地址空间中调用数据写函数将数据写入内核地址空间的DMA缓冲区,完成数据的第三次拷贝。最后,启动DMA引擎,将数据拷贝至FPGA加速卡内,完成数据的第四次拷贝。由此可见,现有数据库异构加速计算方案中,数据库向FPGA加速卡完成一次数据写操作,需要进行四次拷贝。这大大降低了数据库异构加速查询的性能,特别是对于数据库中较大数据表的查询,采取该方案需要耗费一定的查询时间成本。
发明内容
本申请实施例提供了一种数据处理方法、装置、存储介质及电子设备,以至少解决相关技术中,将磁盘中的数据写入加速板卡的过程中存在数据拷贝次数多的问题。
根据本申请的一个实施例,提供了一种数据处理方法,应用于服务器中,包括:响应数据处理请求,将文件缓存区域中的待处理数据拷贝至目标缓存区域中,其中,文件缓存区域和目标缓存区域部署在操作系统的内核地址空间内;在操作系统的用户地址空间调用数据读取函数,将目标缓存区域内的待处理数据拷贝至加速板卡中,其中,用户地址空间的虚拟内存的虚拟地址与文件缓存区域的虚拟内存的虚拟地址指向相同的物理地址;控制加速板卡对待处理数据进行处理,得到处理结果。
在一个示例性实施例中,数据处理方法还包括:在将文件缓存区域中的待处理数据拷贝至目标缓存区域中之前,检测文件缓存区域中是否存在待处理数据;在文件缓存区域中不存在待处理数据时,从外围设备的存储空间中拷贝待处理数据至文件缓存区域中。
在一个示例性实施例中,数据处理方法还包括:在从外围设备的存储空间中拷贝待处理数据至文件缓存区域中之后,调用数据库系统调用函数,获取待处理数据在外围设备的存储空间内的数据文件地址;对数据文件地址进行映射,得到文件缓存区域的虚拟地址。
在一个示例性实施例中,数据处理方法还包括:在内核地址空间的驱动层构建目标缓存区域;确定待处理数据对应的目标数据量;创建与目标数据量对应的目标文件标识;基于目标文件标识以及文件缓存区域的虚拟地址将文件缓存区域中的待处理数据拷贝至目标缓存区域中。
在一个示例性实施例中,数据处理方法还包括:控制加速板卡中的第一控制器获取待处理数据,并将待处理数据发送至加速板卡中的第二控制器中;控制第二控制器将待处理数据存储至加速板卡中的目标内存中;控制加速板卡中的计算单元对待处理数据进行计算,得到处理结果。
在一个示例性实施例中,数据处理方法还包括:检测目标对象是否具有访问待处理数据的访问权限;在目标对象具有访问权限时,在用户地址空间内调用数据读取函数,通过数据读取函数启动直接存储器访问驱动,以使直接存储器访问驱动将待处理数据拷贝至加速板卡中。
在一个示例性实施例中,数据处理方法还包括:在在操作系统的用户地址空间调用数据读取函数,将目标缓存区域内的待处理数据拷贝至加速板卡中之前,通过钩子函数构建异构加速计算系统调用接口;通过异构加速计算系统调用接口,获取目标功能单元所对应的程序脚本,其中,目标功能单元至少包括如下之一:数据查询启动单元、物理路径获取单元、数据读取单元、用于实现物理地址与虚拟地址映射的映射单元、直接存储器访问驱动的启动单元;对目标功能单元所对应的程序脚本进行编译,生成动态库;将动态库部署在安装目标数据库的操作系统中。
根据本申请的另一个实施例,提供了一种数据处理装置,应用于服务器中,包括:第一拷贝模块,用于响应数据处理请求,将文件缓存区域中的待处理数据拷贝至目标缓存区域中,其中,所述文件缓存区域和所述目标缓存区域部署在操作系统的内核地址空间内;第二拷贝模块,用于在所述操作系统的用户地址空间调用数据读取函数,将所述目标缓存区域内的待处理数据拷贝至加速板卡中,其中,所述用户地址空间的虚拟内存的虚拟地址与所述文件缓存区域的虚拟内存的虚拟地址指向相同的物理地址;数据处理模块,用于控制所述加速板卡对所述待处理数据进行处理,得到处理结果。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,由于用户地址空间的虚拟内存的虚拟地址与文件缓存区域的虚拟内存的虚拟地址指向相同的物理地址,因此,本申请可实现用户地址空间与内核地址空间实现数据共享。而由于用户地址空间与内核地址空间之间数据共享,因此,在进行数据拷贝时,用户地址空间与内核地址空间之间无需进行数据拷贝,从而降低了数据库异构计算时数据拷贝的次数,提高了操作系统的性能。另外,在本申请中,采用外置的加速板卡对待处理数据进行数据处理,可避免在CPU直接处理数据导致消耗CPU资源的问题,进一步提高了操作系统的性能。
由此可见,本申请所提供的方案解决了相关技术中,将磁盘中的数据写入加速板卡的过程中存在数据拷贝次数多的问题,进而达到了降低数据处理时间,提高了服务器中数据库异构加速处理性能的效果。
附图说明
图1是相关技术中,数据库异构计算的整体框架图;
图2是根据本申请实施例的服务器的硬件结构框图;
图3是根据本申请实施例的数据处理方法的流程图;
图4是根据本申请实施例的数据库异构计算的数据映射框架图;
图5是根据本申请实施例的虚拟内存的模型示意图;
图6是根据本申请实施例的数据流的传输流程图;
图7是根据本申请实施例的数据处理方法的流程图;
图8是根据本申请实施例的数据库异构计算的数据映射框架图;
图9是根据本申请实施例的数据处理装置的结构框图;
图10是根据本申请实施例的电子设备的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在服务器、计算机终端或者类似的运算装置中执行。以运行在服务器上为例,图2是本申请实施例的一种数据处理方法的服务器的硬件结构框图。如图2所示,服务器可以包括一个或多个(图2中仅示出一个)处理器202(处理器202可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器204,其中,上述服务器还可以包括用于通信功能的传输设备206以及输入输出设备208。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述服务器的结构造成限定。例如,服务器还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
存储器204可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的数据处理方法对应的计算机程序,处理器202通过运行存储在存储器204内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器的通信供应商提供的无线网络。在一个实例中,传输设备206包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备206可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于服务器的数据处理方法,图3是根据本申请实施例的数据处理方法的流程图,如图3所示,该流程包括如下步骤:
步骤S302,响应数据处理请求,将文件缓存区域中的待处理数据拷贝至目标缓存区域中。
在步骤S302中,文件缓存区域和目标缓存区域部署在服务器的操作系统的内核地址空间内,其中,服务器的操作系统可以为但不限于Linux操作系统。上述的目标缓存区域可以为但不限于DMA缓冲区。
可选的,图4示出了服务器中的数据库异构计算的数据映射框架图,由图4可知,服务器的内核地址空间中部署有文件缓存区域和DMA缓冲区(即目标缓存区域)。在进行数据库的异构计算时,需在内核地址空间中,通过CPU拷贝的方式,将待处理数据由文件缓存区域拷贝至DMA缓冲区中。
需要说明的是,如图4所示,如果待处理数据为服务器中的数据库首次处理的数据,则服务器还需通过DMA拷贝的方式,将待处理数据从磁盘文件中拷贝至文件缓存区域中,然后再通过CPU拷贝的方式,将待处理数据由文件缓存区域拷贝至DMA缓冲区中;如果待处理数据并非服务器中的数据库首次处理的数据,则服务器无需通过DMA拷贝的方式,将待处理数据从磁盘文件中拷贝至文件缓存区域中,直接通过CPU拷贝的方式,将待处理数据由文件缓存区域拷贝至DMA缓冲区中即可。
步骤S304,在操作系统的用户地址空间调用数据读取函数,将目标缓存区域内的待处理数据拷贝至加速板卡中。
在步骤S304中,用户地址空间的虚拟内存的虚拟地址与文件缓存区域的虚拟内存的虚拟地址指向相同的物理地址。上述的加速板卡可以为但不限于FPGA加速卡,用于实现待处理数据的加速计算。
需要说明的是,虚拟内存用于实现计算机系统的内存管理,虚拟内存为正在运行的进程提供独立的内存空间,制造一种每个进程的内存都是独立的假象。虚拟内存只是操作系统中的逻辑结构,并不是像内存条那样的真实存在的东西,进程访问数据时,其实质访问的是物理内存或者磁盘上的数据。另外,虚拟内存实质是操作系统的物理内存和进程之间的中间层,其为进程隐藏了物理内存,为进程提供了更加简洁和易用的接口以及更加复杂的功能,所有现代操作系统都使用虚拟内存,使用虚拟地址取代物理地址。
可选的,图5示出了一种虚拟内存的模型示意图,由图5可知,用户地址空间的对应的用户缓冲区域的用户虚拟内存,与内核地址空间的对应的内核缓冲区域的内核虚拟内存,映射同一个物理内存,而磁盘与另一个物理内存映射,从而在服务器进行数据读取操作时,无需在用户地址空间与内核地址空间之间进行数据拷贝,减少了数据拷贝的次数。另外,在本实施例中,虚拟内存的空间容量可以远远大于物理内存的空间容量。
另外,本申请所提出的方法可用于数据库异构计算,即可采用mmap/write切换的方式实现数据库的异构计算。
如图4所示,在数据库用户空间采用mmap方式,使得用户地址空间内的用户缓冲区域和内核地址空间的文件缓存区域进行数据共享,二者使用相同的物理地址。当磁盘文件被拷贝至内核地址空间的文件缓存区域之后,不需要再将数据拷贝至安装在服务器中的数据库的用户地址空间中,此时,只需要在内核地址空间中,通过CPU拷贝的方式将待处理数据拷贝到DMA缓冲区中即可,最后,在用户地址空间调用write函数来启动DMA,将内核地址空间的DMA缓冲区中的数据拷贝至FPGA板卡中。整个过程仅需三次数据拷贝,与现有的方案相比,减少了一次数据拷贝的过程,进而减少了数据库的查询时间,提高了数据库异构加速的性能。
步骤S306,控制加速板卡对待处理数据进行处理,得到处理结果。
在步骤S306中,在将待处理数据拷贝至加速板卡之后,安装在服务器中的数据库即可通过加速板卡实现对待处理数据的计算。
需要说明的是,在实施例中,采用外置的加速板卡对待处理数据进行数据处理,可避免在CPU直接处理数据导致消耗CPU资源的问题,进一步提高了操作系统的性能。
基于上述步骤S302至步骤S306所限定的方案,可以获知,通过用户地址空间与内核地址空间之间数据共享的方式,响应数据处理请求,将文件缓存区域中的待处理数据拷贝至目标缓存区域中,并在操作系统的用户地址空间调用数据读取函数,将目标缓存区域内的待处理数据拷贝至加速板卡中,然后,控制加速板卡对待处理数据进行处理,得到处理结果,其中,文件缓存区域和目标缓存区域部署在操作系统的内核地址空间内,用户地址空间的虚拟内存的虚拟地址与文件缓存区域的虚拟内存的虚拟地址指向相同的物理地址。
容易注意到的是,由于用户地址空间的虚拟内存的虚拟地址与文件缓存区域的虚拟内存的虚拟地址指向相同的物理地址,因此,本申请可实现用户地址空间与内核地址空间实现数据共享。而由于用户地址空间与内核地址空间之间数据共享,因此,在进行数据拷贝时,用户地址空间与内核地址空间之间无需进行数据拷贝,从而降低了数据库异构计算时数据拷贝的次数,提高了操作系统的性能。另外,在本申请中,采用外置的加速板卡对待处理数据进行数据处理,可避免在CPU直接处理数据导致消耗CPU资源的问题,进一步提高了操作系统的性能。
由此可见,本申请所提供的方案解决了相关技术中,将磁盘中的数据写入加速板卡的过程中存在数据拷贝次数多的问题,进而达到了降低数据处理时间,提高了服务器中数据库异构加速处理性能的效果。
在一种可选的实施例中,图6示出了数据处理方法所对应的数据流的传输流程,由图6可知,用户向服务器发起数据处理请求,在接收到数据处理请求之后,服务器将待处理数据由磁盘拷贝至内核地址空间中的文件缓存区域中。然后,再将待处理数据由文件缓存区域中拷贝至DMA缓冲区中。最后,启动DMA,将DMA缓冲区中的数据拷贝至FPGA板卡中,以实现对待处理数据的处理。
需要说明的是,只有当第一次进行查询时,服务器才需要将待处理数据从磁盘拷贝至文件缓存区域中,当再次进行数据查询时,由于文件缓存区域中已经有了数据,无需再从磁盘中拷贝数据。因此,在数据库进行数据加速计算时,非首次查询只需要进行两次数据拷贝即可,即将待处理数据从文件缓存区域拷贝至DMA缓冲区,进而再将待处理数据由DMA缓冲区拷贝至FPGA板卡中。也即,在将文件缓存区域中的待处理数据拷贝至目标缓存区域中之前,服务器检测文件缓存区域中是否存在待处理数,并在文件缓存区域中不存在待处理数据时,从外围设备的存储空间中拷贝待处理数据至文件缓存区域中。其中,上述的外围设备可以为但不限于上述的磁盘。
在一种可选的实施例中,图7示出了本实施例所提供的数据处理方法的流程图,以下将结合图7对步骤S302至步骤S306所限定的方案进行解释说明。
可选的,如图7所示,在进行数据拷贝之前,服务器接收数据处理请求,并将待处理数据由磁盘拷贝至文件缓存区域中。在将待处理数据由磁盘拷贝至文件缓存区域中之后,服务器实现文件缓存区域的虚拟地址与物理内存的地址之间的映射。
具体的,在从外围设备的存储空间中拷贝待处理数据至文件缓存区域中之后,服务器调用数据库系统调用函数,获取待处理数据在外围设备的存储空间内的数据文件地址,并对数据文件地址进行映射,得到文件缓存区域的虚拟地址。
可选的,如图7所示,服务器使用数据库系统调用函数,获取数据文件地址,并采用mmap技术对数据文件地址进行映射,从而得到文件缓存区域的虚拟地址。其中,mmap技术为一种实现内存映射文件的方法。
进一步的,如图7所示,在获取到文件缓存区域对应的虚拟地址后,服务器将文件缓存区域中的待处理数据拷贝至目标缓存区域中。具体的,服务器在内核地址空间的驱动层构建目标缓存区域,并确定待处理数据对应的目标数据量;然后,创建与目标数据量对应的目标文件标识,并基于目标文件标识以及文件缓存区域的虚拟地址将文件缓存区域中的待处理数据拷贝至目标缓存区域中。
可选的,如图7所示,服务器在内核地址空间的驱动层申请DMA缓冲区,并创建与待处理数据对应的目标数据量相同的目标文件标识,也即目标文件标识的数量与上述目标数据量相同。然后,服务器根据目标文件标识以及文件缓存区域的虚拟地址将待处理数据拷贝至DMA缓冲区中。
进一步的,如图7所示,在将待处理数据拷贝至DMA缓冲区中之后,服务器在用户地址空间调用write函数,启动DMA,并将待处理数据由DMA缓冲区拷贝至FPGA板卡中。
在将待处理数据由DMA缓冲区拷贝至FPGA板卡中之后,服务器即可控制加速板卡对待处理数据进行处理,得到处理结果。具体的,服务器控制加速板卡中的第一控制器获取待处理数据,并将待处理数据发送至加速板卡中的第二控制器中;然后,控制第二控制器将待处理数据存储至加速板卡中的目标内存中,并控制加速板卡中的计算单元对待处理数据进行计算,得到处理结果。
可选的,图8示出了一种可选的服务器中的数据库异构计算的数据映射框架图。在图8中,服务器的操作系统为Linux操作系统,采用X86架构CPU作为处理器的HOST主机,安装在服务器中的数据库为PostgreSQL11.2版本的数据库。外围设备为磁盘,具体可以为机械硬盘,加速板卡为FPGA板卡。其中,PCIe(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)控制器(即第一控制器)用于控制PCIe总线的数据传输,DDR(Double Data Rate,双倍速率)控制器(即第二控制器)用于FPGA板卡的内存。
具体的,服务器通过mmap技术实现用户地址空间与内核地址空间的缓存共享,无需在用户地址空间与内核地址空间之间拷贝数据,在内核地址空间可直接通过CPU将待处理数据拷贝至DMA缓冲区中,然后在用户地址空间使用write系统调用函数,启动DMA引擎(即图8中的DMA驱动程序),将内核地址空间的数据拷贝至FPGA板卡中。当来自HOST主机的数据通过PCIe总线传输至FPGA板卡时,待处理数据会被存入FPGA板卡的板卡内存中,启动加速计算后,FPGA板卡内的加速计算单元会从板卡内存的指定地址上获取待处理数据进行加速计算,然后将计算结果保存在板卡内存的另一地址上,最后通过PCIe总线返回到HOST主机。
在一种可选的实施例中,在在操作系统的用户地址空间调用数据读取函数,将目标缓存区域内的待处理数据拷贝至加速板卡中之前,服务器还可通过调用钩子函数来实现动态库的编译。
具体的,服务器通过钩子函数构建异构加速计算系统调用接口,并通过异构加速计算系统调用接口,获取目标功能单元所对应的程序脚本;然后,对目标功能单元所对应的程序脚本进行编译,生成动态库;最后,将动态库部署在安装目标数据库的操作系统中。
可选的,上述的目标功能单元至少包括如下之一:数据查询启动单元、物理路径获取单元、数据读取单元、用于实现物理地址与虚拟地址映射的映射单元、直接存储器访问驱动的启动单元。也即在本实施例中,通过PostgreSQL数据库支持钩子函数机制来实现数据查询的启动、物理路径的获取、数据的读取、物理地址与虚拟地址的映射,以及DMA的启动。
需要说明的是,通过钩子函数实现上述功能,可以在不更改数据库源码的情况下,添加相应API接口,调用对应的功能单元,然后将勾住的该功能单元对应的代码编译成动态库(.so)的形式,最后将动态库添加到装在有数据库的操作系统中即可。另外,从磁盘拷贝数据至文件缓存区域的功能、DMA缓冲区的申请、目标文件标识的创建、从文件缓存区域拷贝数据至DMA缓冲区,以及从DMA缓冲区拷贝数据至FPGA板卡等功能均是通过Linux系统内核态的PCIe-XDMA驱动来是实现的。
在一种可选的实施例中,在操作系统的用户地址空间调用数据读取函数,将目标缓存区域内的待处理数据拷贝至加速板卡中的过程中,服务器还可检测目标对象是否具有访问待处理数据的访问权限,并在目标对象具有访问权限时,在用户地址空间内调用数据读取函数,通过数据读取函数启动直接存储器访问驱动,以使直接存储器访问驱动将待处理数据拷贝至加速板卡中。也即,只有具有访问权限的用户才能读取和/或处理数据。
由上述内容可知,本申请提供了一种数据处理方法,该方法可实现用于数据库异构计算的数据映射,通过数据库的钩子机制,结合虚拟内存模型,采用mmap技术原理,实现数据库的用户地址空间与内核地址空间之间的数据共享,通过内核地址空间中的驱动将数据直接拷贝至DMA缓冲区中,进而通过用户地址空间的write系统调用启动DMA,从而将数据拷贝至FPGA加速板卡,整个过程可减少服务器加速查询时数据的拷贝次数,降低了数据库查询时间,提高数据库异构加速查询的性能指标。
另外,本申请所提供的方案可适用用于金融、互联网等大数据计算密集型行业,能够提高相关的业务工作效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种数据处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图9是根据本申请实施例的数据处理装置的结构框图,应用于服务器中,如图9所示,该装置包括:第一拷贝模块901、第二拷贝模块903以及数据处理模块905。
其中,第一拷贝模块901,用于响应数据处理请求,将文件缓存区域中的待处理数据拷贝至目标缓存区域中,其中,文件缓存区域和目标缓存区域部署在操作系统的内核地址空间内;第二拷贝模块903,用于在操作系统的用户地址空间调用数据读取函数,将目标缓存区域内的待处理数据拷贝至加速板卡中,其中,用户地址空间的虚拟内存的虚拟地址与文件缓存区域的虚拟内存的虚拟地址指向相同的物理地址;数据处理模块905,用于控制加速板卡对待处理数据进行处理,得到处理结果。
此处需要说明的是,上述第一拷贝模块901、第二拷贝模块903以及数据处理模块905对应于上述实施例的步骤S302至步骤S306,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例所公开的内容。
可选的,数据处理装置还包括:数据检测模块以及第三拷贝模块。其中,数据检测模块,用于在将文件缓存区域中的待处理数据拷贝至目标缓存区域中之前,检测文件缓存区域中是否存在待处理数据;第三拷贝模块,用于在文件缓存区域中不存在待处理数据时,从外围设备的存储空间中拷贝待处理数据至文件缓存区域中。
可选的,数据处理装置还包括:第一获取模块以及映射模块。其中,第一获取模块,用于在从外围设备的存储空间中拷贝待处理数据至文件缓存区域中之后,调用数据库系统调用函数,获取待处理数据在外围设备的存储空间内的数据文件地址;映射模块,用于对数据文件地址进行映射,得到文件缓存区域的虚拟地址。
可选的,第一拷贝模块包括:第一构建模块、确定模块、第二构建模块以及第四拷贝模块。其中,第一构建模块,用于在内核地址空间的驱动层构建目标缓存区域;确定模块,用于确定待处理数据对应的目标数据量;第二构建模块,用于创建与目标数据量对应的目标文件标识;第四拷贝模块,用于基于目标文件标识以及文件缓存区域的虚拟地址将文件缓存区域中的待处理数据拷贝至目标缓存区域中。
可选的,数据处理模块包括:第一控制模块、第二控制模块以及第三控制模块。其中,第一控制模块,用于控制加速板卡中的第一控制器获取待处理数据,并将待处理数据发送至加速板卡中的第二控制器中;第二控制模块,用于控制第二控制器将待处理数据存储至加速板卡中的目标内存中;第三控制模块,用于控制加速板卡中的计算单元对待处理数据进行计算,得到处理结果。
可选的,数据处理模块包括:权限检测模块以及启动模块。其中,权限检测模块,用于检测目标对象是否具有访问待处理数据的访问权限;启动模块,用于在目标对象具有访问权限时,在用户地址空间内调用数据读取函数,通过数据读取函数启动直接存储器访问驱动,以使直接存储器访问驱动将待处理数据拷贝至加速板卡中。
可选的,数据处理装置还包括:第三构建模块、第二获取模块、脚本编译模块以及部署模块。其中,第三构建模块,用于在在操作系统的用户地址空间调用数据读取函数,将目标缓存区域内的待处理数据拷贝至加速板卡中之前,通过钩子函数构建异构加速计算系统调用接口;第二获取模块,用于通过异构加速计算系统调用接口,获取目标功能单元所对应的程序脚本,其中,目标功能单元至少包括如下之一:数据查询启动单元、物理路径获取单元、数据读取单元、用于实现物理地址与虚拟地址映射的映射单元、直接存储器访问驱动的启动单元;脚本编译模块,用于对目标功能单元所对应的程序脚本进行编译,生成动态库;部署模块,用于将动态库部署在安装目标数据库的操作系统中。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,图10是根据本申请实施例的一种可选的电子设备的示意图,如图10所示,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,应用于服务器中,包括:
响应数据处理请求,将文件缓存区域中的待处理数据拷贝至目标缓存区域中,其中,所述文件缓存区域和所述目标缓存区域部署在操作系统的内核地址空间内;
在所述操作系统的用户地址空间调用数据读取函数,将所述目标缓存区域内的待处理数据拷贝至加速板卡中,其中,所述用户地址空间的虚拟内存的虚拟地址与所述文件缓存区域的虚拟内存的虚拟地址指向相同的物理地址;
控制所述加速板卡对所述待处理数据进行处理,得到处理结果。
2.根据权利要求1所述的方法,其特征在于,在将文件缓存区域中的待处理数据拷贝至目标缓存区域中之前,所述方法还包括:
检测所述文件缓存区域中是否存在所述待处理数据;
在所述文件缓存区域中不存在所述待处理数据时,从外围设备的存储空间中拷贝所述待处理数据至所述文件缓存区域中。
3.根据权利要求2所述的方法,其特征在于,在从所述外围设备的存储空间中拷贝所述待处理数据至所述文件缓存区域中之后,所述方法还包括:
调用数据库系统调用函数,获取所述待处理数据在所述外围设备的存储空间内的数据文件地址;
对所述数据文件地址进行映射,得到所述文件缓存区域的虚拟地址。
4.根据权利要求1或3所述的方法,其特征在于,将文件缓存区域中的待处理数据拷贝至目标缓存区域中,包括:
在所述内核地址空间的驱动层构建所述目标缓存区域;
确定所述待处理数据对应的目标数据量;
创建与所述目标数据量对应的目标文件标识;
基于所述目标文件标识以及所述文件缓存区域的虚拟地址将所述文件缓存区域中的待处理数据拷贝至所述目标缓存区域中。
5.根据权利要求1所述的方法,其特征在于,控制所述加速板卡对所述待处理数据进行处理,得到处理结果,包括:
控制所述加速板卡中的第一控制器获取所述待处理数据,并将所述待处理数据发送至所述加速板卡中的第二控制器中;
控制所述第二控制器将所述待处理数据存储至所述加速板卡中的目标内存中;
控制所述加速板卡中的计算单元对所述待处理数据进行计算,得到所述处理结果。
6.根据权利要求1所述的方法,其特征在于,在所述操作系统的用户地址空间调用数据读取函数,将所述目标缓存区域内的待处理数据拷贝至加速板卡中,包括:
检测目标对象是否具有访问所述待处理数据的访问权限;
在所述目标对象具有所述访问权限时,在所述用户地址空间内调用所述数据读取函数,通过所述数据读取函数启动直接存储器访问驱动,以使所述直接存储器访问驱动将所述待处理数据拷贝至所述加速板卡中。
7.根据权利要求1所述的方法,其特征在于,在在所述操作系统的用户地址空间调用数据读取函数,将所述目标缓存区域内的待处理数据拷贝至加速板卡中之前,所述方法还包括:
通过钩子函数构建异构加速计算系统调用接口;
通过所述异构加速计算系统调用接口,获取目标功能单元所对应的程序脚本,其中,所述目标功能单元至少包括如下之一:数据查询启动单元、物理路径获取单元、数据读取单元、用于实现物理地址与虚拟地址映射的映射单元、直接存储器访问驱动的启动单元;
对所述目标功能单元所对应的程序脚本进行编译,生成动态库;
将所述动态库部署在安装目标数据库的操作系统中。
8.一种数据处理装置,其特征在于,应用于服务器中,包括:
第一拷贝模块,用于响应数据处理请求,将文件缓存区域中的待处理数据拷贝至目标缓存区域中,其中,所述文件缓存区域和所述目标缓存区域部署在操作系统的内核地址空间内;
第二拷贝模块,用于在所述操作系统的用户地址空间调用数据读取函数,将所述目标缓存区域内的待处理数据拷贝至加速板卡中,其中,所述用户地址空间的虚拟内存的虚拟地址与所述文件缓存区域的虚拟内存的虚拟地址指向相同的物理地址;
数据处理模块,用于控制所述加速板卡对所述待处理数据进行处理,得到处理结果。
9.一种计算机可读存储介质,其特征在于,计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至7任一项中所述的方法的步骤。
10.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310020157.XA CN116028455A (zh) | 2023-01-06 | 2023-01-06 | 一种数据处理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310020157.XA CN116028455A (zh) | 2023-01-06 | 2023-01-06 | 一种数据处理方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116028455A true CN116028455A (zh) | 2023-04-28 |
Family
ID=86070236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310020157.XA Pending CN116028455A (zh) | 2023-01-06 | 2023-01-06 | 一种数据处理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116028455A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450055A (zh) * | 2023-06-15 | 2023-07-18 | 支付宝(杭州)信息技术有限公司 | 一种多处理卡间的存储区域分配方法和系统 |
CN117609122A (zh) * | 2023-11-03 | 2024-02-27 | 摩尔线程智能科技(上海)有限责任公司 | 一种数据传输系统及方法、电子设备和存储介质 |
CN118264675A (zh) * | 2024-05-29 | 2024-06-28 | 北京壁仞科技开发有限公司 | 一种数据拷贝方法、设备、存储介质及程序产品 |
-
2023
- 2023-01-06 CN CN202310020157.XA patent/CN116028455A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450055A (zh) * | 2023-06-15 | 2023-07-18 | 支付宝(杭州)信息技术有限公司 | 一种多处理卡间的存储区域分配方法和系统 |
CN116450055B (zh) * | 2023-06-15 | 2023-10-27 | 支付宝(杭州)信息技术有限公司 | 一种多处理卡间的存储区域分配方法和系统 |
CN117609122A (zh) * | 2023-11-03 | 2024-02-27 | 摩尔线程智能科技(上海)有限责任公司 | 一种数据传输系统及方法、电子设备和存储介质 |
CN118264675A (zh) * | 2024-05-29 | 2024-06-28 | 北京壁仞科技开发有限公司 | 一种数据拷贝方法、设备、存储介质及程序产品 |
CN118264675B (zh) * | 2024-05-29 | 2024-08-09 | 北京壁仞科技开发有限公司 | 一种数据拷贝方法、设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107690622B (zh) | 实现硬件加速处理的方法、设备和系统 | |
CN116028455A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
US11556348B2 (en) | Bootstrapping profile-guided compilation and verification | |
KR20090079012A (ko) | 가상 머신의 상태를 저장, 복원하는 방법 및 장치 | |
US9063805B2 (en) | Method and system for enabling access to functionality provided by resources outside of an operating system environment | |
CN114860329A (zh) | 动态一致性偏置配置引擎及方法 | |
CN111666184B (zh) | 固态驱动器ssd硬盘测试方法、装置及电子设备 | |
CN114610337A (zh) | 一种多系统安装方法、计算设备及存储介质 | |
CN113791873B (zh) | 一种虚拟机创建方法、计算设备及存储介质 | |
CN117692322B (zh) | 网卡配置方法、装置、电子设备及存储介质 | |
CN114238236A (zh) | 共享文件的访问方法、电子设备及计算机可读存储介质 | |
CN108228842B (zh) | Docker镜像库文件存储方法、终端、设备以及存储介质 | |
CN111708715B (zh) | 内存分配方法、内存分配装置及终端设备 | |
CN112631994A (zh) | 数据迁移方法及系统 | |
CN111045789B (zh) | 一种虚拟机开机方法、装置及电子设备和存储介质 | |
CN111666579B (zh) | 计算机设备及其访问控制方法和计算机可读介质 | |
CN112764897B (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
CN115344507B (zh) | 内存分配方法、装置和系统 | |
CN113064655B (zh) | 一种bios网络启动方法、装置和计算机可读存储介质 | |
CN114637969A (zh) | 目标对象的鉴权方法及装置 | |
CN109634721B (zh) | 一种虚拟机与主机的启动通信方法及相关装置 | |
CN110704163A (zh) | 一种服务器及其虚拟化存储方法和装置 | |
CN117539802B (zh) | 一种缓存操作方法、系统以及相关装置 | |
CN112540857B (zh) | 处理工作量证明计算任务的方法、装置和系统 | |
CN117762572B (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 |