Bedrock is a distributed relational DBMS designed for geo-replication. It uses SQLite as its backing data storage and supports the MySQL wire protocol.[01]
- Website
- https://bedrockdb.com/[01]
- Source Code
- https://github.com/Expensify/Bedrock[02]
- Developer
- Country of Origin
- US
- Start Year
- 2016 [05]
- Project Type
- Open Source
- Written in
- C++
- Supported Languages
- C++
- Embeds / Uses
- SQLite
- Inspired By
- SQLite
- Compatible With
- MySQL
- License
- LGPL v3
Bedrock is a distributed relational DBMS designed for geo-replication. It uses SQLite as its backing data storage and supports the MySQL wire protocol.[01]
History[03][04][01]
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.
Concurrency Control
Bedrock synchronization engine is a private distributed general ledger, i.e, a private blockchain. Each thread has an internal table called journal
Hardware Acceleration[01]
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.
Citations
5 sources- Bedrock by Expensify bedrockdb.com
- GitHub - Expensify/Bedrock: Rock solid distributed database specializing in active/active automatic failover and WAN replication · GitHub github.com
- Bedrock/docs at main · Expensify/Bedrock · GitHub github.com
- Your Database is Your Prison — Here’s How Expensify Broke Free firstround.com
- First commit github.com