FoundationDB
Developer(s) | FoundationDB |
---|---|
Initial release | Error: All values must be integers (help) |
Stable release | Beta 2
|
Repository | |
Written in | C++ |
Operating system | Cross-platform |
Available in | English |
Type | NoSQL |
Website | www |
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
- ^ Database House Wants You to Stop Dropping ACID
- ^ a b FoundationDB Releases Beta of its 'NoSQL/YesACID' Database
- ^ a b FoundationDB's ACID Compliant NoSQL Available
- ^ FoundationDB's NoSQL Breakthrough Challenges Relational Database Dominance
- ^ FoundationDB Brings Transactions to NoSQL
- ^ FoundationdB Releases New NoSQL Data Platform
- ^ a b c FoundationDB Aims to Consolidate NoSQL
- ^ SQL or NoSQL: FoundationDB Launches a 'Best of Both Worlds' Database