FoundationDB uncloaks ACID-compliant NoSQL beta
Lets developers have infinite cake and eat it in ACID-compliant bites
Skeptical developers can now get their hands on a NoSQL database that supports ACID-compliant transactions, a handy tech for web applications that expect their usage to take off like a rocket.
A beta version of the FoundationDB NoSQL database became available for download on Monday. It differs from other NoSQL systems in that it supports ACID-compliant transactions, while having the scalability characteristics of a NoSQL datastore.
"What we're trying to do here is not even build a database per se, we're tring to build a transactional storage substrate that can then be used to expose a variety of different data models," FoundationDB cofounder David Rosenthal told The Register.
The technology is a good candidate to become the storage layer for huge net-orientated applications, Rosenthal noted.
A vast website with tons of requests per second along with an equally huge number of writes would be an ideal proving ground for the tech, he said. (Reddit would be one such example of a site that fits this scenario.)
By allowing for ACID (Atomicity, Consistency, Isolation, Durability) transactions, the FoundationDB system can give strong guarantees around data.
This is handy if you're building a massive web application that cannot mess up at all for fear of customer reprisals, such as a site that helps to track the flow of goods for a logistics company.
At its basic level, FoundationDB is a key-value store that implements ACID-compliance by running workloads via a language based on C++ named Flow, which the machines in a cluster use to talk to one another to perform transaction processing and conflict resolution.
Unlike some NoSQL systems that also incorporate a rough analytical tier, FoundationDB intends to become an all-purpose storage layer for the next generation of web properties.
The reason why a developer might want this is that having an ACID-compliant data storage layer that is very scalable takes away a lot of the worry about flinging ever-growing amounts of data into multiple different storage infrastructures.
FoundationDB's promise is that you can have tons of read and write requests occurring concurrently through any interface layer you like – for example, a document data model like MongoDB, or even a simple Python script – and the system underneath will "just work".
This means that as more people use your application it is trivial to increase its storage, since you just need to throw more machines at your hardware cluster rather than needing to successively rewrite your application.
It's worth noting that developers will still be working within the nebulous world of NoSQL, so they could get bitten by problems introduced when adding SQL-like layers on top of FoundationDB for querying purposes.
Next page: A tool for Google-scale problems
why developers care about acid
The article quotes some guy called Bradford Stevens as saying developers don't care about ACID. I dunno, maybe if they are a bunch of NCGs who've never had to maintain code over any period of time (and there are a lot of companies in silicon valley where that describes the entire engineering staff). But for the rest of us, not needing to have special case checks to recover when your operation only partially succeeds (atomicity), not worrying about the impact of other storage clients when accessing the store (consistency and isolation), and being damn sure that your data makes it to disk (durability) is hugely important.
Let's suppose you do a typical startup half-ass approach to development and you tolerate lots of weird partial transactions because hey, you're not operating on credit card data. At some point, some pointy haired person is going to get the brilliant idea that there's gold in them there logs. Now you're going to need to build some sort of ETL flow to get that data into a nice, easily queriable form. And then you're going to find that you need shit-tons of special case logic to coerce all those different botched transactions, each of which is going to take significant time to detect, track down, and support.
But hey, by that time your NCGs will probably have moved on to other, shinier, newer, pursuits. So maybe they don't care after all.
Re: PR replaces journalism
I remember when Acme used to release jet-powered roller skates, exploding corn and similarly exciting products. They've just stopped innovating.
Closed source - undisclosed price
Binary download only. Licence agreement to sign.
Website says "FoundationDB Beta 1 is ready for production use" but licence says "for test purposes only in a non-production environment and solely for your internal business purposes to evaluate the functionality of the Software."
Presumably a production licence exists - it just doesn't say how to get one or how much it costs.
Even Oracle/Mysql is more transparent than this.