Skip to content

hfdpx/boltdb

Repository files navigation

boltdb

基础理论

  • 在文件系统上,boltdb采用页的组织形式,将一切数据都对齐到页
  • 在内存中,boltdb采用B+树组织数据,其基本单元树节点
  • 一个内存中到树节点对应文件系统上一个或者多个连续的页

数据组织形式(自上而下)

  • 每个db对应一个文件
  • 在逻辑上,一个db包含多个bucket,相当于多个namespace,每个bucket对应一颗B+树,每个bucket的root节点在顶层也组织成一颗树,但不一定是B+树
  • 在物理上,一个db文件按页为单位进行顺序存储,一个页的大小和操作系统页的大小保持一致(4KB)

page和节点(node)的对应关系:

  • page是文件存储的基本单位,node是 B+ tree 的基本构成节点
  • 一个数据node对应一到多个连续的数据page
  • 连续的数据page序列化加载到内存中就成为一个数据node
总结:在文件系统上线性组织的数据page,通过页内指针,在逻辑上组成来一棵二维的B+tree,该树的树根保证在元信息page中,而文件中所有其他没有用到的页的ID列表,保存在空闲列表page中

About

解析boltdb源码

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published