[发明专利]用于LSM树存储系统的插入操作及负载的读取和合并方法有效
申请号: | 201510501523.9 | 申请日: | 2015-08-14 |
公开(公告)号: | CN105138622B | 公开(公告)日: | 2018-05-22 |
发明(设计)人: | 贾士博;岳银亮 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 lsm 存储系统 插入 操作 负载 读取 合并 方法 | ||
本发明提供一种用于LSM树存储系统的插入操作方法,包括:1)将待插入值和待插入键构建为键‑值结构体并将该新构建的键‑值结构体作为待插入键的最新数据分段存储到数据库中;对于该新构建的键‑值结构体,保存待插入键之前已经累积的数据分段的总数据量,保存待插入键的前一数据分段的存储位置;2)更新插入表的待插入键的表项;所述插入表记录每个键的所有数据分段的总数据量和最新数据分段的存储位置。本发明还提供了相应的插入操作负载的读取方法和合并方法。本发明能够避免插入操作因读/写放大问题所导致的系统开销增加;能够在数据由低层向高层移动的过程中将插入操作负载聚合;能够提高插入操作负载的读性能。
技术领域
本发明涉及信息存储领域,具体地说,本发明涉及一种用于LSM树(即LSM Tree)存储系统的插入(即Append)操作及相应负载的读取和合并方法。
背景技术
LSM Tree存储系统是针对随机I/O对持久化存储的性能影响而做出优化的存储系统。LSM Tree的全称为Log-Structured Merge-Tree,图1示出了现有LSM Tree存储系统的结构及工作原理,它的主要设计是:
1、数据分层放置,其中最低层的数据位于内存,其他层次的数据位于持久化设备(HDD/SSD等)。
2、数据异地更新,数据以log方式写入。
3、系统的后台进程不断地将数据从低层到高层合并(merge),即,将key相同的K-V结构中的较旧的版本删除,保留排序的新版本。数据随着合并的进行,数据不断由低层向高层移动。
LSM Tree的这种设计能够通过批量写入来降低磁盘的寻道次数,进而改善持久化存储的性能,它尤其适用于大量磁盘随机I/O的情况。然而,在LSM Tree存储系统中,对数据进行插入操作时,需要对K-V结构体中的value进行读取、拼接和写回,而由于后台进程还会将数据不断由低层向高层移动,因此插入操作的读/写次数实际上会被放大,这可能会导致系统开销显著增大,影响存储性能。
发明内容
因此,本发明的任务是提供一种能够克服现有技术的上述缺陷的LSM Tree存储系统中的插入操作及相应负载的读取和合并解决方案。
根据本发明的一个方面,提供了一种用于LSM Tree存储系统的插入操作方法,包括下列步骤:
1)将待插入value(本文中有时将value称为值)和待插入key(本文中有时将key称为键)构建为K-V结构体并将新构建的K-V结构体(本文中有时将K-V结构体称为键-值结构体)作为待插入key的最新数据分段存储到数据库中;对于新构建的K-V结构体,保存待插入key之前已经累积的数据分段的总大小,保存待插入key的前一数据分段的存储位置;
2)更新Append表(本文中有时将Append表称为插入表)的待插入key的表项;所述插入表记录每个key的所有数据分段的总大小和最新数据分段的存储位置。
其中,所述步骤1)中:在所述新构建的K-V结构体中设置prevSize字段和prevPos字段,prevSize字段保存同一key之前已经累积的数据分段的总大小,prevPos字段保存同一key的本K-V结构体的前一数据分段的存储位置。
其中,所述步骤1)包括下列子步骤:
11)在插入表查找待插入key,得到相应表项;
12)根据所得的待插入key的表项,获取本次插入操作前的待插入key的所有数据分段的总大小和最新数据分段的存储位置;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510501523.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种机器人无线充电装置
- 下一篇:一种抗静电PVC塑料地板