在使用 Grafana Loki 服务时,其使用该 BoltDB 数据库,用于存储索引。该笔记将记录:与 BoltDB 相关的内容,以及相关问题的解决办法;
认识
BoltDB,类似于 SQLite 数据库,以文件的方式存储数据,并不需要运行独立的数据库服务。
该项目已归档,其主要目的是提供轻量的 K/V 存储(现已实现),不提供更多附加的功能特性;
CoreOS/bbolt 提供是 Bolt 的 Fork,其提供更多的功能及特性。
CoreOS 开发 etcd 服务,而 etcd 使用 BoltDB,所以 CoreOS 才会 Fork BoltDB 吧;
组成
boltdb,是个基于 B+tree 实现的 key-value 嵌入式数据库,其通过提供 Bucket(桶)机制,来实现类似 MySQL Table 的逻辑隔离;
参考
GitHub – boltdb/bolt: An embedded key/value database for Go.
GitHub – etcd-io/bbolt: An embedded key/value database for Go.