DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

Pebble


Pebble is a key-value store written in Go and developed by Cockroach Labs. It is based on an unfinished Go port of LevelDB. Furthermore, additional features and optimizations are inspired by parts of RocksDB. Pebble is specifically created to suit the needs of CockroachDB, and has unique features that neither LevelDB nor RocksDB have.

Source Code
https://github.com/petermattis/pebble[01]
Developer
Country of Origin
US
Start Year
2018 [03]
Project Type
Open Source
Written in
Go
Supported Languages
Go
Inspired By
LevelDB, RocksDB
Compatible With
LevelDB, RocksDB
License
BSD License

Database Entry

Pebble


Pebble is a key-value store written in Go and developed by Cockroach Labs. It is based on an unfinished Go port of LevelDB. Furthermore, additional features and optimizations are inspired by parts of RocksDB. Pebble is specifically created to suit the needs of CockroachDB, and has unique features that neither LevelDB nor RocksDB have.

History


The project started in 2018 as a replacement for RocksDB running inside of CockroachDB.

Data Model


Indexes


Pebble uses a LSM tree to store writes. All records are stored in batches, which in turn are stored in in-memory memtables and sstables. There is a separate skiplist implementation which contains offsets of the records within their batch in order to perform reads.

Joins


Query Execution


Storage Architecture


Storage Model


Storage Organization


System Architecture


Citations

3 sources
  1. https://github.com/petermattis/pebble github.com Dead — Check Archive
  2. https://github.com/petermattis/pebble/tree/master/docs github.com Dead — Check Archive
  3. Initial fork (leveldb -> pebble) github.com
Revision #5 Last Updated: