本发明专利技术提供一种基于数据库的任务处理方法、装置、设备及存储介质,该方法包括:获取对数据库的请求指令,并生成所述请求指令对应的任务数据包;创建就绪任务队列,并将所述任务数据包发送至所述就绪任务队列中进行缓存;对预设的计算资源池进行检测,以确定所述计算资源池中是否存在可用的计算资源;当所述计算资源池中存在可用的计算资源时,从所述就绪任务队列中缓存的任务数据包中读取目标任务数据包,并利用所述计算资源对所述目标任务数据包进行处理。本发明专利技术提供的基于数据库的任务处理方法,基于异步工作流的思路,通过消息队列平衡不同硬件设备的执行时间差异,能充分调度硬件资源参与计算,提高对数据库中的硬件资源的利用率。利用率。利用率。
【技术实现步骤摘要】
基于数据库的任务处理方法、装置、设备及存储介质
[0001]本专利技术涉及通信
,尤其涉及一种基于数据库的任务处理方法、装置、设备及存储介质。
技术介绍
[0002]随着互联网用户的快速增长和物联网设备的应用,以及数据体量的急剧膨胀,数据中心对计算资源的需求量也在迅速上涨。然而处理器摩尔定律进入尾声,学术界和工业界开始关注新的异构硬件计算平台,异构硬件在数据库领域取得了不错的加速效果。为充分利用硬件计算资源,避免资源浪费,异构计算领域需要一种良好的硬件计算资源调度方法。
[0003]现有的计算资源调度方法在处理请求任务时,服务器主机(Host)和硬件设备(Device)处在一个串行的计算流中,即主机读取硬盘数据到内存设备,在内存设备中打包封装数据,打包封装后的数据发送到异构硬件设备的全局存储区域,以便硬件设备对其进行计算处理,硬件设备计算完成后将返回结果给服务器主机。在任务处理过程中,主机在读取和发送数据的过程中,硬件设备处于空闲状态,硬件设备工作时,主机处于空闲等待状态,硬件资源无法得到充分利用,从而影响数据库的资源利用率。
技术实现思路
[0004]本专利技术提供一种基于数据库的任务处理方法、装置、设备及存储介质,用以解决现有的数据库的任务处理方法,服务器主机和硬件设备处在串行的计算流中,导致数据库的资源利用率不高的缺陷。
[0005]本专利技术提供一种基于数据库的任务处理方法,包括:
[0006]获取对数据库的请求指令,并生成所述请求指令对应的任务数据包;
[0007]创建就绪任务队列,并将所述任务数据包发送至所述就绪任务队列中进行缓存;
[0008]对预设的计算资源池进行检测,以确定所述计算资源池中是否存在可用的计算资源;
[0009]当所述计算资源池中存在可用的计算资源时,从所述就绪任务队列中缓存的任务数据包中读取目标任务数据包,并利用所述计算资源对所述目标任务数据包进行处理。
[0010]根据本专利技术提供的一种基于数据库的任务处理方法,所述获取请求指令,并生成所述请求指令对应的任务数据包的步骤,包括:
[0011]创建采集任务线程池;所述采集任务线程池中包括多个采集任务线程;
[0012]获取对数据库的请求指令,并从所述多个采集任务线程中获取第一目标线程;所述第一目标线程为所述采集任务线程池中的任一可用采集任务线程;
[0013]基于所述第一目标线程生成所述请求指令对应的任务数据包。
[0014]根据本专利技术提供的一种基于数据库的任务处理方法,所述基于所述第一目标线程生成所述请求指令对应的任务数据包的步骤,包括:
[0015]对所述请求指令进行解析,获取所述请求指令中的表信息,以及所述表信息对应的数据表的位置信息;
[0016]基于所述第一目标线程和所述位置信息进行磁盘扫描,以获取所述数据表中的表数据,并对所述表数据进行封装,得到所述请求指令对应的任务数据包。
[0017]根据本专利技术提供的一种基于数据库的任务处理方法,所述对所述表数据进行封装,得到所述请求指令对应的任务数据包的步骤,包括:
[0018]按照预设格式对所述表数据进行封装,得到第一数据包;
[0019]生成所述第一数据包的头部信息;所述头部信息包括所述第一数据包的包长度和数据量;
[0020]根据所述第一数据包和所述头部信息,生成所述请求指令对应的任务数据包。
[0021]根据本专利技术提供的一种基于数据库的任务处理方法,所述利用所述计算资源对所述目标任务数据包进行处理的步骤,包括:
[0022]确定所述计算资源对应的目标硬件设备;
[0023]将所述目标任务数据包发送至所述目标硬件设备,利用所述目标硬件设备对所述目标任务数据包进行处理。
[0024]根据本专利技术提供的一种基于数据库的任务处理方法,所述计算资源池中包括多个计算任务线程;所述对预设的计算资源池进行检测,以确定所述计算资源池中是否存在可用的计算资源的步骤,包括:
[0025]对预设的计算资源池进行检测,以获取所述计算资源池中各计算任务线程的运行状态;
[0026]根据各所述计算任务线程的运行状态确定所述计算资源池中是否存在可用的计算资源。
[0027]根据本专利技术提供的一种基于数据库的任务处理方法,所述利用所述计算资源对所述目标任务数据包进行处理之后,还包括:
[0028]创建任务完成队列,并获取所述目标任务数据包的处理结果;
[0029]将所述处理结果发送至所述任务完成队列中进行缓存,以供所述数据库读取。
[0030]本专利技术还提供一种基于数据库的任务处理装置,包括:
[0031]任务采集模块,用于获取对数据库的请求指令,并生成所述请求指令对应的任务数据包;
[0032]任务缓存模块,用于创建就绪任务队列,并将所述任务数据包发送至所述就绪任务队列中进行缓存;
[0033]资源调度模块,用于对预设的计算资源池进行检测,以确定所述计算资源池中是否存在可用的计算资源;
[0034]任务处理模块,用于当所述计算资源池中存在可用的计算资源时,从所述就绪任务队列中缓存的任务数据包中读取目标任务数据包,并利用所述计算资源对所述目标任务数据包进行处理。
[0035]本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于数据库的任务处理方法。
[0036]本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于数据库的任务处理方法。
[0037]本专利技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于数据库的任务处理方法。
[0038]本专利技术提供的基于数据库的任务处理方法、装置、设备及存储介质,通过创建就绪任务队列,对请求指令对应的任务数据包进行缓存,并利用可用的计算资源从就绪任务队列中读取任务数据包进行处理,完成请求指令对应的请求任务。通过创建就绪任务队列,在执行对数据库的请求任务的通信过程中,使处于串行计算流的计算资源处于异步工作状态。基于异步工作流的思路,通过消息队列平衡不同阶段的计算资源的执行时间差异,充分调度硬件资源参与计算,极大的提高了对数据库硬件资源的利用率。
附图说明
[0039]为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040]图1是本专利技术提供的基于数据库的任务处理方法的流程示意图;
[0041]图2是本专利技术提供的基于数据库的任务处理方法的另一流程示意图;
[0042]图3是本专利技术提供的基于数据库的任务处理本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于数据库的任务处理方法,其特征在于,包括:获取对数据库的请求指令,并生成所述请求指令对应的任务数据包;创建就绪任务队列,并将所述任务数据包发送至所述就绪任务队列中进行缓存;对预设的计算资源池进行检测,以确定所述计算资源池中是否存在可用的计算资源;当所述计算资源池中存在可用的计算资源时,从所述就绪任务队列中缓存的任务数据包中读取目标任务数据包,并利用所述计算资源对所述目标任务数据包进行处理。2.根据权利要求1所述的基于数据库的任务处理方法,其特征在于,所述获取请求指令,并生成所述请求指令对应的任务数据包的步骤,包括:创建采集任务线程池;所述采集任务线程池中包括多个采集任务线程;获取对数据库的请求指令,并从所述多个采集任务线程中获取第一目标线程;所述第一目标线程为所述采集任务线程池中的任一可用采集任务线程;基于所述第一目标线程生成所述请求指令对应的任务数据包。3.根据权利要求2所述的基于数据库的任务处理方法,其特征在于,所述基于所述第一目标线程生成所述请求指令对应的任务数据包的步骤,包括:对所述请求指令进行解析,获取所述请求指令中的表信息,以及所述表信息对应的数据表的位置信息;基于所述第一目标线程和所述位置信息进行磁盘扫描,以获取所述数据表中的表数据,并对所述表数据进行封装,得到所述请求指令对应的任务数据包。4.根据权利要求3所述的基于数据库的任务处理方法,其特征在于,所述对所述表数据进行封装,得到所述请求指令对应的任务数据包的步骤,包括:按照预设格式对所述表数据进行封装,得到第一数据包;生成所述第一数据包的头部信息;所述头部信息包括所述第一数据包的包长度和数据量;根据所述第一数据包和所述头部信息,生成所述请求指令对应的任务数据包。5.根据权利要求1所述的基于数据库的任务处理方法,其特征在于,所述利用所述计算资源对所述目标任务数据包进行处理...
【专利技术属性】
技术研发人员:蒿杰,吕志丰,彭琳,高韵沣,陈韶伟,
申请(专利权)人:芯跳科技广州有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。