boltdb 源码分析-数据结构-1

2017/05/22 database bolt

boltdb 数据结构

boltdb暴露给用户的数据概念较少,只有以下:

  • Options 初始化boltdb时的相关配置选择;
  • DB 整个boltdb的持有者,跟boltdb相关操作都要通过调用其方法发起,是boltdb的一个抽象;
  • Stats 调用DB.Stats()方法返回的数据结构,内包含一些boltdb内部的计数信息,可以供用户查看;
  • Bucket 类似于的一个概念,在boltdb相关数据必须存在一个Bucket下,不同Bucket下的数据相互隔离,每个Bucket下 有一个单调递增的Sequence,类似于自增主键;
  • BucketStats Bucket的一些统计信息;
  • Tx boltdb的事务数据结构,在boltdb中,全部的对数据的操作必须发生在一个事务之内,boltdb的并发读取都在此实现;
  • Cursor 是内部B-TREE的一个迭代器,用于遍历数据库,提供First/Last/Seek等操作;

还有一些内部数据结构,帮助实现一些内部逻辑:

  • node 用来存储每个Bucket中的一部分Key-Value,每个Bucket中的node组织成一个B-TREE;
  • inode 记录Key-Value对的数据结构,每个node内包含一个inode数组,inode是K-V在内存中缓存的记录,该记录落到磁盘上 时,记录为leafPageElement
  • leafPageElement 磁盘上记录具体Key-Value的索引;
  • page 用户记录持久化文件中每个区域的重要信息,同时page分为很多种类,不同page存储不同的数据信息;

Search

    Table of Contents