BoltDB 介绍与源代码分析(一):BoltDB 概述

BoltDB 介绍

BoltDB 是一个使用 Golang 语言编写的嵌入式 KV 数据库

GitHub 地址: https://github.com/boltdb/bolt

Etcd 就是使用了 BoltDB 作为数据存储

BoltDB 作者表示:

  • BoltDB 初衷是提供一个简单的纯 Go 键/值存储,并且不会使用无关的功能使代码膨胀
  • 自己不再有时间或精力继续这项工作
  • BoltDB 处于稳定状态,并有多个成功的项目在使用

因此,该开源项目,作者目前已经 Archive

Etcd fork 了分支: https://github.com/etcd-io/bbolt ,并提供了新的空闲页管理机制

BoltDB 特点

BoltDB 具备以下特点:

  • 单机数据库,非分布式数据库
  • 具备 ACID 事务一致性
  • 具有 MVCC 的多读单写并发
  • 基于 B+ 树组织索引与存储
  • 文件映射与简单逻辑页管理机制
  • 其他特点:纯粹,只处理 KV 存储;简单,代码量少;嵌入式

以上特点表现出来的效果:

  • 可靠、稳定、数据不丢失
  • 写入操作 TPS 低,适合写频次不高的业务
  • KV 存储,不适合数据关系复杂的业务
  • KV 数据库中较少的具备事务特性的数据库

以至于:

  • 与 Etcd 这种偏配置向运维向应用的契合度非常高
  • 是非常棒的,可作为学习数据库入门的 Golang 源代码教材

下章预告

下章将整体介绍 BoltDB 代码组织情况、代码架构等

后续章将深入每个模块,介绍 BoltDB 相关实现

你可能感兴趣的:(源代码分析,golang,数据库,源代码分析,Etcd,BoltDB)