分享
boltdb 源码分析-数据结构-1
lrita · · 2941 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
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存储不同的数据信息;
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信2941 次点击
上一篇:boltdb 源码分析-简介-0
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
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存储不同的数据信息;