还在篮子里

BoltDB Page Layout · 语雀

BoltDB Page Layout

尝试在尽量简洁的语言中讲解清楚,boltdb 的存储过程,分页算法。结合图片。同时,讲清楚这个,整个 boltdb 就完全清楚了,剩下的不过是 把数据 key value 放在 每一个 page 中。其他 boltdb 的部分可以自己看源码和看别人的博客了解

BoltDB 作为无临时文件,只在内存中写的数据库,是如何通过页面分配支持完整的事务特性(ACID)使用 MVCC并发控制。

首先是一点概念,BoltDB 是一个 K/V 数据库,他把数据都储存在文件系统的一个文件上,都是以字节切片的格式存储的,在运行中,文件在内存中组织成 B+ 树,K/V 数据储存在 名叫 Bucket 的桶中,每一个 Bucket 都是一个完整的 B+ 树。B+ 树的每一个 node 存储着数据,对应着文件中的一个(或多个连续) page,而 page 是由操作系统的页面大小决定的,一般为 4k。

page.svg

page-allocate.svg

Refer

存储结构和并发事务特性解析:https://youjiali1995.github.io/storage/boltdb/

源代码详细内在逻辑流程:https://www.jianshu.com/p/b86a69892990

来源: BoltDB Page Layout · 语雀

发表评论

电子邮件地址不会被公开。 必填项已用*标注