一种查询任务的分配方法及装置与流程

文档序号:11386731阅读:244来源:国知局
一种查询任务的分配方法及装置与流程

本发明涉及计算机技术领域,具体地,涉及一种查询任务的分配方法及装置。



背景技术:

在数据库服务器终端,常常会出现高并发请求的场景,即同时收到多个在数据库中查找目标信息的请求。服务器需要进行资源调度,具体为参考任务队列中的任务个数,将新发起的查询数据库的请求对应的查询任务分配到任务个数最少的任务队列中。但在实际运行中,往往还是会发现存在一个任务队列一直处于忙碌状态而另一个任务队列却经常处于空闲状态的情况,导致对查询任务的处理效率很低。



技术实现要素:

本发明的目的在于克服现有技术中数据库服务器任务处理效率低的问题,提供一种查询任务的分配方法及装置,提高服务器对查询任务的处理效率。

为了实现上述目的,本发明实施例提供一种查询任务的分配方法,包括:

获取各任务队列当前的各查询任务的预估查询耗时;其中,所述查询任务为在数据库中查询目标信息的任务;所述任务队列用于存储未执行的查询任务;所述预估查询耗时是根据所述查询任务的特征数据计算得到的;

根据各任务队列当前的各查询任务的预估查询耗时,分配新生成的查询任务到其中一个所述任务队列中。

实施本发明实施例,具有如下有益效果:

本发明实施例提供的查询任务的分配方法,根据查询任务的预估查询耗时来分配查询任务到任务队列中,因此各任务队列的查询总耗时能保持相近的状态,使得查询任务不会在任务队列中长时间地等待,能及时地得到处理,提高了服务器对查询任务的处理效率。

进一步地,所述预估查询耗时的计算方法具体为:

将所述查询任务的特征数据代入预先配置的数据模型,计算所述查询任务的预估查询耗时;其中,所述数据模型是用多个历史查询任务作为样本训练得到的;每一个历史查询任务对应一个样本,每个样本包括一组特征数据和一个实际查询耗时。

作为其中一种实施方式,所述数据模型为线性回归预测模型。

进一步地,所述数据模型公式为:y(i)=θtx(i)

其中,y(i)为预估查询耗时;θ与x(i)均为n维列向量,n是一个查询任务的特征数据的数量;x(i)的第j个分量为待预估的查询任务的第j个特征数据;且:其中,x为m行n列的矩阵,为m维列向量;x的第i行第j列元素为第i个样本的第j个特征数据,的第i个分量为第i个样本的实际查询耗时。

作为其中一种实施方式,所述根据各任务队列当前的各查询任务的预估查询耗时,分配新生成的查询任务到其中一个所述任务队列中,具体包括:

计算每一任务队列当前的所有查询任务的预估查询耗时的总值;

将所述预估查询耗时的总值最小的任务队列作为待分配的任务队列;

分配新生成的查询任务到所述待分配的任务队列中。

进一步地,所述特征数据包括服务器性能的特征数据、任务内容的特征数据和数据库属性的特征数据;

所述服务器性能的特征数据包括内存性能数据、cpu性能数据或i/o性能数据;

所述任务内容的特征数据包括表数量、内连接数量、外连接数量或交叉连接数量;

所述数据库属性的特征数据包括数据库数据总条数、每张表的数据条数或各表的数据条数中位数。

相应地,本发明实施例还提供一种查询任务的分配装置,包括:

获取模块,用于获取各任务队列当前的各查询任务的预估查询耗时;其中,所述查询任务为在数据库中查询目标信息的任务;所述任务队列用于存储未执行的查询任务;所述预估查询耗时是根据所述查询任务的特征数据计算得到的;

分配模块,用于根据各任务队列当前的各查询任务的预估查询耗时,分配新生成的查询任务到其中一个所述任务队列中。

本发明实施例提供的查询任务的分配装置,根据查询任务的预估查询耗时来分配查询任务到任务队列中,因此各任务队列的查询总耗时能保持相近的状态,使得查询任务不会在任务队列中长时间地等待,能及时地得到处理,提高了服务器对查询任务的处理效率。

进一步地,所述预估查询耗时的计算装置包括:

耗时计算模块,用于将所述查询任务的特征数据代入预先配置的数据模型,计算所述查询任务的预估查询耗时;其中,所述数据模型是用多个历史查询任务作为样本训练得到的;每一个历史查询任务对应一个样本,每个样本包括一组特征数据和一个实际查询耗时。

作为其中一种实施方式,所述数据模型为线性回归预测模型;

所述数据模型公式为:y(i)=θtx(i)

其中,y(i)为预估查询耗时;θ与x(i)均为n维列向量,n是一个查询任务的特征数据的数量;x(i)的第j个分量为待预估的查询任务的第j个特征数据;且:其中,x为m行n列的矩阵,为m维列向量;x的第i行第j列元素为第i个样本的第j个特征数据,的第i个分量为第i个样本的实际查询耗时。

作为其中一种实施方式,所述分配模块包括:

耗时计算单元,用于计算每一任务队列当前的所有查询任务的预估查询耗时的总值;

队列确认单元,用于将所述预估查询耗时的总值最小的任务队列作为待分配的任务队列;

分配执行单元,用于分配新生成的查询任务到所述待分配的任务队列中。

附图说明

图1是本发明实施例一提供的查询任务的分配方法的流程图;

图2是本发明实施例二提供的查询任务的分配装置的流程图。

具体实施方式

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

参见图1,是本发明实施例一提供的查询任务的分配方法的流程图;该查询任务的分配方法,包括:

s101、获取各任务队列当前的各查询任务的预估查询耗时;其中,所述查询任务为在数据库中查询目标信息的任务;所述任务队列用于存储未执行的查询任务;所述预估查询耗时是根据所述查询任务的特征数据计算得到的;

s102、根据各任务队列当前的各查询任务的预估查询耗时,分配新生成的查询任务到其中一个所述任务队列中。

具体地,预估查询耗时的计算方法为:将所述查询任务的特征数据代入预先配置的数据模型,计算所述查询任务的预估查询耗时;其中,所述数据模型是用多个历史查询任务作为样本训练得到的;每一个历史查询任务对应一个样本,每个样本包括一组特征数据和一个实际查询耗时。

作为其中一种实施方式,所述数据模型为线性回归预测模型。线性回归预测模型是一种简单的预测模型,有利于进一步提高服务器的处理效率。具体地,采用线性回归预测,可设定假设函数描述查询耗时与各特征数据的关系,如下为假设函数:

其中,表示第i个样本的第j个特征数据,θj表示第j个特征数据的参数,n为一个样本的特征数据的数量。在本实施例中,采用最小二乘法获得特征数据的参数集。首先定义代价函数j(θ):

为了得到特征数据的参数最优解,使j(θ)最小化,可求得解析解:

其中,x为m行n列的矩阵,为m维列向量;x的第i行第j列元素为第i个样本的第j个特征数据,的第i个分量为第i个样本的实际查询耗时。至此得到了可应用于计算预估查询耗时的数据模型公式:

y(i)=θtx(i);其中,

在上述数据模型公式中,y(i)为预估查询耗时;θ与x(i)均为n维列向量,n是一个查询任务的特征数据的数量;x(i)的第j个分量为待预估的查询任务的第j个特征数据。

在模型训练好后,当用户发起一个查询请求,服务器即采集该查询请求对应的查询任务的特征数据用于后续的预算,具体地,所述特征数据可包括服务器性能的特征数据、任务内容的特征数据和/或数据库属性的特征数据;其中,所述服务器性能的特征数据可包括内存性能数据、cpu性能数据、i/o性能数据或网络状态数据中的一种或多种;所述任务内容的特征数据包括表数量、内连接数量、外连接数量、交叉连接数量、是否排序或是否分组中的一种或多种;所述数据库属性的特征数据包括数据库数据总条数、每张表的数据条数或各表的数据条数中位数中的一种或多种;根据特征数据即可算出预估查询耗时。

具体地,作为其中一种实施方式,步骤s102、根据各任务队列当前的各查询任务的预估查询耗时,分配新生成的查询任务到其中一个所述任务队列中,可根据各任务队列当前的所有查询任务的预估查询耗时的总值,确认一个待分配的任务队列,分配新生成的查询任务到所述待分配的任务队列中。具体步骤包括:

计算每一任务队列当前的所有查询任务的预估查询耗时的总值;

将所述预估查询耗时的总值最小的任务队列作为待分配的任务队列;

分配新生成的查询任务到所述待分配的任务队列中。

显然,除了上述实施方式,本领域技术人员也可使用其他实施方式根据各任务队列当前的各查询任务的预估查询耗时,分配查询任务。比如,计算每一任务队列当前的所有查询任务的预估查询耗时的总值;若预估查询耗时的总值不超过预设的阈值,按照各任务队列的查询任务个数,分配新生成的查询任务到其中一个所述任务队列中;若预估查询耗时的总值超过预设的阈值,则将所述预估查询耗时的总值最小的任务队列作为待分配的任务队列,分配新生成的查询任务到所述待分配的任务队列中。或者,计算每一任务队列当前的所有查询任务的预估查询耗时的总值以及,当前在执行的查询任务的剩余查询耗时,将所述预估查询耗时的总值与当前在执行的查询任务的剩余查询耗时之和最小的任务队列作为待分配的任务队列,分配新生成的查询任务到所述待分配的任务队列中。又或者,提取预估查询耗时大于预设的阈值的查询任务,计算被提取的查询任务的预估查询耗时的总值,将所述总值最小的任务队列作为待分配的任务队列,分配新生成的查询任务到所述待分配的任务队列中。

本发明实施例一提供的查询任务的分配方法,根据查询任务的预估查询耗时来分配查询任务到任务队列中,因此各任务队列的查询总耗时能保持相近的状态,使得查询任务不会在任务队列中长时间地等待,能及时地得到处理,提高了服务器对查询任务的处理效率。

参见图2,是本发明实施例二提供的查询任务的分配装置的流程图,包括:

获取模块201,用于获取各任务队列当前的各查询任务的预估查询耗时;其中,所述查询任务为在数据库中查询目标信息的任务;所述任务队列用于存储未执行的查询任务;所述预估查询耗时是根据所述查询任务的特征数据计算得到的;

分配模块202,用于根据各任务队列当前的各查询任务的预估查询耗时,分配新生成的查询任务到其中一个所述任务队列中。

进一步地,所述预估查询耗时的计算装置包括:

耗时计算模块,用于将所述查询任务的特征数据代入预先配置的数据模型,计算所述查询任务的预估查询耗时;其中,所述数据模型是用多个历史查询任务作为样本训练得到的;每一个历史查询任务对应一个样本,每个样本包括一组特征数据和一个实际查询耗时。

作为其中一种实施方式,所述数据模型为线性回归预测模型;

所述数据模型公式为:y(i)=θtx(i)

其中,y(i)为预估查询耗时;θ与x(i)均为n维列向量,n是一个查询任务的特征数据的数量;x(i)的第j个分量为待预估的查询任务的第j个特征数据;且:其中,x为m行n列的矩阵,为m维列向量;x的第i行第j列元素为第i个样本的第j个特征数据,的第i个分量为第i个样本的实际查询耗时。

为作为其中一种实施方式,所述分配模块包括:

耗时计算单元,用于计算每一任务队列当前的所有查询任务的预估查询耗时的总值;

队列确认单元,用于将所述预估查询耗时的总值最小的任务队列作为待分配的任务队列;

分配执行单元,用于分配新生成的查询任务到所述待分配的任务队列中。

进一步地,所述特征数据包括服务器性能的特征数据、任务内容的特征数据和数据库属性的特征数据;

所述服务器性能的特征数据包括内存性能数据、cpu性能数据或i/o性能数据;

所述任务内容的特征数据包括表数量、内连接数量、外连接数量或交叉连接数量;

所述数据库属性的特征数据包括数据库数据总条数、每张表的数据条数或各表的数据条数中位数。

本发明实施例二提供的查询任务的分配装置,根据查询任务的预估查询耗时来分配查询任务到任务队列中,因此各任务队列的查询总耗时能保持相近的状态,使得查询任务不会在任务队列中长时间地等待,能及时地得到处理,提高了服务器对查询任务的处理效率。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

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