Cockroach Creates Pebble
Written by Kay Ewbank   
Monday, 28 September 2020

Cockroach Labs has introduced Pebble, which is described as a RocksDB inspired and RocksDB compatible key-value store. Until now, CockroachDB has used RocksDB as its key-value store, but Pebble provides more control over future enhancements tailored for CockroachDB’s needs.

CockroachDB is a distributed SQL database that is cloud native and offers horizontal scalability with no single points of failure.

pebble

The Cockroach Labs team says that in addition to giving more control, Pebble brings better performance and stability, and avoids the challenges of traversing the Cgo boundary. Pebble will replace RocksDB as the default storage engine for CockroachDB from the 20.2 release this fall.

Pebble inherits the RocksDB file formats and a few extensions such as range deletion tombstones, table-level bloom filters, and updates to the MANIFEST format. It doesn't have all RocksDB features, concentrating instead on the feature set needed by CockroachDB.

Pebble's API and internal structures resemble RocksDB. Pebble is an LSM key-value store which provides Set, Merge, Delete, and DeleteRange operations. Operations can be grouped into atomic batches, and records can be read individually via Get, or iterated over in key order using an Iterator.

Pebble supports read-only snapshots to provide a lightweight point in time view of the database. Internally, the data in Pebble is stored in a combination of Write Ahead Logs (WALs) and Sorted String Table (sstables). Recently written data is buffered in memory in a series of Memtables. These are flushed to disk to create sstables, and sstables are periodically compacted in the background.

The list of features starts with the basic operations - Set, Get, Merge, Delete, Single Delete and Range Delete. You get block-based tables and checkpoints, alond with indexed batches and write-only batches. It supports iterator options including lower and upper bounds and table filters. Level-based, manual and concurrent compaction is supported, along with intra-Lo compaction.

While Pebble will become the default storage engine, RocksDB remains as an alternative storage engine in 20.2, but will be fully removed at some point. Pebble is available on GitHub.

 

pebble

 

More Information

cockroachlabs

Pebble On GitHub

Related Articles

CockroachDB 20.1 Improves App Development

CockroachCloud Enters Beta

CockroachDB Adds GDPR Compliance

CockroachDB Production Ready

CockroachDB Released

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on, Twitter, Facebook or Linkedin.

Banner


GitHub Code Scanning Generally Available
30/09/2020

Github's code analysis technology based on CodeQL, which it acquired as part of its purchase of Semmie in 2019, is now out of beta and generally available.



Java Devs - Where, What, How
30/09/2020

Java celebrated its 25th birthday earlier this year and has subsequently seen the general availability of Java 15. Judged to be the second most used programming language, surpassed only by JavaScript, [ ... ]


More News

square

 



 

Comments




or email your comment to: comments@i-programmer.info

 

Last Updated ( Monday, 28 September 2020 )