[发明专利]基于LSM-Tree的数据存储方法及系统在审
申请号: | 202210196258.8 | 申请日: | 2022-03-01 |
公开(公告)号: | CN114461648A | 公开(公告)日: | 2022-05-10 |
发明(设计)人: | 张锦志;李超;李凯;冯建奎;王策 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/23;G06F16/215 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 孙园园 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 lsm tree 数据 存储 方法 系统 | ||
1.一种基于LSM-Tree的数据存储方法,其特征在于,该方法是利用磁盘的物理特性,在磁盘中顺序写入数据,提高数据写入的速度;并在内存中维护一张索引表,索引表中记录所有存储数据的key对应的value在文件中的位置信息;同时增加闲时数据合并的操作,数据合并时将之前磁盘中的所有数据进行遍历,获取最新的数据内容以及所对应在磁盘中的位置,更新磁盘中存储的数据文件、内存中的索引表以及磁盘中保存的索引表。
2.根据权利要求1所述的基于LSM-Tree的数据存储方法,其特征在于,磁盘中存储的数据文件具体为:
每发生一次操作,均会磁盘中顺序追加一条数据;
其中,每一条数据包括用户存储的keyvalue、keysize、valuesize、addtime、crc以及op;
发生的操作包括用户的PUT操作、GET操作、DELETE操作、PUTHSET操作以及GETHSET操作。
3.根据权利要求1所述的基于LSM-Tree的数据存储方法,其特征在于,内存中的索引表的数据结构具体为:
内存中的索引表中保存着所有磁盘中数据的key、在磁盘中的起始位置以及数据所占据的字节数;其中,key为用户传入的key值,使用art-Tree来优化索引表的大小;
索引的字段包括用户传入value在磁盘的开始位置、占用空间的大小以及是否删除;
内存中的索引表根据用户要查找的key,快速定位当前key在磁盘中的位置,将该key所在的位置以及value(值)大小返回给用户。
4.根据权利要求1所述的基于LSM-Tree的数据存储方法,其特征在于,数据合并具体如下:
将当前所有文件中的数据进行遍历,删除重复的冗余数据;
将遍历后的文件进行保存;
数据合并时,设置当前状态为合并,在此合并状态下的用户请求将会单独保存至新文件;
合并结束后,将新文件与合并后的数据进行文件合并;
所有文件合并结束后,将最新的数据索引表更新为合并之后的数据索引;此时内存中的索引表为最新的数据索引表。
5.根据权利要求2所述的基于LSM-Tree的数据存储方法,其特征在于,PUT操作具体如下:
当执行PUT操作时,将PUT请求的key、value、key size、value size、crc、op以及addtime封装成一条记录,追加磁盘的数据文件中;
磁盘的数据文件追加成功后,进行内存中索引表的更新:
判断当前key在索引表中是否存在:
若存在,则根据用户的操作进行更新;
若不存在,则进行添加;
GET操作具体如下:
当执行GET操作时,根据用户传入的key去索引表中查询:
若key不存在,则给用户返回空;
若key存在,则判断当前key是否过期:
若key已过期,则返回空;
若key未过期,则根据索引表中保存的数据起始位置以及数据大小来获取数据;
GET操作使用布隆过滤器进行数据的存在性查找,布隆过滤器的特性为:如果数据不存在,则一定返回不存在。
6.根据权利要求2所述的基于LSM-Tree的数据存储方法,其特征在于,DELETE操作具体如下:
当执行DELETE操作时,根据用户传入的key去索引表中查找是否存在此key:
若不存在,则给用户返回key不存在;
若存在,则向数据文件中写入一条删除记录,再将key的过期标志位置为true,标明已删除;
DELETE操作使用布隆过滤器进行数据的存在性查找,布隆过滤器的特性为:如果数据不存在,则一定返回不存在。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210196258.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于手球总成的护套组件及车辆
- 下一篇:一种水冷式数控刀具头
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置