[发明专利]文件合并方法和装置有效
申请号: | 201710040977.X | 申请日: | 2017-01-17 |
公开(公告)号: | CN108319625B | 公开(公告)日: | 2019-10-25 |
发明(设计)人: | 郑主能 | 申请(专利权)人: | 广州市动景计算机科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 北京展翼知识产权代理事务所(特殊普通合伙) 11452 | 代理人: | 屠长存 |
地址: | 510627 广东省广州市天河区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 索引块 追加 数据块 写入 合并 方法和装置 文件合并 新文件 读取 元数据信息 逻辑地址 叶子节点 大文件 读性能 写性能 记录 查找 | ||
本发明公开了一种文件合并方法和装置。所述方法包括:在第一文件之后追加写入追加数据块,其中写入第二文件的数据块中的值;在追加数据块之后追加写入新索引块,新索引块是基于第一文件的索引块和第二文件的索引块生成的,第一文件的索引块和第二文件的索引块中的全部键及其对应的值在第一文件的数据块和追加数据块中的逻辑地址均分别记录于新B+树中的叶子节点中;在新索引块之后追加写入新文件头,以记录合并后的新文件的元数据信息。由此,在将两个文件进行合并时,将其中一个文件的值直接追加写入另一个文件即可,提高写性能,并且合并后的索引块为新的B+树,可以方便地通过查找来读取合并后的大文件中的值,可以提高读性能。
技术领域
本发明涉及数据存储技术领域,特别是涉及存储在外部存储器中的文件的合并方法和装置。
背景技术
纵观当今数据库的存储引擎,其底层的数据结构要么是B树或其变种B+树,要么则是LSM树。前者具有较好的读友好性,而后者具有较好的写友好性。尽管这两样东西看似鱼和熊掌不可兼得,但在贪婪的互联网世界里,却渴求能有兼容读、写皆友好的数据存储方案的出现。虽然LevelDB中采用的数据结构似乎也结合了LSM和B树,但始终不够彻底,首先在严格意义上它并非一颗B树,而只是简单的多叉树;其二,其Key(键)和Value(值)存放在一起,不利于索引的优化,这种优化在做数据合并时尤显重要。
具体来说,LevelDB中存储在磁盘中的文件分为多个层级,不同层级有很多文件(SSTable文件),为了降低冗余度,提高可读性,需要对SSTable文件进行合并,由于SSTable文件中的键和对应的值是存储在一起的,因此在合并LevelDB文件时,需要取出所有的键值对一一处理,以构建新的文件,合并过程较为复杂,在提高可读性的同时会降低写性能。
由此,需要一种读、写皆友好的文件合并方案。
发明内容
本发明的主要目的在于提供一种数据读、写皆友好的文件合并方法和装置。
根据本发明的一个方面,提供了一种文件合并方法,文件存储在外部存储器中,包括文件头、数据块以及索引块,文件头用于记录文件的元数据信息,数据块用于存放值,索引块用于以B+树的形式存放值对应的键,其中,所有键及其对应的值在数据块中的逻辑地址均分别记录于B+树中的叶子节点中,该方法包括:在第一文件之后追加写入追加数据块,其中写入第二文件的数据块中的值;在追加数据块之后追加写入新索引块,新索引块是基于第一文件的索引块和第二文件的索引块生成的,第一文件的索引块和第二文件的索引块中的全部有效键及其对应的值在第一文件的数据块和追加数据块中的逻辑地址均分别记录于新B+树中的叶子节点中;在新索引块之后追加写入新文件头,以记录合并后的新文件的元数据信息。
本发明述及的文件的键和值分开存储,键以B+树的形式进行存储。由此在将两个文件进行合并时,可以保持一个文件不动,将另一个文件的值直接追加写入即可,提高了写性能。并且合并后的索引块为新的B+树,根据新的索引块可以方便地读取合并后的文件中的值,合并后的文件的读性能也不会受到影响。
优选地,元数据信息可以包括以下一项或多项:
索引块中键的数量;
索引块中键的范围;
B+树的高度;
B+树中第一个叶子节点的逻辑地址;
B+树中内部节点的个数。
由此,在根据请求键读取对应的目标值时,可以根据文件的文件头中的元数据信息判断请求键是否在该文件的键的范围内,判定为是的情况下,再在该文件的索引块中查找,可以减少不必要的查找。
优选地,构成B+树的所有节点在物理上连续存储。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州市动景计算机科技有限公司,未经广州市动景计算机科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710040977.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据加载方法及装置
- 下一篇:一种基于名称信息的对象分类方法与设备