一种支持分布式数据库基于并行查询的方法技术

技术编号:4093396 阅读:247 留言:0更新日期:2012-04-11 18:40
一种分布式数据库的并行查询方法,它通过引入proxy、qcs模块的设计使查询系统具有了支持高并发性、分布式数据库的能力,能满足大型应用系统的要求。同时通过对查询任务“分而治之”的思想,由qcs模块多并发发起查询,优先返回查询速度快的粒度数据,从而达到了系统整体查询性能显著提升的效果,可以满足绝大多数应用系统快速查询的需要。

【技术实现步骤摘要】

本专利技术涉及一种业务应用软件领域中的数据库查询方法,尤其是一种基于并行化 处理手段实现对分布式数据库进行快速查询的方法,具体地说是一种分布式数据库的并行 查询方法。
技术介绍
目前,对于大型的业务应用系统,数据量大多在100T级别以上,对于如此大数据 量的环境下,如何给终端用户提供快速查询将变得越来越重要。传统的查询模式如图1所示。应用层进行一个复杂的查询需要经过多次到数据库 的交互,如果DBMS (数据库服务器)存在多个,则应用程序另外需要遍历多个数据库服务器, 最终才能把数据显示给用户。在不考虑数据库优化及SQL (结构化查询语言)优化的前提 下,这种查询模式存在如下的缺点1.由于是串行同步处理查询请求,对于复杂的或者命中数据量较大的查询,必然会导 致整体查询延迟比较长,最终用户无法忍受。如果采用分批数据返回的形式,一方面,大大 增加了编程的复杂性。另一方面,无法进行预读处理,影响翻页性能。2.在串行查询的过程中,遇到某个DBMS负荷过大或者故障,容易导致查询时间较 长,将影响最终的响应速度。3.用户需要进行多类别数据查询时,应用程序不得不增加嵌套查询,容易导致编 程复杂并增加查询延迟。4.为了减少数据库节点,以避免交互过多,需要增加数据库服务器的硬件成本, 无法使用更廉价的服务器;目前随着数据库技术的发展,出现了基于并行技术的数据库,如greenplum,因此如何 利用现有的基于并行技术的数据库加快数据的查询是提高查询效率的关键。
技术实现思路
本专利技术的目的是针对现有的查询方法难以适应大数据量查询速度要求的问题,发 明一种能快速实现查询并及时返回查询结果的分布式数据库的并行查询方法。本专利技术的技术方案是一种分布式数据库的并行查询方法,其特征是首先,设置查询代理模块(proxy),使查询代理模块直接接收外部模块的查询命令;其次,设置多个与查询代理模块相关联的查询核心模块(qcs),数据查询核心模块 (qcs)通过分解任务提供对数据多维的粒度查询,提高整体的响应速度,查询核心模块 (qcs)通过多线程技术,多并发查询数据库(dbms),充分发挥商用数据库的高吞吐量、高并 发的特点,同时对多线程进行协调控制,查询流程管理;第三,采用分批数据返回的形式并采用预读机制,提高响应速度。3所述的采用分批数据返回是指业务层通过上下翻页的形式进行分批数据查询,类 似google查询,通过预读取机制,快速给业务层返回数据。所述的查询代理模块用于对外提供外部查询接口,对内把查询请求根据负荷分担 的原则轮流分发到查询核心模块(qcs)处理并把查询结果返回给外部模块;对于查询有权 限控制需求的应用,也可以在查询代理模块中做权限控制。所述的查询核心模块(qcs)互相独立,用于对所有在线数据库进行查询,采用多 查询核心模块(qcs)机制可以对上层请求进行负荷分担(此为第一级分发),以便提高系统 的并发处理性能,另外也避免了单点故障问题;查询核心模块(qcs)采用多线程技术,对 收到的查询请求根据用户的查询数据类别、时间段粒度、数据库节点数灵活进行分发查询 (此为第二级分发);对查询的结果记录可以采用全内存保存(支持动态回收内存),也可以 通过file mapping映射成文件,便于对查询结果数据进行二次检索和操作;查询核心模块 (qcs)需要定时对查询代理模块(proxy)进行心跳,以便查询代理模块(proxy)实时了解当 前在线的查询核心模块(qcs)。本专利技术的有益效果1.灵活支持业务应用多粒度多维度的查询请求,通过二次分发,充分发挥商用数据库 高并发性、高吞吐量的特点。2.程序便于部署,通过多模块支持,可以满足业务高并发性的要求。3.优先返回查询最快的部分数据,提供快速查询响应支持。4.通过预读取机制,可以迅速完成上下翻页查询请求。5.模块单点故障不影响整体查询功能,具有高可靠性。6.支持分布式数据库,可满足大型应用系统的要求。7.完备的日志记录,可以迅速诊断查询问题及数据库告警。8.数据库端不要求很高的硬件配置,通过并行处理在中低端的服务器上也能得到 较好的查询性能,降低成本;9.提供类似google的分批查询,可以给用户提供良好的操作体验。10.本专利技术基于并行处理的思想,把大任务“分而治之”,根据用户多样的查询需 求,多粒度发起查询,优先返回查询最快的数据,显著提高了查询效率。附图说明图1是传统的数据查询模式结构示意图。图2是本专利技术方法的查询系统架构图。图3为本专利技术方法的查询流程图。图4是本专利技术的查询核心模块(qcs)针对查询(首次、翻页)的具体流程示意图。 具体实施例方式下面结合附图和实施例对本专利技术作进一步的说明。如图2-4所示。—种分布式数据库的并行查询方法,它包括以下步骤首先,设置查询代理模块(proxy),使查询代理模块直接接收外部模块的查询命令;4其次,设置多个与查询代理模块相关联的查询核心模块(qcs),两者构成的查询系统架 构请参考图2,数据查询核心模块(Qcs)通过分解任务提供对数据多维的粒度查询,提高整 体的响应速度,查询核心模块(qcs)通过多线程技术,多并发查询数据库(dbms),充分发挥 商用数据库的高吞吐量、高并发的特点,同时对多线程进行协调控制,查询流程管理;第三,对查询结果采用分批数据返回的形式并采用预读机制,提高响应速度,以缩短大 数据量查询结果的首次相应时间。其中u查询代理模块(proxy)查询代理模块的作用是对外提供外部查询接口,对内把查询请求根据负荷分担的原则 轮流分发到qcs模块处理并把查询结果返回给外部模块(为了避免成为瓶颈,也需要多线 程返回查询记录)。对于查询有权限控制需求的应用,也可以在这一层做权限控制。u查询核心模块(qcs)各查询核心模块之间互相独立,提供对所有在线数据库的查询能力。采用多模块机制 可以对上层请求进行负荷分担(此为第一级分发),以便提高系统的并发处理性能。另外也 避免了单点故障问题。该模块采用多线程技术,对收到的查询请求根据用户的查询数据类 别、时间段粒度、数据库节点数等灵活进行分发查询(此为第二级分发)。对查询的结果记录 可以采用全内存保存(支持动态回收内存),也可以通过file mapping映射成文件,便于对 查询结果数据进行二次检索和操作。qcs模块需要定时对proxy模块进行心跳,以便proxy 实时了解当前在线的qcs模块。所述的心跳即状态通知消息,用于qcs定时上报自身的状 态,便于proxy知道当前状态正常的qcs都有哪些。u查询代理模块(proxy)和查询核心模块(qcs)的消息交互如图3所示 301,外部模块构造查询条件对proxy发起新的查询请求。302,proxy模块收到查询请求后,轮循找一个状态正常的qcs模块,发送查询消 息,并在本地记录本次查询,以便进行超时控制。303,qcs模块通过并行方式查询到结果记录后就发送回proxy模块,并记录当前 发送的条数,当达到每页条数限制后就发送结束消息。304,proxy把查询结果转发给外部模块,并删除本地查询记录节点。305,外部模块发起上下翻页查询请求给proxy。306,proxy把上下翻页查询请求发送给全部的qcs模块(注proXy不记录上次发 送的qcs节点,以免p本文档来自技高网...

【技术保护点】
一种支持分布式数据库基于并行查询的方法,其特征是:首先,设置查询代理模块(proxy),使查询代理模块直接接收外部模块的查询命令;其次,设置多个与查询代理模块相关联的查询核心模块(qcs),数据查询核心模块(qcs)通过分解任务提供对数据多维的粒度查询,提高整体的响应速度,查询核心模块(qcs)通过多线程技术,多并发查询数据库(dbms),充分发挥商用数据库的高吞吐量、高并发的特点,同时对多线程进行协调控制,查询流程管理;第三,采用分批数据返回的形式并采用预读机制,提高响应速度。

【技术特征摘要】
一种支持分布式数据库基于并行查询的方法,其特征是首先,设置查询代理模块(proxy),使查询代理模块直接接收外部模块的查询命令;其次,设置多个与查询代理模块相关联的查询核心模块(qcs),数据查询核心模块(qcs)通过分解任务提供对数据多维的粒度查询,提高整体的响应速度,查询核心模块(qcs)通过多线程技术,多并发查询数据库(dbms),充分发挥商用数据库的高吞吐量、高并发的特点,同时对多线程进行协调控制,查询流程管理;第三,采用分批数据返回的形式并采用预读机制,提高响应速度。2.根据权利要求1所述的方法,其特征是所述的采用分批数据返回是指业务层通过上 下翻页的形式进行分批数据查询,通过预读取机制,快速给业务层返回数据。3.根据权利要求1所述的方法,其特征是所述的查询代理模块用于对外提供外部查询 接口,对内把查询请求根据...

【专利技术属性】
技术研发人员:王春
申请(专利权)人:南京中兴特种软件有限责任公司
类型:发明
国别省市:84[中国|南京]

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

1