BoltDB源码解析-开篇

Bolt是一个Go语言实现的key value存储。有不少Go语言的开源项目都使用Bolt做持久存储,比如大名鼎鼎的etcd。

今天下载了Bolt的源码扫了一扫,除去test文件外,代码量总共只有四千多行,令我十分惊讶。Bolt的主要数据结构是B+tree。B+tree这种磁盘数据结构本身要想实现得好,可能就得千把行代码,而Bolt在B+tree的基础上,支持事务的ACID特性,支持基于MVCC的并发,支持基于Bucket的DB空间划分。所有这些,仅仅用了四千多行代码!

在极少的代码量下,支持如此丰富的功能,并且能达到工业生产级别的稳定性,Bolt极大的引起了我的好奇心。接下来打算仔细阅读一下Bolt的代码,随时会把自己对Bolt的设计和实现的理解写下来,和大家分享。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片