[发明专利]一种基于压缩合并异步更新的索引读写方法有效
申请号: | 201410422587.5 | 申请日: | 2014-08-26 |
公开(公告)号: | CN104199892A | 公开(公告)日: | 2014-12-10 |
发明(设计)人: | 吴植民 | 申请(专利权)人: | 上海爱数软件有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海科盛知识产权代理有限公司 31225 | 代理人: | 赵继明 |
地址: | 201112 上海市闵行*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 压缩 合并 异步 更新 索引 读写 方法 | ||
技术领域
本发明涉及一种数据存储技术,尤其是涉及一种基于压缩合并异步更新的索 引读写方法。
背景技术
随着计算机系统的不断发展,计算机系统中的有效数据也越来越多。用户在读 取某些有效数据时需要在全部有效数据中查找自己需要的数据,而随着有效数据的 增大增多,这个查找时间将变长。如果没有一个有效的方式能够快速找到用户需要 的数据,那么有效数据的增大只能增加用户的负担。
索引技术的引进很好地解决了这个办法。数据在写的过程中同时会记录一些重 要信息用来唯一标识该数据并记录该数据的存储位置及大小信息等,该信息我们称 之为索引。索引能帮助我们快速地查找需要的数据,然而随着数据量不断增长,索 引也相应的增长。在索引增长到海量级别时,尤其是索引记录达到上亿甚至百亿级 别时,索引的查询性能将直接影响了整个读性能,一般的B+树也不能很好地解决 读磁盘IO瓶颈带来的性能问题。
为了解决索引数据量增大导致的读性能问题,一般我们对索引采用分流的技术 将索引分成很多类,每一个类对应一个存储区域,在查询时将该存储区域的数据一 次性读出来进行对比。这种方式很有效地解决读磁盘的IO瓶颈问题,但也带来了 一个新的问题,由于索引分类较多,在批量写时分流到各个存储区域的数据将很少, 这将导致批量写时写磁盘的次数非常多而每次写磁盘的数据量很小。故在批量写时 性能较差。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种高效的、异 步的、能减少每次读磁盘的数据量及减少索引比对次数的基于压缩合并异步更新的 索引读写方法。
本发明的目的可以通过以下技术方案来实现:
一种基于压缩合并异步更新的索引读写方法,该方法包括:
1)将内存中缓存的索引分为多个存储区域写入索引库,按照存储区域编号生 成索引缓存文件;
2)异步获取至少一个索引缓存文件;
3)过滤并剔除不完整或正在写的索引缓存文件;
4)判断当前索引缓存文件的总个数是否满足发起异步更新的条件,若是,则 执行步骤5),若否,则结束;
5)分别读取步骤3)中获取的各索引缓存文件中相同存储区域编号对应的存 储区域的数据,存储区域编号初始值为0;
6)合并并按索引从小到大排序步骤5)中读取的数据;
7)读取步骤5)中当前存储区域编号在索引库中对应的存储区域的数据;
8)解压步骤7)中读取的数据;
9)合并并按索引从小到大排序步骤6)执行后的数据及步骤8)执行后的数据;
10)压缩步骤9)执行后的数据;
11)将步骤10)执行后的数据覆盖更新到步骤5)中存储区域编号在索引库中 对应的存储区域并更新元数据;
12)判断步骤5)中的索引缓存文件是否读到文件尾,若是,则结束,若否, 则执行步骤5)并将步骤5)中的存储区域编号加1。
所述步骤1)具体为:
101)将内存中缓存的索引按存储区域编号对应分流,写入索引库;
102)对每一个存储区域编号对应的索引按照从小到大的顺序排序;
103)各个存储区域编号对应排序后的索引序列化成数据流;
104)步骤103)获得的数据流按存储区域编号从小到大的顺序组合成唯一的 一个数据流;
105)将步骤104)生成的数据流写入磁盘生成一个索引缓存文件。
所述步骤4)中,发起异步更新的条件为当前索引缓存文件的总个数大于或等 于设定个数n。
该方法还包括:
删除步骤3)过滤后更新完成的索引缓存文件及步骤3)过滤掉的不完整索引 缓存文件。
所述压缩和解压采用的算法为snappy算法。
与现有技术相比,本发明通过压缩、合并和异步更新,大大减少了批量写的磁 盘IO次数及耗时并均衡了批量写时的磁盘IO压力从而提升索引写性能,同时通 过压缩减少每次查询时读取的索引数据量并通过排序减少了每次查询时索引的比 对个数从而大大的提升了索引的查询性能。
附图说明
图1为本发明的流程示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海爱数软件有限公司;,未经上海爱数软件有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410422587.5/2.html,转载请声明来源钻瓜专利网。