当前位置:主页 > 科技论文 > 计算机论文 >

无垃圾回收的键值分离存储系统优化设计与实现

发布时间:2020-06-04 11:29
【摘要】:键值存储是现代存储系统的重要组成部分,由于LSM-tree数据结构针对磁盘的随机写做了优化,大幅度提升了键值存储系统的写性能,因此基于LSM-tree的键值存储成为主流。为了克服LSM-tree在读写操作中仍然产生较高的读写放大现象,进一步发展成为采用键值分离的键值存储系统。然而,采用键值分离的键值存储系统在更新密集型工作负载下会频繁的触发垃圾回收(GC)操作,导致其无法实现较高性能。针对上述问题,设计并实现了一个无需GC的键值分离存储系统,该系统通过对失效数据的有效管理,实现就地更新,从而消除存储过程中的垃圾回收操作,避免存储系统中有效数据的频繁重写,减少系统的写放大,提升系统的性能。首先,通过收集、管理和复用失效数据索引对失效数据实现就地更新、覆盖回收,去除GC过程,避免了由于GC而产生的开销。其次,实现失效索引管理模块,并通过构建生产者-消费者模型,对该模块进行优化,使其在系统中能够灵活高效的实现失效数据的管理、复用,为系统去除GC操作提供了基础保障。最后,通过逻辑设计为数据的就地更新写入方式提供了更新一致性的保证,同时通过增加、管理操作日志,实现了系统崩溃后的数据恢复,避免了数据丢失。测试表明,无需GC的键值分离存储系统可以有效减少系统写入量,在更新密集型工作负载下,相比于现有的键值分离的键值存储系统WiscKey和HashKV,本系统可以减少30%~50%的写入量,从而减小系统写放大。本系统去除了GC过程,使写性能得到了提升,同时,系统性能也不会受到预留空间大小和键值对数据大小的影响。
【图文】:

结构图,结构图,键值,工作负载


随机访问未排序的 value。第三,WiscKey 特别设计了崩溃一致性和垃圾回收技术,能够有效管理 value 的保存日志文件,增强系统的可靠性。第四,WiscKey 在不牺牲一致性的条件下通过删除 LSM-tree 日志来优化性能,从而减少写入带来的系统调用开销。在现代键值存储工作负载中,key 通常很小(例如,16B),但是 value 的大小远大于 key 的大小(例如,100B 到大于 4KB),而 WiscKey 旨在为此类工作负载提供更高的读写性能。WiscKey 是一个衍生于 LevelDB 的单机的持久化键值存储系统,它可以作为关系型数据库(如 MySQL)或分布式键值存储(如 MongoDB)的存储引擎,它提供了与 LevelDB相同的 API,包括Put(key, value)、Get(key)、Delete(key)和 Scan(start, end)。WiscKey 的体系结构如图 2-1 所示,这个图显示了 WiscKey 在单个 SSD 设备上的数据布局,key 和 value 的地址存储在 LSM-tree 中,而 value 追加写入到单独的日志文件中。

垃圾回收,数据布局,指针


将类似于 tuple(key size, value size, key, value)这样的结构存储在 Value Log 中,,如2 所示,这个图显示了 WiscKey 的新数据布局,以支持有效的垃圾回收。Wisc垃圾回收旨在将有效值(不对应于已删除的键)保存在 Value Log 的连续范围图 2-2 所示,这个范围的一端用 head 指针标记,总是与 Value Log 的末尾相对新的数据值添加到 Value Log 的末尾时,都会追加写入到 head 指针的位置,而范围的另一端是 tail 指针,每当触发垃圾回收时,它就开始释放空间,只有垃圾线程会更改 tail 指针。所有有效值的地址范围都处于 head 和 tail 之间,为了查能够快速搜索,head 和 tail 指针被保存在内存中,并持久化存储到 LSM-tree 中。圾回收执行时,WiscKey 首先从 Value Log 的 tail 指针处读取一系列键值对(例如个 MB),然后通过查询 LSM-tree 判断哪些是还没有被重写或删除的有效值,有效值追加到 Value Log 的 head 指针处,最后,更新 tail 指针,释放所读取键值据的空间。
【学位授予单位】:华中科技大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:TP333

【相似文献】

相关期刊论文 前10条

1 徐逸文;方钰;陈闳中;;一种处理B~+树重复键值的方法[J];计算机工程;2009年05期

2 杨小小;;在重启中被替换的键值[J];办公自动化;2007年01期

3 杨小小;;在重启中被替换的键值[J];电脑知识与技术(经验技巧);2007年01期

4 杨小小;;重启中被替换的键值[J];办公自动化;2007年08期

5 卢侨生;;一个键值让文件在重启过程中替换[J];电脑爱好者;2006年21期

6 史军绒;Windows2000注册表键值类型的探索[J];现代情报;2005年06期

7 王禄;;多键值字符串键树的原理及实现[J];电脑知识与技术(学术交流);2007年02期

8 刘晓;;大数据环境下分布式键值系统的架构研究[J];中国金融电脑;2015年06期

9 孙洪秋;删除相关键值巧装超级解霸[J];电脑爱好者;2001年24期

10 蒋天发;蒋巍;王维虎;熊祥光;;基于转换键值的非对称数字水印算法[J];信息安全与技术;2010年08期

相关会议论文 前3条

1 翁晓毅;刘晓平;程磊;;三维曲面的键值函数定义及计算研究[A];全国第十五届计算机科学与技术应用学术会议论文集[C];2003年

2 袁锦绣;钱雪忠;汪锦岭;;一种基于位置和DHT的移动ad hoc网络服务发现方案[A];2006年全国开放式分布与并行计算学术会议论文集(一)[C];2006年

3 张智江;王志军;张尼;;一种可应用于大流量环境下的双层散列算法研究[A];中国通信学会信息通信网络技术委员会2011年年会论文集(下册)[C];2011年

相关重要报纸文章 前10条

1 王林颖 陈佳佳;一键值守48小时[N];中国航天报;2019年

2 编译 沈建苗;键值数据存储未来会流行吗?[N];计算机世界;2015年

3 山东 郭忠勇;注册表禁用30项[N];电脑报;2001年

4 上海 SNSN;自由操控MSN Messanger的启动[N];电脑报;2002年

5 章海峰;排名新方法:无比排序[N];电脑报;2001年

6 江苏 飞浪;Windows NT 4.0操作技巧16则[N];电脑报;2001年

7 江苏 周勇生;Windows NT 4.0应用精粹(一)[N];中国计算机报;2001年

8 福建 柳坚;让“我的电脑”不再受“压迫”[N];电脑报;2002年

9 陈彪;设置自动刷新窗口[N];中国电脑教育报;2000年

10 山西 闫锦锋;找回失去的登录窗口[N];电脑报;2002年

相关博士学位论文 前4条

1 徐辰;键值存储系统中的质量感知调度[D];华东师范大学;2014年

2 张凯;基于多核/众核体系结构构建高性能网络系统的研究[D];中国科学技术大学;2016年

3 黄玉龙;基于GPU的查询技术并行化研究[D];华南理工大学;2013年

4 赵楠楠;分布式键值存储系统高效能数据布局技术研究[D];华中科技大学;2016年

相关硕士学位论文 前10条

1 杨李杨;基于分布式流处理系统的分组策略研究[D];哈尔滨工业大学;2019年

2 李娟;基于Key-Value的大容量SSD闪存转换层的研究与实现[D];国防科技大学;2017年

3 冯小川;云存储中键值型数据库访问模式保护的研究与实现[D];西安电子科技大学;2019年

4 冯淇;基于LSM-Tree的键值存储引擎的优化研究与实现[D];华中科技大学;2019年

5 张大年;面向内存分区的自适应键值数据库[D];华中科技大学;2019年

6 吴海源;基于DRAM-NVM混合内存的持久化键值存储系统研究[D];华中科技大学;2019年

7 林立亚;无垃圾回收的键值分离存储系统优化设计与实现[D];华中科技大学;2019年

8 胡泽鑫;基于非易失内存的混合键值存储系统的研究与实现[D];华中科技大学;2019年

9 孟嘉豪;一种面向键值对存储系统的高效数据迁移机制的设计与实现[D];华中科技大学;2019年

10 王成;基于RDMA的键值存储系统性能优化[D];南京大学;2019年



本文编号:2696319

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2696319.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户9c485***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com