Skip to content

byseea11/lsm-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

使用说明

运行一下程序即可进入交互:

./run.sh

项目提供:fill、get、update、del、scan、close、quite、flush共8个关键字,使用方法如下:

fill 100 200
get 100
update 100 "hahahha"
del 100
scan 100 150
close
quite
flush

todo list

 [√] memtable 
    [√] wal  
    [√] iterator    
 [√] sstable  
    [√] block  
    [√] iterator    
    [√] bloom filter  
 [√] lsm storage arch  
    [√] interface
    [√] cli
 [√] Compact
    [√] l0 l1 compact
    [√] simple compact
 [√] mainfest

功能实现

task1【memtable】

1. 完成memtable内存表的读写
2. 完成从wal恢复memtable

task2【memtable immemtable】

1. 构造lsm tree的内存基础架构
2. 完成将memtable强制冻结为immemtable
3. 完成将memtable自动转换为immemtable
4. 完成memtable的scan
5. block以及builder,迭代器明天再写吧
6. 完成block iterator

task3【sstable】

1. 完成sstable builder以及sstable decoder encoder(太难了...)
2. 完成sstable iter
3. 实现memtable和sst的merge

task4【read】

1. 实现memtable和sstable的scan

task5【write】

1. 将 Memtable 刷新到 SST

task6【cli】

1. 修改cli文件,实现本项目功能

task7【compact】

1. 实现l0_compact
2. 实现ln_compact

task7【manifest】

1. 实现manifest  

About

基于rust实现lsm tree

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published