Jump to content

FoundationDB

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Nosql.analyst (talk | contribs) at 19:45, 23 July 2013 (Added design limitations to reflect neutral point of view.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
FoundationDB
Developer(s)FoundationDB
Initial releaseError: All values must be integers (help)
Stable release
Beta 2
Repository
Written inC++
Operating systemCross-platform
Available inEnglish
TypeNoSQL
Websitewww.foundationdb.com

FoundationDB is a NoSQL database with a shared nothing architecture.[1] The product is designed around a "core" database, with additional features supplied in "layers."[2] The core database exposes an ordered key-value store with transactions.[3] The transactions are able to read or write multiple keys stored on any machine in the cluster while fully supporting ACID properties.[4] 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 1 release.[5]

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.[3]
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.[2]
Commodity clusters
FoundationDB is designed for deployment on distributed clusters of commodity hardware running Linux.[6]
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 Mac OS X. The Linux version supports production clusters, while the Windows and Mac OS X versions support local operation for development purposes. Configurations on Amazon EC2 are also supported.[7]
Language support
FoundationDB supports language bindings for Python, Ruby, Node.js, Java, and C, all of which are made available with the product.[7]

Design limitations

The design of FoundationDB results in several limitations:

Long transactions
FoundationDB does not support transactions running over five sections.
Large transactions
Transaction size cannot exceed 10 MB of total written keys and keys.
Large keys and values
Keys cannot exceed 10 kB in size. Values cannot exceed 100 kB in size.

History

FoundationDB, headquartered in Vienna, VA,[7] 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.[8]

See also

References