FoundationDB

{{short description|Free and open-source multi-model NoSQL database developed by Apple}}

{{prose|date=January 2019}}

{{Infobox software

| name = FoundationDB

| logo = FoundationDB logo.png

| author = {{plainlist|

  • Nick Lavezzo
  • Dave Rosenthal
  • Dave Scherer

}}

| developer = Apple Inc.

| released = {{Start date|2013|03|04|df=yes}}

| latest release version = 7.3.63{{cite web |url=https://github.com/apple/foundationdb/releases |title=Releases of apple/foundationdb |website=github.com |access-date=2025-02-22}}

| latest release date = {{start date|2025|02|22|df=yes}}

| programming language = C++, C{{citation|title=FoundationDB: the open source, distributed, transactional key-value store - apple/foundationdb|url=https://github.com/apple/foundationdb|date=4 January 2019|via=GitHub}}

| operating system = {{plainlist|

}}

| language = English

| genre = NoSQL

| license = Apache License 2.0

}}

FoundationDB is a free and open-source multi-model distributed NoSQL database developed by Apple Inc. with a shared-nothing architecture.[https://www.wired.com/wiredenterprise/2013/03/foundationdb/ Database House Wants You to Stop Dropping ACID] The product was designed around a "core" database, with additional features supplied in "layers."[http://www.h-online.com/developer/news/item/FoundationDB-releases-beta-of-its-NoSQL-YesACID-database-1816279.html FoundationDB Releases Beta of its 'NoSQL/YesACID' Database] The core database exposes an ordered key–value store with transactions.{{Cite web |url=http://www.datanami.com/datanami/2013-03-04/foundationdb_s_acid_compliant_nosql_available.html |title=FoundationDB's ACID Compliant NoSQL Available |access-date=2013-04-11 |archive-url=https://archive.today/20130628234523/http://www.datanami.com/datanami/2013-03-04/foundationdb_s_acid_compliant_nosql_available.html |archive-date=2013-06-28 |url-status=dead }} The transactions are able to read or write multiple keys stored on any machine in the cluster while fully supporting ACID properties.[http://readwrite.com/2013/03/08/foundationdbs-nosql-breakthrough-challenges-relational-database-dominance FoundationDB's NoSQL Breakthrough Challenges Relational Database Dominance] Transactions are used to implement a variety of data models via layers.

The FoundationDB Alpha program began in January 2012 and concluded on March 4, 2013, with their public Beta release.{{Cite web |url=http://sdt.bz/41498 |title=FoundationDB Brings Transactions to NoSQL |access-date=2013-04-11 |archive-url=https://web.archive.org/web/20180420074803/http://sdt.bz/41498 |archive-date=2018-04-20 |url-status=dead }} Their 1.0 version was released for general availability on August 20, 2013. On March 24, 2015, it was reported that Apple has acquired the company. A notice on the FoundationDB web site indicated that the company has "evolved" its mission and would no longer offer downloads of the software.{{Cite web |url=http://community.foundationdb.com/ |title=All Posts - FoundationDB |access-date=2019-12-19 |archive-url=https://web.archive.org/web/20150325181956/http://community.foundationdb.com/ |archive-date=2015-03-25 |url-status=dead }}

On April 19, 2018, Apple open sourced the software, releasing it under the Apache 2.0 license.

Main features

The main features of FoundationDB include the following:

; Ordered key–value store

: In addition to supporting standard key-based reads and writes, the ordering property enables range reads that can efficiently scan large swaths of data.

; Transactions

: Transaction processing employs multiversion concurrency control for reads and optimistic concurrency for writes. Transactions can span multiple keys stored on multiple machines.

; ACID properties

: FoundationDB guarantees serializable isolation and strong durability via redundant storage on disk before transactions are considered committed.

; Layers

: Layers map new data models, APIs, and query languages to the FoundationDB core. They employ FoundationDB's ability to update multiple data elements in a single transaction, ensuring consistency. An example is their SQL layer.{{Cite web |url=https://foundationdb.com/layers/sql |title=The FoundationDB SQL Layer |access-date=2013-08-21 |archive-url=https://web.archive.org/web/20130820193744/https://foundationdb.com/layers/sql |archive-date=2013-08-20 |url-status=dead }}

; Commodity clusters

: FoundationDB is designed for deployment on distributed clusters of commodity hardware running Linux.[https://www.zdnet.com/article/foundationdb-releases-new-nosql-data-platform/ FoundationdB Releases New NoSQL Data Platform]

; Replication

: FoundationDB stores each piece of data on multiple machines according to a configurable replication factor. Triple replication is the recommended mode for clusters of 5 or more machines.

; Scalability

: FoundationDB is designed to support horizontal scaling though the addition of machines to a cluster while automatically handling data replication and partitioning.

; Systems supported

: FoundationDB supports packages for Linux, Windows, and macOS. The Linux version supports production clusters, while the Windows and macOS versions support local operation for development purposes. Configurations on Amazon EC2 are also supported.

; Programming language bindings

: FoundationDB supports language bindings for Python, Go, Ruby, Node.js, Java, PHP, and C, all of which are made available with the product.

Design limitations

The design of FoundationDB results in several limitations:

; Long transactions

: FoundationDB does not support transactions running over five seconds.

; Large transactions

: Transaction size cannot exceed 10 MB of total written keys and values.

; Large keys and values

: Keys cannot exceed 10 kB in size. Values cannot exceed 100 kB in size.

History

FoundationDB, headquartered in Vienna, VA,[https://archive.today/20130628220148/http://www.cio.com/article/729809/FoundationDB_Aims_to_Consolidate_NoSQL FoundationDB Aims to Consolidate NoSQL] was started in 2009 by Nick Lavezzo, Dave Rosenthal, and Dave Scherer, drawing on their experience in executive and technology roles at their previous company, Visual Sciences.[https://venturebeat.com/2013/03/04/foundationdb-launches-its-best-of-both-worlds-database/ SQL or NoSQL: FoundationDB Launches a 'Best of Both Worlds' Database]

In March 2015 the FoundationDB Community site was updated to state that the company had changed directions and would no longer be offering downloads of its product. The company was acquired by Apple Inc., which was confirmed March 25, 2015.{{Cite news|url=https://blogs.wsj.com/digits/2015/03/24/apple-acquires-foundationdb/?mod=WSJ_hps_sections_tech|title = Apple Acquires FoundationDB|newspaper = Wall Street Journal|date = 25 March 2015|last1 = Ovide|first1 = Shira}}[https://techcrunch.com/2015/03/24/apple-acquires-durable-database-company-foundationdb/ Apple Acquires Durable Database Company FoundationDB]

On April 19, 2018, Apple open sourced the software, releasing it under the Apache 2.0 license.{{Cite web|url=https://www.foundationdb.org/blog/foundationdb-is-open-source/|title=FoundationDB is Open Source|website=www.foundationdb.org|access-date=2018-04-19}}

See also

References

{{Reflist}}