[发明专利]LSM-tree索引的优化方法和装置有效
| 申请号: | 201510239570.0 | 申请日: | 2015-05-12 |
| 公开(公告)号: | CN104809237B | 公开(公告)日: | 2018-12-14 |
| 发明(设计)人: | 孙君意;覃安;颜世光;李康;徐佩林 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆;胡彬 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | lsm tree 索引 优化 方法 装置 | ||
1.一种日志结构的合并树LSM-tree索引的优化方法,其特征在于,包括:
将写入内存中的数据按照LSM-tree内存索引结构进行存储,所述LSM-tree内存索引结构是将内存中数据按照第二合并算法进行分层存储的索引结构;
当基于所述内存索引结构存储的内存数据满足写入阈值条件时,按照第一合并算法,对所述内存数据进行合并;
将合并后的所述内存数据按照LSM-tree磁盘索引结构写入磁盘文件中。
2.根据权利要求1所述的方法,其特征在于,将写入内存中的数据按照LSM-tree内存索引结构进行存储包括:
在有数据写入所述内存时,将所述数据存储于所述LSM-tree内存索引结构的最底层中,并将所述最底层作为当前操作层;
根据当前操作层在所述LSM-tree内存索引结构中的位置,获取与所述当前操作层对应的合并阈值条件;
在所述当前操作层中存储的数据满足所述合并阈值条件时,按照第二合并算法,对所述当前操作层中存储的数据进行合并;
将合并结果存储于所述当前操作层的上一层中,并删除所述当前操作层中存储的数据;
将所述当前操作层的上一层更新为当前操作层,并返回执行所述根据当前操作层在所述LSM-tree内存索引结构中的位置,获取与所述当前操作层对应的合并阈值条件的操作,直至所述当前操作层中存储的数据不满足所述合并阈值条件。
3.根据权利要求2所述的方法,其特征在于:
所述LSM-tree内存索引结构包括三层,自下向上分别为第零层、第一层和第二层;
所述第零层的合并阈值条件为所述第零层中存储的数据大小大于第一数据阈值门限;
所述第一层的合并阈值条件为所述第一层中存储的数据块数目大于数据块阈值门限。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述写入阈值条件包括:所述LSM-tree内存索引结构所存储的全部数据大于第二数据阈值门限。
5.根据权利要求1-3任一项所述的方法,其特征在于,按照第一合并算法,对所述内存数据进行合并包括:
在所述LSM-tree内存索引结构各层存储的数据中,获取与相同键Key对应的全部值Value;
按照所述第一合并算法,将所述与相同Key对应的全部Value进行合并处理。
6.根据权利要求2或3所述的方法,其特征在于,所述第一合并算法与所述第二合并算法相同,且所述第一合并算法或者所述第二合并算法包括:
保留最大版本号合并算法、累加器合并算法或者字符串追加合并算法。
7.根据权利要求1所述的方法,其特征在于,将合并后的所述内存数据按照LSM-tree磁盘索引结构写入磁盘文件中包括:
将合并后的所述内存数据写入所述磁盘文件中LSM-tree磁盘索引结构的最底层中。
8.一种日志结构的合并树LSM-tree索引的优化装置,其特征在于,包括:
内存数据存储模块,用于将写入内存中的数据按照LSM-tree内存索引结构进行存储,所述LSM-tree内存索引结构是将内存中数据按照第二合并算法进行分层存储的索引结构;
内存数据合并模块,用于当基于所述内存索引结构存储的内存数据满足写入阈值条件时,按照第一合并算法,对所述内存数据进行合并;
磁盘文件写入模块,用于将合并后的所述内存数据按照LSM-tree磁盘索引结构写入磁盘文件中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510239570.0/1.html,转载请声明来源钻瓜专利网。





