boltdb
Ethan3014
头发多睡眠足有妹子的程序员
展开
-
bbolt: Begin
签名func (db *DB) Begin(writable bool) (*Tx, error) { if writable { return db.beginRWTx() } return db.beginTx()}读写事务beginRWTx获取锁 // Obtain writer lock. This is released by the transaction w...原创 2020-01-28 10:27:48 · 263 阅读 · 0 评论 -
bbolt: open
签名func Open(path string, mode os.FileMode, options *Options) (*DB, error)打开文件lock, 调用syscall的flock初始化或者读取文件元信息每个page的初始元信息type page struct { id pgid flags uint16 count uint16 o...原创 2020-01-23 16:29:37 · 236 阅读 · 0 评论 -
bbolt: main
文章目录依赖子命令benchrunWritesrunReadsbucketscompact依赖module go.etcd.io/bboltgo 1.12可以看到没有依赖任何第三方组件。main函数的参数解析逻辑都是自己写的,所以导致main.go有2k+行。其实用cobra会好一点吧。子命令Bolt is a tool for inspecting bolt databases....原创 2020-01-22 12:06:22 · 693 阅读 · 0 评论 -
boltdb: intro
synopsisbbold是一个嵌入式的kv存储,作为主程序的lib库存在,提供简单可靠的get、setgithubboltdb当前api已经固定了,另外生产环境上一直在使用,数据存储量高达1T,所以值得信赖。另外代码量比较少(< 5k),适合用于研究。...原创 2020-01-12 12:55:59 · 137 阅读 · 0 评论