一种海量数据高性能读取显示方法

文档序号:7684157阅读:199来源:国知局
专利名称:一种海量数据高性能读取显示方法
技术领域
本发明涉及通信网管系统中的海量数据的存取,尤其涉及通信网管系统中 海量数据的高性能显示。
技术背景在现实社会里,尤其在通信网管领域中经常存在着对海量数据进行查询显示 的需求。然而,面对海量级别的数据,我们首先要考虑的问题便是性能,目前 为提高海量数据的操作性能,而采取的应对措施主要包括选用优秀的数据库 工具,优化査询SQL语句,加大虚拟内存,对数据进行分区操作,建立广泛的 索引,利用分页技术进行分批处理,使用临时表和中间表,使用数据仓库和多 维数据库存储,使用采样数据进行数据挖掘,升级硬件等策略。然而,这些策略的实现都需要巨大的成本投入,要么增加资金投入,升级 软硬件;要么提高对开发人员的要求,因为优化工作需要很高的技巧和丰富的 经验。并且以上各种方法都是对这一问题的局部解决方法,未能从整体上形成 一个充分利用现有系统资源和计算能力,解决性能问题的整体架构方案。 发明内容本发明所要解决的问题是提供一种海量数据高性能读取显示方法,即在现 有资源下,对客户端发送的每一个海量数据的査询请求,采用映射査找算法先 到系统缓存中进行查找;查找步骤如下a) 在地址映射表中采用映射查找算法进行,通过维护一个"请求"与"地 址"的映射表,采用二叉树査找算法进行查询,查找请求所对应的地址,然后 到相应的数据区取出数据区中对应的"块";b) 读块的过程中,采用"跳转迭代算法";c) 数据未在缓存中命中,从后台数据库中采用"软RAID技术"读取第一 块数据到缓存;d) 当缓存中数据区满时,采用LRU和LFR替换算法,清洗数据区。 步骤a中"块"的大小等于客户端一页所能呈现的数据量。步骤b中的"跳转迭代算法"是采用异步的push与pull的技术,所谓push 是将命中的块返回到客户端,同时异步调用一个从后台pull下一块数据的函数,即用户请求回显第一块数据与用户请求下一块数据是同时进行的,当用户发出 请求下一页数据的命令时,下一块数据已经被pull到缓存中,从而跳转迭代地 实现用户从高速缓存中读取数据的效果。步骤c中的"软RAID技术",是用软件实现了类似于硬件RAID的技术以 提高读写数据库的速度。步骤d中采用LRU和LFR替换算法,清洗数据区,是设定系统运行不够稳 定的初始化时间,段使用LRU算法,系统达到稳定状态后,使用LFU算法。本发明的优异效果是充分挖掘客户端,高速缓存,数据库三层潜在的计算能力,客户端主要负 责数据请求的发送和回送数据的显示,高速缓存采用优化的分区结构,包括映 射表区和数据区,采用"跳转迭代算法"实现异步的向前台push本次査询数 据,同时向后台pull下一个指定大小的数据块,对数据区使用经过优化的LRU 算法(最近最少使用算法),从而大大提高缓存数据的命中率,其平均命中率 将达到90%以上;数据库主要用于数据的格式化存储,经过"软RAID技术", 提高了并发性,从而显著的改善了数据库访问的性能,采用本发明可以在几乎 无成本增加的情况下,实现如下功能(1):客户端无延时显示;(2):高性能的并发访问;(3):数据的高 吞吐量。


图1是海量数据高性能读取显示流程图。
具体实施方式
本发明的一种海量数据高性能读取显示方法的具体实施步骤如下 1. 1客户端发送一个海量数据的查询请求,首先到系统缓存中进行査找,其 查找过程采用映射査找算法。映射査找算法 一般的映射査找算法,大都采用 映射表的实现形式,在这里我们也需要借助于映射表,但是映射表是采用交集 或者并集算法映射的形式来组织的,比如要査询age〉18, salary〉3000的人员, 首先进行一次"爬行操作",为每一个块进行编号,假如age〉18的人员在块号 为l, 3, 5, 7, 9的块上,Salary〉3000的人员在2, 3, 6, 8, 9的块上,我们要査找的数据实际在这两部分的交集或者并集等集合上,也就是块3, 9上,在针对3, 9块,再应用交集,或者并集算法,这样可以针对有效的块进行交 并集运算,而不是对所有数据进行运算,从而有效的提高了査询速率。1.2如果在地址映射表中,査找到了请求所对应的地址,说明请求在缓存中 命中,则到相应的数据区,取出数据区中对应的"块"。1.3读块的过程中,采用"跳转迭代算法"。跳转迭代算法是采用异步 的push与pull的技术,所谓push就是将命中的块返回到客户端,因为客户端正好呈现一块数据,从而用户看到申请的第一页数据,因为整个过程不涉及与 数据库的连接,所以其速度可以达到"客户端无延时显示"的效果,同时还异步的调用一个从后台pull下一块数据的函数,也就是说,用户请求回显第一块数据,与用户请求下一块数据是同时进行的。当用户发出请求下一页数据的命令时,下一块数据已经被pull到缓存中,从而跳转迭代的实现了用户只从高速缓存中读取数据的效果。1.4如果数据未在缓存中命中,我们从后台数据库中读取第一块数据到缓 存。所有的数据读取操作都采用"软RAID技术",软RAID技术是借鉴了镜像 技术与延展技术,镜像就是在两个或者多个独立的存储区上存放数据的多个拷 贝。系统会同时把数据写在作为镜像的两个存储区上,用来防止数据意外丢失。 当其中一个存储区出现问题,系统可以访问镜像的存储区来继续工作,这样就 让数据修复的时间縮短到了最短,此时你要做的就是从完好的备份上恢复数据, 延展技术通过把数据分布到阵列的所有存储区上——而延展技术的主要原理是 并行处理。假如你在一个单独的存储区上有个非常大的文件,如果要读取它只 能从头到尾的逐一读取。而延展技术是把它分成小块分别存储在多个存储区上, 读取的时候就可以从多个存储区里同时调用。同样道理当你写入数据——特别 是大数据的时候也是这样的。传输性能将能明显的提高,在此处将两种技术结 合,把两者结合,可以有效提高数据访问的稳定性与性能。1.5当缓存中数据区满时,采用LRU和LFR替换算法,清洗数据区,经过优 化的LRU和LFU替换算法LRU算法利用上一次访问的访问时间特性,对访问特 性的变化比较敏感,但没有考虑数据访问的全局特性;LFU算法则使用所有访问 的频率信息,考虑数据访问的整体特性,但不能适应数据访问模式的变化和阵 发性的访问.它们分别代表了两个极端.在此处我们将两者结合起来。在系统初始阶段,对数据的访问不稳定,具有一定的震荡性.这时cache对访问时间特性 比较敏感,所以,在这个时间段内替换算法结合数据访问的时间信息,增强了 对访问变化的适应性,随时间的推移,系统运行逐步稳定,就过渡到以访问频 率信息为主,LFU算法中使用的是过去对数据对象所有的访问的统计次数,当数 据不再使用时,过去的使用信息依然起作用,造成"陈旧"的数据滞留在cache 中,就是所谓的cache "污染"问题,我们用周期法来屏蔽过去陈旧的统计数据, 并使用线性预测法加速陈旧数据的淘汰,从而解决了 cache污染问题,可以根 据系统运行环境的具体情况设定一个初始化时间段.在这段时间内,系统的运行 不够稳定,就使用LRU算法;此后系统达到稳定状态,使用LFU算法。 实施例步骤1. 1中的映射查找算法,通过维护一个"请求"与"地址"的映射表, 釆用交集定位的方式来加快査找速率。步骤1.2中"块"大小是经过严格定义的,"块"大小等于客户端一页所 能呈现的数据量,从而达到最佳匹配。步骤1. 3中"跳转迭代算法"采用了异步的push与pull的技术,所谓push 就是将命中的块返回到客户端,因为客户端正好呈现一块数据,从而用户看到 申请的第一页数据,因为整个过程不涉及与数据库的连接,所以其速度可以达 到"客户端无延时显示"的效果,同时还异步的调用一个从后台pull下一块数 据的函数,也就是说,用户请求回显第一块数据,与用户请求下一块数据是同 时进行的。当用户发出请求下一页数据的命令时,下一块数据已经被pull到缓 存中,从而跳转迭代的实现了用户只从高速缓存中读取数据的效果。步骤1.4中,采用了的"软RAID技术",是通过软件来实现 类似于硬件RAID的技术,从而并发的读取数据,大大提高了读写数据库的速度。步骤1. 5中,采用了经过我们优化的LRU和LFU交替算法。采用本发明所述方法,与现有技术相比,可以用一种低成本的软件架构来解 决目前难以实现的海量数据性能问题。由于本发明采用了按功能分区的高速 缓存,跳转迭代算法,软RAID等自主创新技术,并且将这些技术封装到一个高 性能的框架中,因此可以充分的释放现有资源的潜能,从而可以实现相同效果, 成本最低的要求。
权利要求
1、一种海量数据高性能读取显示方法,其特征在于对客户端发送的每一个海量数据的查询请求,采用映射查找算法先到系统缓存中进行查找;查找步骤如下a)在地址映射表中采用映射查找算法进行,通过维护一个“请求”与“地址”的映射表,采用二叉树查找算法进行查询,查找请求所对应的地址,然后到相应的数据区取出数据区中对应的“块”;b)读块的过程中,采用“跳转迭代算法”;c)数据未在缓存中命中,从后台数据库中通过“软RAID技术”读取第一块数据到缓存;d)当缓存中数据区满时,采用LRU和LFR替换算法,清洗数据区。
2、 根据权利要求1所述的整体架构,其特征在于,步骤a中"块"的大 小等于客户端一页所能呈现的数据量。
3、 根据权利要求1所述的整体架构,其特征在于,步骤b中的"跳转迭代 算法"是采用异步的push与pull的技术,所谓push是将命中的块返回到客户 端,同时异步调用一个从后台pull下一块数据的函数,即用户请求回显第一块 数据与用户请求下一块数据是同时进行的,当用户发出请求下一页数据的命令 时,下一块数据已经被pull到缓存中,从而跳转迭代地实现用户从高速缓存中 读取数据的效果。
4、 根据权利要求1所述的整体架构,其特征在于,步骤c中的"软RAID 技术",是用软件实现了类似于硬件RAID的技术以提高读写数据库的速度。
5、 根据权利要求1所述的整体架构,其特征在于,步骤d中采用LRU和LFR 替换算法,清洗数据区,是设定系统运行不够稳定的初始化时间,段使用LRU 算法,系统达到稳定状态后,使用LFU算法。
全文摘要
一种海量数据高性能读取显示方法,能够充分挖掘客户端、高速缓存、数据库三层潜在的计算能力,客户端主要负责数据请求的发送和回送数据的显示,高速缓存采用优化的分区结构,包括映射表区和数据区,采用“跳转迭代算法”实现异步的向前台push本次查询数据,同时向后台pull下一个指定大小的数据块,对数据区使用经过优化的LRU算法,从而大大提高缓存数据的命中率,其平均命中率将达到90%以上;经过“软RAID技术”,提高了并发性,从而显著的改善了数据库访问的性能,解决了客户端无延时显示,高性能的并发访问和数据的高吞吐量等操作海量数据时难以解决的问题,并且这一切都是对现有资源的整合和挖掘,做到了成本最小化。
文档编号H04L12/24GK101236564SQ20081001470
公开日2008年8月6日 申请日期2008年3月3日 优先权日2008年3月3日
发明者公茂强, 张熹微 申请人:浪潮通信信息系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1