Badger、Leveldb
BadgerDB v2 介绍
2017年发行 来自DGraph实验室 开源 纯go语言编写
https://github.com/dgraph-io/badger
https://godoc.org/github.com/dgraph-io/badger
内存模式 (所有数据存在内存,可能丢失数据)
SSD优化
键值分离 Key(00000*.sst) Value 分开存储(00000*.vlog)
SSTable存储结构kv是存在一起的, badger中v存的是指针,真正的value存在.vlog中
github.com\dgraph-io\badger\v2@v2.0.3\structs.go
Stream 模式
Merge Operations (数据合并)
GC (垃圾回收)
Database backup (数据备份)
静态加密(v2.0)
数据压缩(v2.0)通过使用提供的两种(zstd(需要cgo)、snappy)压缩算法之一压缩每个数据块,可以节省存储空间。仅压缩SST文件,而不压缩vlog中的文件。
badger 目录结构
LevelDB 介绍
2011年发行 来自Google实验室 开源 发行于C++,GO复写
https://github.com/google/leveldb (C++版本)
https://github.com/syndtr/goleveldb(GO版本)
https://godoc.org/github.com/syndtr/goleveldb/leveldb
目录结构
BadgerDB 性能测试(In-Memory Mode)
次数 | 耗时 | 内存 | IO |
---|---|---|---|
100000 | 3s | 高(比Disk高三倍) |
相关文章