joker-qi / ndslDB

基于LevelDB的改进

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

最近在回顾架构设计过程中,发现了一些bug,该项目只能作为学习项目,还没有上线的能力。大家可以参考PebblesDB,它也能显著降低LevelDB写放大的问题

  1. 在垃圾回收器的设计上,现在是用db_->Get来判断vlog中某个kv对是否有效,但其实这个过程完全没有必要。只需要在合并过程中,记录需要删除的kv对信息,在垃圾回收过程中参照这些信息进行垃圾回后即可。现在的做法对IO影响应该会很大
  2. RealValue函数负责从vlog中读取实际的value,但是跟垃圾回收的过程有些冲突(vlog_manager)

About

基于LevelDB的改进

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C++ 94.3%Language:C 2.9%Language:Makefile 1.9%Language:Shell 1.0%