[发明专利]一种基于数据分组的内存数据组织查询方法有效
申请号: | 201210461154.1 | 申请日: | 2012-11-15 |
公开(公告)号: | CN103810223A | 公开(公告)日: | 2014-05-21 |
发明(设计)人: | 郭超;李坤;王永炎;罗雄飞;王宏安 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 余长江 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 数据 分组 内存 组织 查询 方法 | ||
技术领域
本发明涉及信息处理技术领域,尤其涉及到数据库管理系统内存数据的组织与查询方法。该方法可以使用于任何关系数据库使用的数据管理领域,尤其是范围查询比较多的数据分析领域。
背景技术
在数据库的应用领域,数据的查询性能是数据库最重要的指标之一。为了提高数据库的查询性能,许多数据的组织管理方法被提出,如hash、B+树、CSB+树等索引结构。这些方法,旨在提高数据的查询的性能。
近年来,随着应用的发展,数据的分析应用越来越多。如在金融领域,分析交易趋势以及统计交易量;在制造业,统计加工量、加工效率;在车辆监控领域,统计某个时间区段的车辆流量等。这些应用中,范围查询是最重要的查询类型之一。在数据的管理查询中,范围查询在数据的分析应用领域占有重要的作用。如,给定一个时间区段,查询该时间段内的交易量或给定一个地区,查询该区域内的交易总量等,都是金融领域里面重要的范围查询。
和精确查询不同,范围查询除了搜索到对应范围需要消耗时间之外,对结果的遍历获取也同样需要大量的时间消耗,尤其是当查询结果比较大的时候,结果获取所需要的时间甚至要大于范围搜索所需要的时间。传统的数据管理方法中的查询优化,往往是针对搜索过程中的性能的优化,而忽略了结果集获取的优化,因此,对范围查询的性能的提高有限。
同时,随着硬件的发展,现代的多核处理器、GPU等提供了更多的并行处理的能力,因此使得在进行数据管理以及更新、查询处理的时候,可以通过更多的并行化来提高处理的性能。
本发明将面向数据的内存管理,尤其是分析应用领域中的范围查询的数据的管理,并利用现代处理器高并行处理能力的特点,提出了基于数据分组的内存数据组织和查询优化方法,并在此基础之上,给出了改数据管理方法的并行的数据插入方法和并行的数据查询方法,从而提高数据查询、尤其是范围查询的性能。
发明内容
传统的内存数据的管理和查询优化方法,主要是针对精确查找的查找过程的优化,而范围查找除了查找过程中的消耗之外,结果的遍历获取过程也是范围查找的重要消耗之一。为此,本发明方案利用现代处理器高并发的特点,面向数据分析应用领域中的范围查询,提出了一种基于数据分组的内存数据组织和查询优化方法,通过提高查询过程中的并行度,有效地提高了范围查询的性能。
为实现上述目的,本发明采用如下技术方案:
一种基于数据分组的内存数据组织查询方法,其特征在于:
1)将数据分成多个具有互相独立的数据组织结构的分组,在每个分组设立独立的插入任务队列、插入线程和查询线程;
2)通过分组选择线程为待插入数据选择一个分组,并将该数据插入到该分组的插入任务队列中;
3)每个插入线程轮询其所属分组的插入任务队列,并将插入任务队列中存在的数据插入到该所属分组内部的数据组织结构中;
4)通过查询任务分发线程将查询任务分发给各分组的查询线程,各查询线程根据其所属分组内部的数据组织结构进行分组内部的数据查询;
5)将各分组的查询结果返回至查询客户端。
进一步地,步骤2)采用基本分组选择的方式,或者采用基本分组选择和轮询相结合的动态分组选择方法。所述基本分组选择的方式可以是按照顺序选择数据分组、随机选择数据分组、根据待插入的值对分组数目进行取余选择分组等。为了防止过度的分组轮询导致系统繁忙,可以为轮询的循环次数限定一阈值,比如设为100次,若达到阈值次数的轮询之后未选择到分组,则分组选择线程进入等待状态,直到初始选择分组的任务队列有空闲。。
进一步地,每个分组可以根据需求创建独立的分组内部的数据组织结构,如hash、B+树等,所有已有的索引结构都可以用作分组内部的数据组织结构。每个分组的数据组织结构相同或者不同。
进一步地,为每一个分组的查询线程设置独立的结果集缓存,分组完成内部的查找并返回结果后,由分组的查询线程直接将对应的缓存输出返回给查询客户端。
本发明具有的优点和有益效果如下:
1、通过并行处理批量连续的数据插入操作,能够有效的提高数据插入的性能;动态的分组选择算法,平衡了各个分组数据之间实际的处理负荷,进一步提高了批量插入的性能;
2、通过数据分组,减少了每个分组内部的数据,提高了分组处理的性能,同时,通过并行的分组查询线程,能够有效地减少整体查询的时间,提高查询性能;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210461154.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:自动调整信号强度的手持装置及其方法
- 下一篇:一种告警确定方法及装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置