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.