用于数据库集群的查询实现方法和装置制造方法及图纸

技术编号:9007823 阅读:166 留言:0更新日期:2013-08-08 02:48
本发明专利技术公开了一种用于数据库集群的查询实现方法和装置,其中,查询实现方法包括以下步骤:在接收到查询请求后,生成与所述查询请求对应的唯一性查询标识,并对所述查询请求进行分析,确定查询子任务;对于每个查询子任务,将该查询子任务以及所述查询标识发送给能够执行该查询子任务的数据库节点;以及接收数据库节点返回的查询结果;此外,在接收到所述查询请求后,生成与所述查询请求对应的参数标识,并将所述参数标识发送至数据库节点;并且,接收到所述参数标识的每个数据库节点,根据接收到的所述参数标识与预先设置的参数窗口调度并执行查询子任务,得到查询结果。本发明专利技术可减少多台数据库服务器之间的相互等待,减小查询处理的响应时间。

【技术实现步骤摘要】
用于数据库集群的查询实现方法和装置
本专利技术涉及通信领域,具体来说,涉及一种用于数据库集群的查询实现方法和装置。
技术介绍
在大规模数据集群中,一个表的数据通常按照某种策略分布在多个数据库节点上,因此查询处理必须在多个数据库节点上同时展开,并对各节点返回的结果进行汇总或合并计算,才能得到最终的查询结果,当系统中有多个并行查询任务在执行时,由于每个数据库节点对查询任务的调度是相互独立的,因此可能造成不同节点上对多个查询任务的调度顺序的不同,通常一个并行查询任务的完成,总是要依赖于所有参与查询处理的节点中最慢的一个。图1是相关技术中数据库集群查询调度的实例。如图1所示,节点1、节点2、节点3表示服务器,A、B、C、D表示查询任务,在图1所示的查询任务调度方式中,每个任务独立调度,因此,在每个节点上,查询任务执行的顺序是不同的,假设每个任务在单个数据库节点上的子任务的执行时间是t,则在图1中,各节点独立调度时查询任务的完成时间是:TA=4t,TB=4t,TC=3t,TD=4t,平均等待时间是3.75t。对于数据库集群,因为其存在一定的特殊性,所采用的查询方案仍旧是独立调度的方式,任务的完成受限于最慢的执行节点,导致查询的效率较低,等待时间较长。
技术实现思路
针对相关技术中独立调度方法导致查询任务的执行总是受限于最慢的执行节点,导致查询的等待时间较长的问题,本专利技术提出了一种用于数据库集群的查询实现方法和装置,其能够很好的解决多个数据库节点之间同步执行控制的问题,并且能够缩短并发查询的平均等待时间(最高能缩短50%)。为实现上述目的,根据本专利技术的一个方面,提供了一种用于数据库集群的查询实现方法,包括以下步骤:在接收到查询请求后,生成与查询请求对应的唯一性查询标识,并对查询请求进行分析,确定查询子任务;对于每个查询子任务,将该查询子任务以及查询标识发送给能够执行该查询子任务的数据库节点;以及接收数据库节点返回的查询结果。其中,在接收到查询请求后,还生成与查询请求对应的参数标识,并将参数标识发送至数据库节点;并且,接收到参数标识的每个数据库节点,根据接收到的参数标识与预先设置的参数窗口调度并执行查询子任务,得到查询结果。此外,根据接收到的参数标识与预先设置的参数窗口调度并执行查询子任务包括:数据库节点采用预定参数窗口宽度对接收到的所有查询子任务进行划分,得到多个参数窗口;数据库节点根据参数标识和预定参数窗口宽度确定每个查询子任务对应的参数窗口;以及数据库节点依次调度并执行每个参数窗口内的查询子任务。其中,参数标识为时间标识,参数窗口为时间窗口,其中,生成与查询请求对应的参数标识包括:根据接收到查询请求的时间生成时间标识。此外,根据接收到的参数标识与预先设置的参数窗口调度并执行查询子任务包括:在每个时间窗口内,根据查询标识的大小进行排序,并根据排序结果优先调用并执行最小的查询标识所对应的查询子任务。相应地,本专利技术提供了一种用于数据库集群的查询实现装置,包括:处理模块,用于在接收查询请求之后,生成与查询请求对应的唯一性查询标识,并且用于对查询请求进行分析,确定查询子任务;发送模块,用于将查询子任务以及查询标识发送给能够执行该查询子任务的数据库节点;接收模块,用于接收数据库节点返回的查询结果。其中,处理模块还用于在接收到查询请求后生成与查询请求对应的参数标识;并且,发送模块还用于将参数标识发送至数据库节点。其中,参数标识为时间标识,参数窗口为时间窗口,处理模块用于根据接收到查询请求的时间生成时间标识;参数标识用于确定在数据库节点上每个查询子任务对应的参数窗口,以便数据库节点依次调度并执行每个参数窗口内的查询子任务。此外,本专利技术提供了一种用于数据库集群的查询实现装置,还包括:窗口确定模块,位于数据库节点侧,用于根据预定参数窗口宽度对数据库节点所接收到的所有查询子任务进行划分,得到多个参数窗口;并根据参数标识和预定参数窗口宽度确定每个查询子任务对应的参数窗口。调度执行模块,位于数据库节点侧,用于根据接收到的参数标识与预先设置的参数窗口调度并执行查询子任务,得到查询结果。本专利技术通过采用查询标识和时间窗口进行查询实现,让所有的数据库服务器在同一时刻服务于同一查询子任务,减少了多台数据库服务器之间因调度顺序不同带来的相互等待,有效地在数据库集群中实现了协同调度查询,从而减少了查询处理的响应时间。另外,由于查询标识和时间标识都只是在处理模块统一生成的,因此本专利技术在调度相同任务执行时,各数据库节点之间不需要额外通讯,节省了系统内的信令开销,使得系统具有良好的扩展性能,能够实现查询的并行执行,缩短查询的等待时间,并且可以适应超大规模的数据库集群系统。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据相关技术的查询独立调度的原理示意图;图2是根据本专利技术实施例的用于数据库集群的查询实现方法的流程图;图3是根据本专利技术实施例的各数据库节点原始查询任务序列的示意图;图4是根据本专利技术实施例的各数据库节点采用时间窗口划分查询任务序列的示意图;图5是根据本专利技术实施例的各时间窗口内划分后的查询任务序列进行排序的示意图;图6是根据本专利技术实施例的用于数据库集群的查询实现装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本专利技术保护的范围。根据本专利技术的实施例,提供了一种用于数据库集群的查询实现方法,如图2所示,该方法包括:步骤S201,在接收到查询请求后,生成与查询请求对应的唯一性查询标识,并对查询请求进行分析,确定查询子任务;步骤S203,对于每个查询子任务,将该查询子任务以及查询标识发送给能够执行该查询子任务的数据库节点;以及步骤S205,接收数据库节点返回的查询结果。该方法可以进一步包括:在接收到查询请求后,生成与查询请求对应的参数标识,并将参数标识发送至数据库节点;并且,接收到参数标识的每个数据库节点,根据接收到的参数标识与预先设置的参数窗口调度并执行查询子任务,得到查询结果。此外,根据接收到的参数标识与预先设置的参数窗口调度并执行查询子任务包括:数据库节点采用预定参数窗口宽度对接收到的所有查询子任务进行划分,得到多个参数窗口;数据库节点根据参数标识和预定参数窗口宽度确定每个查询子任务对应的参数窗口;以及数据库节点依次调度并执行每个参数窗口内的查询子任务。其中,参数标识为时间标识,参数窗口为时间窗口,其中,生成与查询请求对应的参数标识包括:根据接收到查询请求的时间生成时间标识。此外,根据接收到的参数标识与预先设置的参数窗口调度并执行查询子任务包括:在每个时间窗口内,根据查询标识的大小进行排序,并根据排序结果优先调用并执行最小的查询标识所对应的查询子任务。并且,对于不同的时间窗口内,对应的时间窗口较早的查询子任务先执行。此外,唯一性查询标识为一个无本文档来自技高网...
用于数据库集群的查询实现方法和装置

【技术保护点】
一种用于数据库集群的查询实现方法,其特征在于,包括以下步骤:在接收到查询请求后,生成与所述查询请求对应的唯一性查询标识,并对所述查询请求进行分析,确定查询子任务;对于每个查询子任务,将该查询子任务以及所述查询标识发送给能够执行该查询子任务的数据库节点;以及接收数据库节点返回的查询结果。

【技术特征摘要】
1.一种用于数据库集群的查询实现方法,其特征在于,包括以下步骤:在接收到查询请求后,生成与所述查询请求对应的唯一性查询标识和时间标识,并对所述查询请求进行分析,确定查询子任务;对于每个查询子任务,将该查询子任务以及所述唯一性查询标识发送给能够执行该查询子任务的数据库节点;以及接收数据库节点返回的查询结果;其中,执行查询子任务包括:在每个时间窗口内,根据唯一性查询标识的大小进行排序,并根据排序结果优先调用并执行最小的唯一性查询标识所对应的查询子任务;在接收到所述查询请求后,生成与所述查询请求对应的参数标识,并将所述参数标识发送至数据库节点;并且,接收到所述参数标识的每个数据库节点,根据接收到的所述参数标识与预先设置的参数窗口调度并执行查询子任务,得到查询结果;其中,所述参数标识为时间标识,所述参数窗口为时间窗口;数据库节点根据所述参数标识和预定参数窗口宽度确定每个查询子任务对应的参数窗口;以及数据库节点依次调度并执行每个参数窗口内的查询子任务。2.根据权利要求1所述的查询实现方法,其特征在于,根据接收到的所述参数标识与预先设置的参数窗口调度并执行查询子任务包括:数据库节点采用预定参数窗口宽度对接收到的所有查询子任务进行划分,得到多个参数窗口。3.根据权利要求2所述的查询实现方法,其特征在于,生成与所述查询请求对应的参数标识包括:根据接收到所述查询请求的时间生成所述时间标识。4.根据权利要求3所述的查询实现方法,其特征在于,根据接收到的所述参数标识...

【专利技术属性】
技术研发人员:宋怀明王勇苗艳超刘新春邵宗有
申请(专利权)人:曙光信息产业北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1