CN101236564A - 一种海量数据高性能读取显示方法 - Google Patents
一种海量数据高性能读取显示方法 Download PDFInfo
- Publication number
- CN101236564A CN101236564A CNA2008100147049A CN200810014704A CN101236564A CN 101236564 A CN101236564 A CN 101236564A CN A2008100147049 A CNA2008100147049 A CN A2008100147049A CN 200810014704 A CN200810014704 A CN 200810014704A CN 101236564 A CN101236564 A CN 101236564A
- Authority
- CN
- China
- Prior art keywords
- data
- algorithm
- client
- blocks
- piece
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000008569 process Effects 0.000 title claims abstract description 12
- 238000005516 engineering process Methods 0.000 claims abstract description 25
- 238000013507 mapping Methods 0.000 claims abstract description 20
- 230000000694 effects Effects 0.000 claims description 8
- 238000010845 search algorithm Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 5
- 238000004140 cleaning Methods 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 230000010354 integration Effects 0.000 abstract 1
- 238000005065 mining Methods 0.000 abstract 1
- 238000005192 partition Methods 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 3
- 230000009514 concussion Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001314 paroxysmal effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种海量数据高性能读取显示方法,能够充分挖掘客户端、高速缓存、数据库三层潜在的计算能力,客户端主要负责数据请求的发送和回送数据的显示,高速缓存采用优化的分区结构,包括映射表区和数据区,采用“跳转迭代算法”实现异步的向前台push本次查询数据,同时向后台pull下一个指定大小的数据块,对数据区使用经过优化的LRU算法,从而大大提高缓存数据的命中率,其平均命中率将达到90%以上;经过“软RAID技术”,提高了并发性,从而显著的改善了数据库访问的性能,解决了客户端无延时显示,高性能的并发访问和数据的高吞吐量等操作海量数据时难以解决的问题,并且这一切都是对现有资源的整合和挖掘,做到了成本最小化。
Description
技术领域
本发明涉及通信网管系统中的海量数据的存取,尤其涉及通信网管系统中海量数据的高性能显示。
背景技术
在现实社会里,尤其在通信网管领域中经常存在着对海量数据进行查询显示的需求。然而,面对海量级别的数据,我们首先要考虑的问题便是性能,目前为提高海量数据的操作性能,而采取的应对措施主要包括:选用优秀的数据库工具,优化查询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的人员在块号为1,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等自主创新技术,并且将这些技术封装到一个高性能的框架中,因此可以充分的释放现有资源的潜能,从而可以实现相同效果,成本最低的要求。
Claims (5)
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算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100147049A CN101236564A (zh) | 2008-03-03 | 2008-03-03 | 一种海量数据高性能读取显示方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100147049A CN101236564A (zh) | 2008-03-03 | 2008-03-03 | 一种海量数据高性能读取显示方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101236564A true CN101236564A (zh) | 2008-08-06 |
Family
ID=39920182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100147049A Pending CN101236564A (zh) | 2008-03-03 | 2008-03-03 | 一种海量数据高性能读取显示方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101236564A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101887398A (zh) * | 2010-06-25 | 2010-11-17 | 浪潮(北京)电子信息产业有限公司 | 一种动态提高服务器输入输出吞吐量的方法和系统 |
CN101901264A (zh) * | 2010-07-27 | 2010-12-01 | 浙江大学 | 一种在固态硬盘上进行海量数据并行扫描的调度方法 |
CN102087634A (zh) * | 2011-01-27 | 2011-06-08 | 凌阳科技股份有限公司 | 用于提高缓存命中率的装置及方法 |
WO2012025058A1 (zh) * | 2010-08-26 | 2012-03-01 | 腾讯科技(深圳)有限公司 | 大数据量消息管理方法和装置 |
CN104391876A (zh) * | 2014-10-30 | 2015-03-04 | 北京思特奇信息技术股份有限公司 | 一种静态数据存储及查询方法及系统 |
CN105530303A (zh) * | 2015-12-15 | 2016-04-27 | 南京信息工程大学 | 一种网络缓存线性替换方法 |
CN105630889A (zh) * | 2015-12-18 | 2016-06-01 | 北京奇虎科技有限公司 | 通用缓存的方法及装置 |
CN105740352A (zh) * | 2016-01-26 | 2016-07-06 | 华中电网有限公司 | 用于智能电网调度控制系统的历史数据服务系统 |
CN109388550A (zh) * | 2018-11-08 | 2019-02-26 | 浪潮电子信息产业股份有限公司 | 一种缓存命中率确定方法、装置、设备及可读存储介质 |
-
2008
- 2008-03-03 CN CNA2008100147049A patent/CN101236564A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101887398B (zh) * | 2010-06-25 | 2012-08-29 | 浪潮(北京)电子信息产业有限公司 | 一种动态提高服务器输入输出吞吐量的方法和系统 |
CN101887398A (zh) * | 2010-06-25 | 2010-11-17 | 浪潮(北京)电子信息产业有限公司 | 一种动态提高服务器输入输出吞吐量的方法和系统 |
CN101901264A (zh) * | 2010-07-27 | 2010-12-01 | 浙江大学 | 一种在固态硬盘上进行海量数据并行扫描的调度方法 |
US8566388B2 (en) | 2010-08-26 | 2013-10-22 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for managing numerous messages |
WO2012025058A1 (zh) * | 2010-08-26 | 2012-03-01 | 腾讯科技(深圳)有限公司 | 大数据量消息管理方法和装置 |
CN102087634B (zh) * | 2011-01-27 | 2012-10-03 | 凌阳科技股份有限公司 | 用于提高缓存命中率的装置及方法 |
CN102087634A (zh) * | 2011-01-27 | 2011-06-08 | 凌阳科技股份有限公司 | 用于提高缓存命中率的装置及方法 |
CN104391876A (zh) * | 2014-10-30 | 2015-03-04 | 北京思特奇信息技术股份有限公司 | 一种静态数据存储及查询方法及系统 |
CN105530303A (zh) * | 2015-12-15 | 2016-04-27 | 南京信息工程大学 | 一种网络缓存线性替换方法 |
CN105530303B (zh) * | 2015-12-15 | 2018-09-25 | 南京信息工程大学 | 一种网络缓存线性替换方法 |
CN105630889A (zh) * | 2015-12-18 | 2016-06-01 | 北京奇虎科技有限公司 | 通用缓存的方法及装置 |
CN105630889B (zh) * | 2015-12-18 | 2019-12-10 | 北京奇虎科技有限公司 | 通用缓存的方法及装置 |
CN105740352A (zh) * | 2016-01-26 | 2016-07-06 | 华中电网有限公司 | 用于智能电网调度控制系统的历史数据服务系统 |
CN109388550A (zh) * | 2018-11-08 | 2019-02-26 | 浪潮电子信息产业股份有限公司 | 一种缓存命中率确定方法、装置、设备及可读存储介质 |
CN109388550B (zh) * | 2018-11-08 | 2022-03-22 | 浪潮电子信息产业股份有限公司 | 一种缓存命中率确定方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101236564A (zh) | 一种海量数据高性能读取显示方法 | |
US9672235B2 (en) | Method and system for dynamically partitioning very large database indices on write-once tables | |
US8868926B2 (en) | Cryptographic hash database | |
US10831736B2 (en) | Fast multi-tier indexing supporting dynamic update | |
CN104765575B (zh) | 信息存储处理方法 | |
US9495398B2 (en) | Index for hybrid database | |
US20160203135A1 (en) | In-memory latch-free index structure | |
KR102437775B1 (ko) | 효율적인 맵핑을 위한 페이지 캐시 장치 및 방법 | |
US11580162B2 (en) | Key value append | |
US9817865B2 (en) | Direct lookup for identifying duplicate data in a data deduplication system | |
CN101986649B (zh) | 应用于电信行业计费系统的共享数据中心 | |
CN105117417A (zh) | 一种读优化的内存数据库Trie树索引方法 | |
CN105117415A (zh) | 一种优化的ssd数据更新方法 | |
US10678788B2 (en) | Columnar caching in tiered storage | |
CN112632069B (zh) | 哈希表数据存储管理方法、装置、介质和电子设备 | |
US10289345B1 (en) | Contention and metadata write amplification reduction in log structured data storage mapping | |
US10210067B1 (en) | Space accounting in presence of data storage pre-mapper | |
US10416901B1 (en) | Storage element cloning in presence of data storage pre-mapper with multiple simultaneous instances of volume address using virtual copies | |
Zhao et al. | Wipdb: a write-in-place key-value store that mimics bucket sort | |
US10209909B1 (en) | Storage element cloning in presence of data storage pre-mapper | |
CN116226497A (zh) | 检索方法、介质、装置和计算设备 | |
CN111538465B (zh) | 一种基于Linux高性能数据重删方法 | |
CN103491124A (zh) | 一种对彩信数据进行处理的方法及分布式缓存系统 | |
US11836090B2 (en) | Cache management for search optimization | |
KR101755276B1 (ko) | NoSQL에 기반한 트랜잭션 관리 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080806 |