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.”
FoundationDB officially launched its public beta on March 4. Rosenthal hoped that many developers attempting to build scalable storage back ends to their cloud-based applications will see benefits from FoundationDB. Why does he think they’ll find it useful? Because Google did it first, he said.
“This whole NoSQL thing got kicked off when Google put out papers on GFS, Map/Reduce and BigTable,” said Rosenthal. “Those kicked off the NoSQL world five years ago. Pretty much everybody copied those papers. Google said, ‘We’re going to optimize for scalability.’
“The really interesting thing is that, a few months ago, they published their paper about Spanner, which replaced their first-generation NoSQL. Spanner has full transactions across data elements and multi-key transaction integrity. Google said in that paper, ‘We have the best and brightest, but out engineers have a hard time building applications on top of these databases with weak consistency models.’ What they really want is transactions.”