[发明专利]查询处理方法和集群数据库系统在审
申请号: | 201310081952.6 | 申请日: | 2013-03-14 |
公开(公告)号: | CN103136363A | 公开(公告)日: | 2013-06-05 |
发明(设计)人: | 宋怀明;王少佳;孙立鹏;苗艳超;刘新春;邵宗有 | 申请(专利权)人: | 曙光信息产业(北京)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京德恒律治知识产权代理有限公司 11409 | 代理人: | 章社杲;孙征 |
地址: | 100193 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 查询 处理 方法 集群 数据库 系统 | ||
技术领域
本发明涉及数据处理技术领域,更具体地,涉及一种查询处理方法和集群数据库系统。
背景技术
在大规模数据密集型系统中,数据通常按照某种策略分布在多个数据库节点。系统中每一个数据库节点都运行一个独立的数据库系统,通过构架上层的服务中间软件,将多个数据库系统虚拟成一个大的单一数据库,对外提供数据访问服务。这些数据访问服务通常包括数据加载,数据查询和数据定义这三种类型。
在对数据库集群进行查询处理时,由于数据分布在多个数据库节点上,因此必须首先在多个数据库节点上同时运行相应的查询计算,最后对各部分的计算结果进行合并,得到最终的查询结果。常见的查询处理方法,就是将数据库集群的查询处理过程分成了两个阶段,第一个阶段在各数据库节点并行执行查询处理,然后将查询结果数据写入到其中的一个控制节点,由控制节点再对各数据库返回的结果进行合并计算。这种方式适合大部分数据量不太大的情况,但是对于海量数据处理的应用场景,两阶段查询处理在控制节点的执行上,就存在了瓶颈。因为单个控制节点,难以对所有数据库返回结果的合并处理,特别是在结果合并需要再次进行统计和分析应用场景中。
此外,数据库集群由于数据量巨大,因此查询处理过程通常较长,执行时间超过几十分钟的查询也经常可见,而节点的故障的情况又不可避免,因此现有的数据查询处理方法不能满足用户的需求。需要一种能够容忍节点故障的可恢复的查询处理机制。
发明内容
为解决现有技术存在的问题,本发明提出了能够更好地满足数据分析和处理需求的查询处理方法和集群数据库系统。
根据本发明的一方面,提供了一种查询处理方法,包括:
查询服务器将接收到的查询请求分解成在多个阶段执行的多个查询任务,并将所述多个查询任务分别发送给相应的多个数据库节点;
所述多个数据库节点执行所述多个查询任务以得到查询结果数据,其中:
所述多个数据库节点中的部分或全部并行执行同一个阶段的同一查询任务,并且每个数据库节点会将其执行某一查询任务得到的查询数据与其他相关联数据库节点执行同一查询任务得到的查询数据合并得到中间查询结果数据;以及,
每个数据库节点保存执行当前查询任务得到的中间查询结果数据并设置一个相应的断点,并且如果一个数据库节点在执行当前查询任务时发生查询处理中断,则该数据库节点在查询处理恢复时,从之前设置的断点之一开始继续执行相对应的查询任务。其中,在一优选实施例中,该数据库节点在该数据库节点在查询处理恢复时,从之前设置的最近的断点开始继续执行相对应的查询任务。
在可选实施例中,所述查询处理方法,还包括:所述多个数据库节点中的部分或全部在获取到执行前一阶段的查询任务得到的中间查询结果数据后,作为输入数据执行当前阶段的查询任务,
在可选实施例中,所述查询处理方法,还包括:所述查询服务器对所述多个数据库节点上运行的查询处理进程的状态进行检测;以及,所述查询服务器在检测到一个数据库节点的查询处理进程出现故障时,从出现故障的数据库节点回收相应的资源,并且为所述出现故障的数据库节点新创建一个查询处理进程以继续执行相对应的查询任务。
在可选实施例中,所述查询服务器对所述多个数据库节点上运行的查询处理进程的状态进行检测,包括:以预设定的检测方式对每个数据库节点上运行的查询处理进程的状态进行检测,其中,所述预设定的检测方式包括在查询处理进程运行开始后经过一段时间间隔开始查询处理进程的状态的检测,以及,后续检测的时间间隔以步进方式递增并且最终稳定在一个固定值。
在可选实施例中,所述查询处理方法还包括:所述多个数据库节点接收到停止查询处理的指令时,关闭其上运行的查询处理进程,并释放运行所述查询处理进程产生的相关资源;和/或,所述查询处理器接收到停止查询处理的指令时,关闭对查询请求执行的进程并回收相应的资源。
在可选实施例中,每个数据库节点保存执行当前阶段的查询任务得到的中间查询结果数据,包括:每个数据库节点采用预设定的标志保存执行当前阶段的查询任务得到的中间查询结果数据,其中,所述预设定的标志包括所执行的查询任务的信息、执行查询任务的数据库节点以及需要所述中间查询结果数据的目的数据库节点。
根据本发明的另一方面,还提供了一种集群数据库系统,包括查询服务器和多个数据库节点,其中,所述查询服务器,用于将接收到的查询请求分解成在多个阶段执行的多个查询任务,并将所述多个查询任务分别发送给相应的多个数据库节点;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于曙光信息产业(北京)有限公司,未经曙光信息产业(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310081952.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:心电信号用于身份识别的方法
- 下一篇:电子设备及其信息呈现方法