FoundationDB isn’t some new non-profit, nor is it a new book from Isaac Asimov. It’s actually a new database and company that’s pushing transaction and ACID compliance into the NoSQL fray. So focused on the transactional underpinnings of the database are its creators that they don’t even call it a database: They refer to it as a storage substrate.
David Rosenthal, cofounder of FoundationDB, said the project was started in 2009 to solve the problem of highly scalable transactions in cloud data stores.
“We talk about it as a storage substrate,” he said. “At its core, it’s a key-value store, where you have a binary key and a binary value. It keeps its keys in sorted order, so it supports sufficient range operations. The big differentiator is [that] unlike every other NoSQL, we have full ACID transactional guarantees. There’s no funny business, no asterisk, no reduced isolation levels, no transactions that can only contain certain keys. A transaction can take any keys.”
Thus, FoundationDB can handle high volumes of data and transactions without losing information in the fray. This is a major change from other NoSQL databases, such as MongoDB, which has placed a higher priority on performance scalability over transactional reliability. Many have commented on this as a liability of MongoDB and other NoSQL storage systems.
“A lot of people also use the word ‘ACID’ if you dig deep enough, but really the strongest guarantee any NoSQL makes is that you can sometimes do transactions on a single data element within the database, not spanning data elements,” said Rosenthal.
“The way I describe it is, if MySQL turns one computer into one database, sharding turns N computers into N databases. NoSQL is about turning N computers into infinity databases. Each little data element is its own data element with its own internal consistency and no consistency to the other ones.”