[发明专利]一种海量日志的缓冲量分配方法在审
申请号: | 201310727354.1 | 申请日: | 2013-12-25 |
公开(公告)号: | CN104750682A | 公开(公告)日: | 2015-07-01 |
发明(设计)人: | 吕成云;唐新民;沈智杰;景晓军 | 申请(专利权)人: | 任子行网络技术股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/50 |
代理公司: | 深圳市顺天达专利商标代理有限公司 44217 | 代理人: | 郭伟刚 |
地址: | 518057 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 海量 日志 缓冲 分配 方法 | ||
技术领域
本发明涉及日志管理领域,更具体地说,涉及一种海量日志的缓冲量分配方法。
背景技术
IDC(Internet Data Center,互联网数据中心)、DNS(Domain Name Service,域名系统)等产生海量的日志,需求进行快速实时导入(1~10万/秒),以及近实时搜索。如实现上述导入或搜索等目标,一般都会用到分区技术。该技术是将很大的一张表根据一定的规则分成多个小表并分别存储到不同的区域,这样逻辑上一张表,物理存储时,可以像多张表一样,存储于不同的位置,简化了数据库的管理活动,而且还可以改善应用性能。以数据量大小进行分区(查询时一般限度在两个小时以内,那么设定的阈值可对应之,尽量让一次搜索命中在一个分区内,至多也不超过两个分区)。在分区完成时,索引的域的取值有对应的范围。用于快速过滤。另外日志里的时间域若能保持按时间递增,那么可对进行特殊处理。达到其索引占用空间小及过滤快。当然系统提供对此域是否严格递增是可配置的。所以它在访问表时就可以只使用特定的分区直接查询。在查询不需要涉及整个表,自然就改善了查询性能。同时由于对外的接口仍是一张表,对于用户,应用是透明的,他们感觉不到分区的存在。因此,大表分区技术在海量数据存储中应用非常广泛。
在现有方案中,Mysql使用MYISAM存储引擎时只有1000-2000条/秒的速度;MongoDB数据量超过1000万时速度降低至2000条/秒以下,并且随着数据量的增加还会一直下降;NOSQL基于key-value对,不能对多域建索引;lucene导入速度最高才接近1万条/秒,且同时增加很多与得分、位置等有关额外不需要的内容。显然海量数据另一隐形重要指标是压缩少。上次的方案在导入速度均比较有限。压缩比小,内存、cpu、I/O占用高。另外为了节省成本,日志系统需要在现有的不怎么空闲的服器之上。显然轻量级是追求的终极目标。缓冲量分配策略是系统中的一个比较重要的方面。
发明内容
本发明要解决的技术问题在于,针对现有技术的缓冲量分配不合理的缺陷,提供一种海量日志的缓冲量分配方法。
本发明解决其技术问题所采用的技术方案是:构造一种海量日志的缓冲量分配方法,用于在读入海量日志时分配子表的缓冲量,该方法包括以下步骤:
S11、实时读入日志至子表,并将所述日志存储在子表中指定的段内;
S12、对所述子表中的所有段按照读入日志的时间进行划分,若读入子表的日志具有相同的域,则在所有相同的域中均引用子表中首次出现的域的偏移量,并统计所述首次出现的域的偏移量被引用的次数;
S13、建立每段的引用量Si,所述引用量Si为第i段中所有所述首次出现的域的偏移量被引用的次数之和,其中,i为[1,n]中的正整数,n为所述子表中的段;计算子表的总引用量Ssum:
S14、按照读入日志的时间排列每段及每段的引用量Si,对每段及每段的引用量Si的关系进行线性拟合,得到规定表征段与引用量的对应关系的直线y=ax+b,其中,x轴为所述子表中的第x段,y轴为所述引用量;
S15、根据所述直线y=ax+b规定的所述对应关系将所述子表中预设的总缓冲量Csum分配给每段,第i段分配所得的缓冲量Ci为:Ci=Csum×(ai+b)/Ssum。
在本发明所述的缓冲量分配方法中,在所述步骤S11中:所述日志的域包括用户ID、访问时间、访问IP、请求页面和请求功能号。
在本发明所述的缓冲量分配方法中,所述步骤S12包括以下子步骤:
S12A、对所述子表中的所有段按照读入日志的时间进行划分,若读入子表的日志具有相同的域,则在所有相同的域中均引用子表中首次出现的域的偏移量;
S12B、统计第i段第j个首次出现的域的偏移量被引用的次数zij并对所述次数排序,其中,i为[1,n]中的正整数,n为所述子表中的总段数,j为[1,m]中的正整数,m为所述第i段中的首次出现的域的总个数。
在本发明所述的缓冲量分配方法中,所述步骤S13包括以下子步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于任子行网络技术股份有限公司,未经任子行网络技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310727354.1/2.html,转载请声明来源钻瓜专利网。