Bedrock

Bedrock is a distributed relational DBMS designed for geo-replication. It uses SQLite as its backing data storage and supports the MySQL wire protocol.

History

BedRock is the system that backs Expensify, the expense management company. It had been used for 8 years prior to being launched. It was originally created as an in house solution to the strict database constraints of financial institutions - response time within milliseconds, transaction logging and authentication, and replication of multiple servers.

Data Model

Relational

Concurrency Control

Multi-version Concurrency Control (MVCC)

Bedrock synchronization engine is a private distributed general ledger, i.e, a private blockchain. Each thread has an internal table called some journaltext

Hardware Acceleration

Custom

Bedrock is written for modern hardware with SSD-backed RAID drives and RAM file caches. It was made to be "simple", not requiring any esoteric hardware hacks as done by other systems. Hence, there is no standard hardware acceleration option.

Query Interface

SQL Command-line / Shell

System Architecture

Shared-Nothing

Indexes

B+Tree

Storage Architecture

Disk-oriented

Bedrock Logo
Website

http://bedrockdb.com/

Source Code

https://github.com/Expensify/Bedrock

Tech Docs

https://github.com/Expensify/Bedrock/tree/master/docs

Developer

Expensify

Country of Origin

US

Start Year

2016

Project Type

Open Source

Written in

C++

Supported languages

C++

Embeds / Uses

SQLite

Inspired By

SQLite

Compatible With

MySQL

Operating Systems

Linux, OS X

Licenses

LGPL v3