FoundationDB is a distributed non-relational database that supports ACID transactions and OLTP workloads. FoundationDB decouples its data storage technology from its data model. All data is stored as an ordered key-value data structure and can be remapped to custom data models or indexes by using user-written layer module API. FoundationDB doesn’t have any separate query language, it only exposes API to access data.
FoundationDB was famous for having a very rigorous and thorough testing of their fault tolerance. They built their own [deterministic testing] (https://www.youtube.com/watch?v=4fFDFbi3toc) while developing their system to make sure their system implementation behaves correctly. The simulation was built to model real-life scenarios, such as a combination of transaction executions while having network failure, database configuration change, dumb system admin etc. Jepsen didn't even need to test FoundationDB because of FoundationDB’s rigorous simulation.
FoundationDB is originally built in 2009 by three co-founders, Dave Rosenthal, Dave Scherer, Nick Lavezzo. The founders used to work for Visual Sciences; an analytics company (NASDAQ:VSCN, now is a subsidiary of Adobe). FoundationDB had raised $17M in Series A funding in November 2011 with total funding of $22.7 million in two rounds from SV Angel, Sutter Hill. The company was acquired by Apple in 2015.
Optimistic Concurrency Control (OCC)
FoundationDB uses Optimistic Concurrency Control (OCC) for writes and Multiversion Concurrency Control (MVCC) for reads. On commit, FoundationDB cluster will check whether there is any existing conflicting transactions, for example, there is an update on the value that has been read by a transaction. Had the transaction conflicted, the system would reject it and the client is responsible to retry this transaction. If there is no conflict, the transactions are accepted and written in multiple cluster nodes and the system will report success to the client.
https://github.com/apple/foundationdb/
https://apple.github.io/foundationdb/index.html
FoundationDB
2009
Apple