BoltDB

BoltDB is an embedded key/value database written in Go. It supports fully serializable transactions, ACID semantics, and lock-free MVCC with multiple readers and a single writer. BoltDB uses a single-level, zero-copy, B+tree data storage, which allows fast read access and does not require recovery in the event of a system crash.

History

In 2011, Howard Chu introduced MDB, a memory-mapped database backend for OpenLDAP, later renamed to [LMDB] (https://symas.com/lmdb/technical/)(Lightning Memory-Mapped Database). In 2013, BoltDB was initially started by Ben Johnson as a port of LMDB to Go, but then the two projects diverged as the author of Bolt decided to focus on simplicity and providing the easy-to-use Go API. The goal of BoltDB became to provide a simple, fast, and reliable database for projects that don't require a full database server such as Postgres or MySQL. With BoltDB being stable, its API fixed, and its file format fixed, the author considered the project a success. Leaving it in such a state, the project was abandoned by its author in 2017.

Concurrency Control

Timestamp Ordering

BoltDB allows only one read-write transaction at a time.

Indexes

B+Tree

Data Model

Key/Value

Bolt is a key-value store that provides an ordered map, which allows easy access and lookup.

Checkpoints

Not Supported

Query Compilation

Not Supported

Query Interface

Custom API

System Architecture

Embedded

Storage Organization

Heaps

Foreign Keys

Not Supported

BoltDB Logo