1 个不稳定版本
0.1.0 | 2024年4月18日 |
---|
#1470 在 数据库接口
78KB
2K SLoC
mintkv
MintKv 是一个基于 btree 的简单 KV 数据库,作为一个学习项目编写的。
文件系统布局
data
|----blocks
| b_0000001
data
meta.json
index.json
tombstone
| b_0000002
data
meta.json
index.json
tombstone
|-----memtables (mmap)
| m_0001
data
tombstone
待办事项
- B+树作为引擎
- 内存表
- LE128 代码
- 块(磁盘存在)
- WAL
- 墓碑
- 压缩
示例
use mintkv::db::MintKv;
const TEST_COUNT: i32 = 1000;
fn main() {
let mut db = MintKv::new("./data");
for i in 0..TEST_COUNT {
let (key, value) = (format!("key-{}", i), format!("value-{}", i));
db.insert(&key, &value).unwrap();
}
for i in 0..TEST_COUNT {
let key = format!("key-{}", i);
let result = db.get(&key);
println!("Search For: {}, Reesult: {:?}", key, result);
}
}