LevelDB介绍-随笔

LevelDB是一款高性能的单机KV数据库,以其顺序写和读的优秀性能著称。顺序写入通过Log文件和内存中的memtable实现,而读取则涉及memtable、cache和Bloom Filter。顺序读取借助于数据的有序性和缓存,提供高效性能,而随机读取由于需要多次查找,性能相对较弱。
摘要由CSDN通过智能技术生成
最近在看区块链代码的时候对LevelDB有点兴趣,所以了解了一下,这篇文章写的挺好的,可以看看

https://blog.csdn.net/linuxheik/article/details/52768223

刚刚看到这篇文章,介绍的比上一篇详细:

https://blog.csdn.net/charles1e/article/details/52966776

LevelDB是google开源的KV(key-value,存储的数据都是kv的形式)单机数据库,官方版本是C++,比特币使用的是c++版本:

    https://github.com/google/leveldb

以太坊使用的是go语言版本:

    https://github.com/syndtr/goleveldb

性能方面:号称顺序写、随机写速度快,顺序读快,随机读性能一般,

所以想了解下为什么性能是这样的。读了上面的博客和其他一些文章,大致有了答案。

LevelDB写数据的流程,写数据的时候依次写入

1 Log文件(用来系统崩溃后恢复数据,防止丢失数据),存储的数据是Key无序的,写入的时候顺序写入

2 memtable文件(内存,使用Skiplist实现),Key有序

当memtable满足一定条件(写满了之后,默认是4M大小,以太坊设置的是192M)改变为immutable memtable同时触发执行minor compaction(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值