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

Database Entry

FoundationDB


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 is originally built by three co-founders from Visual Sciences (NASDAQ:VSCN, now is a subsidiary of Adobe) in 2009 and later sold to Apple in 2015.[03][05]

Source Code
https://github.com/apple/foundationdb[02]
Developer
Country of Origin
US
Start Year
2009 [07]
Acquired By
Project Type
Open Source
Written in
C++
Derived From
SQLite
License
Apache v2

Database Entry

FoundationDB


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 is originally built by three co-founders from Visual Sciences (NASDAQ:VSCN, now is a subsidiary of Adobe) in 2009 and later sold to Apple in 2015.[03][05]

History[06][07][08]


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.

Concurrency Control[09]


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.

Data Model[10][11][12]


FoundationDB exposes a single data model, an ordered Key-Value data model as known as ordered map or ordered dictionary. Both keys and values are byte strings. To support a richer data-model or index, a user can write his own custom layer module API to remap the Key-Value data model.

Indexes[12]


As have been stated in the Data Model sections, FoundationDB doesn’t support indexes natively. A user needs to build indexes by writing a layer.

Isolation Levels


System Architecture[13]


Citations

13 sources
  1. http://foundationdb.com foundationdb.com Dead — Check Archive
  2. GitHub - apple/foundationdb: FoundationDB - the open source, distributed, transactional key-value store · GitHub github.com
  3. FoundationDB 7.3.77 — FoundationDB ON documentation github.io
  4. FoundationDB - Wikipedia wikipedia.org
  5. Anti-Features — FoundationDB ON documentation github.io
  6. Apple Acquires Durable Database Company FoundationDB | TechCrunch techcrunch.com
  7. SQL or NoSQL: FoundationDB launches a 'best of both worlds' database | VentureBeat venturebeat.com Dead — Check Archive
  8. FoundationDB Raises $17 Million in Series A vcnewsdaily.com
  9. Developer Guide — FoundationDB ON documentation github.io
  10. Data Modeling — FoundationDB ON documentation github.io
  11. Features — FoundationDB ON documentation github.io
  12. Layer Concept — FoundationDB ON documentation github.io
  13. Fault Tolerance — FoundationDB ON documentation github.io
Revision #5 Last Updated: