
本文是2018年IEEE的协会文章,思路比较简单
主要针对的是leveldb的写放大以及memtable unavailable的问题。
解决的思路都很直接。写放大问题的原因是compact过程中,leveli某个sstable与leveli+1中键值交叠的sstable,读到内存,重排序,去重等再写回leveli+1的sstable中。本文就是迭代leveli层的sstable,找到与下层sstable键值交叠最少的sstable进行compact。leveldb本身的sstable选择,应该就是按照顺序一个一个来。
另外一点就是,前段memtable dump到disk的过程,使用工作队列进行缓存,并用多个线程处理minorcompact和majorcompact过程。
性能比较:可以看到有一定提升,无论是随机读写还是顺序读写,并且db随着kv数量的上升,它的性能降级问题也有一定改善。




该文分析了2018年IEEE文章中的leveldb优化策略,针对写放大和memtable不可用问题提出解决方案。通过迭代选择与下层sstable交叠最少的sstable进行compact,以降低写放大的影响。同时,利用工作队列和多线程处理memtable的dump和compact过程,以提升性能。实验结果显示,这种方法能有效提升随机读写和顺序读写的性能,减轻db性能随kv数量增加而下降的问题。
最低0.47元/天 解锁文章
407

被折叠的 条评论
为什么被折叠?



