[发明专利]基于LSM-Tree的数据存储方法及系统在审
申请号: | 202210196258.8 | 申请日: | 2022-03-01 |
公开(公告)号: | CN114461648A | 公开(公告)日: | 2022-05-10 |
发明(设计)人: | 张锦志;李超;李凯;冯建奎;王策 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/23;G06F16/215 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 孙园园 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 lsm tree 数据 存储 方法 系统 | ||
本发明公开了基于LSM‑Tree的数据存储方法及系统,属于数据存储技术领域,本发明要解决的技术问题为如何提高数据库大数据量时的写入性能,同时兼顾读取性能,采用的技术方案为:该方法是利用磁盘的物理特性,在磁盘中顺序写入数据,提高数据写入的速度;并在内存中维护一张索引表,索引表中记录所有存储数据的key对应的value在文件中的位置信息;同时增加闲时数据合并的操作,数据合并时将之前磁盘中的所有数据进行遍历,获取最新的数据内容以及所对应在磁盘中的位置,更新磁盘中存储的数据文件、内存中的索引表以及磁盘中保存的索引表。该系统包括写入模块、维护模块和合并模块。
技术领域
本发明涉及数据存储技术领域,具体地说是一种基于LSM-Tree的数据存储方法及系统。
背景技术
传统数据库大都基于B+Tree,例如Mysql,PostgreSql等关系型数据库的索引实现,BoltDB等非关系型数据库的实现。基于B+Tree的优点是检索速度快,在数据插入时就已经是有序状态,但由于要保证数据插入时有序,故其写入磁盘的方式为随机写,在面对大量数据同时插入的场景会遇到写入瓶颈,影响写入性能。
故如何提高数据库大数据量时的写入性能,同时兼顾读取性能是目前亟待解决的技术问题。
发明内容
本发明的技术任务是提供一种基于LSM-Tree的数据存储方法及系统,来解决如何提高数据库大数据量时的写入性能,同时兼顾读取性能的问题。
本发明的技术任务是按以下方式实现的,一种基于LSM-Tree的数据存储方法,该方法是利用磁盘的物理特性,在磁盘中顺序写入数据,提高数据写入的速度;并在内存中维护一张索引表,索引表中记录所有存储数据的key对应的value在文件中的位置信息;同时增加闲时数据合并的操作,数据合并时将之前磁盘中的所有数据进行遍历,获取最新的数据内容以及所对应在磁盘中的位置,更新磁盘中存储的数据文件、内存中的索引表以及磁盘中保存的索引表。
作为优选,磁盘中存储的数据文件具体为:
每发生一次操作,均会磁盘中顺序追加一条数据;
其中,每一条数据(单条数据)包括用户存储的key(键)、value(值)、key size(健占的存储空间)、value size(值占的存储空间)、add time(数据写入的时间)、crc(数据的校验值)以及op(本次的操作类型);
发生的操作包括用户的PUT(增加或修改某条数据)操作、GET(获取某条数据)操作、DELETE(删除某条数据)操作、PUTHSET操作以及GETHSET操作。
作为优选,内存中的索引表的数据结构具体为:
内存中的索引表中保存着所有磁盘中数据的key(键)、在磁盘中的起始位置以及数据所占据的字节数;其中,key(键)为用户传入的key(键)值,此处为了优化索引表占用的内存大小,使用art-Tree来优化索引表的大小;
索引的字段包括用户传入value(值)在磁盘的开始位置、占用空间的大小以及是否删除;
为了提高用户的查询速度,内存中的索引表根据用户要查找的key(键),快速定位当前key(键)在磁盘中的位置,将该key(键)所在的位置以及value(值)大小返回给用户。
作为优选,数据合并具体如下:
将当前所有文件中的数据进行遍历,删除重复的冗余数据;
将遍历后的文件进行保存;
数据合并时,设置当前状态为合并,在此合并状态下的用户请求将会单独保存至新文件;
合并结束后,将新文件与合并后的数据进行文件合并,避免数据丢失;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210196258.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于手球总成的护套组件及车辆
- 下一篇:一种水冷式数控刀具头
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置