FoundationDB
   HOME

TheInfoList



OR:

FoundationDB is a
free and open-source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
multi-model
distributed Distribution may refer to: Mathematics *Distribution (mathematics), generalized functions used to formulate solutions of partial differential equations *Probability distribution, the probability of a particular value or value range of a varia ...
NoSQL A NoSQL (originally referring to "non- SQL" or "non-relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed ...
database developed by
Apple Inc. Apple Inc. is an American multinational technology company headquartered in Cupertino, California, United States. Apple is the largest technology company by revenue (totaling in 2021) and, as of June 2022, is the world's biggest company b ...
with a
shared-nothing architecture A shared-nothing architecture (SN) is a distributed computing architecture in which each update request is satisfied by a single node (processor/memory/storage unit) in a computer cluster. The intent is to eliminate contention among nodes. Nodes do ...
.Database House Wants You to Stop Dropping ACID
/ref> The product was designed around a "core" database, with additional features supplied in "layers."
/ref> The core database exposes an ordered key–value store with transactions. The transactions are able to read or write multiple keys stored on any machine in the cluster while fully supporting
ACID In computer science, ACID ( atomicity, consistency, isolation, durability) is a set of properties of database transactions intended to guarantee data validity despite errors, power failures, and other mishaps. In the context of databases, a sequ ...
properties.FoundationDB's NoSQL Breakthrough Challenges Relational Database Dominance
/ref> 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. Their 1.0 version was released for general availability on August 20, 2013. On March 24, 2015 it was reported that
Apple An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple fruit tree, trees are agriculture, cultivated worldwide and are the most widely grown species in the genus ''Malus''. The tree originated in Central Asia, wh ...
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. On April 19, 2018, Apple open sourced the software, releasing it under the Apache 2.0 license.


Main features

The main features of FoundationDB included 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 Multiversion concurrency control (MCC or MVCC), is a concurrency control method commonly used by database management systems to provide concurrent access to the database and in programming languages to implement transactional memory. Description W ...
for reads and
optimistic Optimism is an attitude reflecting a belief or hope that the outcome of some specific endeavor, or outcomes in general, will be positive, favorable, and desirable. A common idiom used to illustrate optimism versus pessimism is a glass filled wi ...
concurrency for writes. Transactions can span multiple keys stored on multiple machines. ; ACID properties : FoundationDB guarantees serializable isolation and strong
durability Durability is the ability of a physical product to remain functional, without requiring excessive maintenance or repair, when faced with the challenges of normal operation over its design lifetime. There are several measures of durability in use, ...
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. ; Commodity clusters : FoundationDB is designed for deployment on distributed clusters of
commodity In economics, a commodity is an economic good, usually a resource, that has full or substantial fungibility: that is, the market treats instances of the good as equivalent or nearly so with no regard to who produced them. The price of a comm ...
hardware running
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
.FoundationdB Releases New NoSQL Data Platform
/ref> ; 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 Scalability is the property of a system to handle a growing amount of work by adding resources to the system. In an economic context, a scalable business model implies that a company can increase sales given increased resources. For example, a ...
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,FoundationDB Aims to Consolidate NoSQL
/ref> 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.SQL or NoSQL: FoundationDB Launches a 'Best of Both Worlds' Database
/ref> 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. Apple Inc. is an American multinational technology company headquartered in Cupertino, California, United States. Apple is the largest technology company by revenue (totaling in 2021) and, as of June 2022, is the world's biggest company b ...
, which was confirmed March 25, 2015.Apple Acquires Durable Database Company FoundationDB
/ref> On April 19, 2018, Apple open sourced the software, releasing it under the Apache 2.0 license.


See also

*
Database transaction A database transaction symbolizes a unit of work, performed within a database management system (or similar system) against a database, that is treated in a coherent and reliable way independent of other transactions. A transaction generally rep ...
*
Distributed database A distributed database is a database in which data is stored across different physical locations. It may be stored in multiple computers located in the same physical location (e.g. a data centre); or maybe dispersed over a network of interconnect ...
*
Distributed transaction A distributed transaction is a database transaction in which two or more network hosts are involved. Usually, hosts provide transactional resources, while the transaction manager is responsible for creating and managing a global transaction that enc ...
*
List of formerly proprietary software This is a list of notable software packages which were published under a proprietary software license but later released as free and open-source software, or into the public domain. In some cases, the company continues to publish proprietary rel ...


References


External links

* *
FoundationDB blog
{{DEFAULTSORT:FoundationDB Applications of distributed computing Databases Distributed computing architecture Distributed data stores Key-value databases NoSQL Structured storage Transaction processing Apple Inc. acquisitions Formerly proprietary software