[发明专利]一种键-值存储系统中数据文件的合并压缩方法及装置有效
申请号: | 201310711265.8 | 申请日: | 2013-12-20 |
公开(公告)号: | CN103744617A | 公开(公告)日: | 2014-04-23 |
发明(设计)人: | 王锋 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京思睿峰知识产权代理有限公司 11396 | 代理人: | 赵爱军 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 存储系统 数据文件 合并 压缩 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,具体涉及一种键-值(Key-Value)存储系统中数据文件的合并压缩方法及装置。
背景技术
在很多大数据存储系统中,数据块(数据记录)是以Key-Value对的方式存储,基于存储与读写性能的考虑,在实现上都采用数据添加(Append)模式,即所有的写操作都先将数据块写入内存表(Memtable),当Memtable达到一定大小时,再将Memtable中的数据块排序写入(Dump)到磁盘上的有序字符串表(SSTable)文件中。后续通过合并压缩(Compaction)机制将全部或部分SSTable文件合并形成新的SSTable文件,从而达到降低数据文件个数以提高访问性能、去除重复数据以节省磁盘空间的目的。
Cassandra系统也采用了类似的设计方式。Cassandra数据存储空间可以抽象为一个环形结构,数据块就是通过哈希(hash)分散在这个环形存储空间上。每个数据节点负责管理这个环形存储空间上的某一块连续的范围(也叫Range),落在此Range空间上的数据块就存储在这个数据节点上。
SSTable是Cassandra系统中数据处理和交换的文件存储格式。SSTable是存储一组任意有序Key-Value对的数据文件。SSTable一旦完成写入,就不可更改,只能读取。在Cassandra系统中,Compaction分为Minor Compaction(部分合并压缩)和Major Compaction(全部合并压缩)。M ajor Compaction指的是全部数据文件都参与Compaction操作,但是随着写入的数据块越来越多,磁盘剩余空间不足,Major Compaction无法实施,这样,每次Compaction只能有部分数据文件参与,也就是只能做Minor Compaction。而在大量的Minor Compaction下,如何保证既能尽量去除重复的数据块,又能避免数据文件重复参与Compation而浪费磁盘输入/输出(I/O)资源,是众多Compaction策略需要解决的问题。
现有的一种技术方案为Tiered Compaction(阶梯合并压缩),其实现原理为:
(1)首先将SSTable文件按照大小范围划分为若干级别;
(2)当Memtable刷新到磁盘SSTable文件中时,从文件较小的SSTable级别开始,逐级检查SSTable个数,发现数目超过4个就将其做一次Compaction,生成一个新的SSTable文件
(3)直到各级别的SSTable文件都少于4个为止,这样,通过对每次4个SStable进行合并压缩,达到局部减小存储空间的目的。
上述技术方案的缺点在于:
(1)对磁盘I/O性能有影响。由于一条记录的多个版本可能存在于多个SSTable文件中,最差的情况下可能某一条记录会存在于所有SSTable文件中,因此一条记录所在的SSTable文件可能多次重复参与Compaction才能将数据消除,并且参与次数无法确定,无形中浪费了I/O资源,间接也影响了读写性能。
(2)在存储空间上浪费严重。因为一个被删除记录的老版本可能会一直存在于一些老的SSTable文件中,直到这个老的SSTable文件参与Compaction才可能消除掉;或者只有进行一次Major Compaction才可以消除。由于Tiered Compaction是按照SSTable文件大小进行级别划分进而分级做Minor Compaction,这样往往导致删除操作较多(SSTable文件较小)的SSTable文件和插入操作过多(SSTable文件较大)的SSTable文件分在不同的级别中,因而对于一个经常有删除操作的应用来说会造成空间的极大浪费。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310711265.8/2.html,转载请声明来源钻瓜专利网。