Badger、Leveldb

2022-04-21 00:00:00 内存 描述 重置 在这里 插入图片

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)

opts := badger.DefaultOptions("").WithInMemory(true)
  • 1
次数耗时内存IO
1000003s高(比Disk高三倍)

相关文章