boltdb 数据结构
boltdb暴露给用户的数据概念较少,只有以下:
Options初始化boltdb时的相关配置选择;DB整个boltdb的持有者,跟boltdb相关操作都要通过调用其方法发起,是boltdb的一个抽象;Stats调用DB.Stats()方法返回的数据结构,内包含一些boltdb内部的计数信息,可以供用户查看;Bucket类似于表的一个概念,在boltdb相关数据必须存在一个Bucket下,不同Bucket下的数据相互隔离,每个Bucket下 有一个单调递增的Sequence,类似于自增主键;BucketStatsBucket的一些统计信息;Txboltdb的事务数据结构,在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存储不同的数据信息;
文档信息
- 本文作者:Neal Hu
- 本文链接:https://lrita.github.io/2017/05/22/boltdb-data-1/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)