There are plenty of new databases coming out, aiming to tackle the massively scalable domain that Google’s BigTable pioneered. On the Radar mailing list, Jesse pointed out Cassandra (Facebook’s offering) and Mike Loukides countered with Hypertable, asking “We’re sort of being overrun with BigTable-style databases; I wonder what’s going to win?”. (Artur observed, “Cassandra is less like BigTable and more like a distributed column store with autocreating and searching in column namespace, but lacks a lot of indexing needed for BigTable.”)
Jesse replied it’d be the one that’s easiest for developers to use quickly, and I expanded that to:
- language and platform integration (e.g., Ruby, Rails, Django) so it can be used in the language you use to get stuff done
- higher abstractions available (as ActiveRecord is to databases, the higher abstraction would be to BigTable) to make it map closer to the problems you have, and to make you more productive with it (nobody disputes that machine code is very powerful but nobody wants to be debugging race conditions via hex dumps)
- straightforward deployment (either buy time on an S3-like cloud, or it’s no more hassle than MySQL to deploy)
- a killer app for PR purposes
Mike queried my integrations and abstractions items, though, observing that CouchDB has only an HTTP REST interface—you can write to it in bash using curl if you want. Jesse said that’s why they’re using it for Chef. I was the parade-rainer, though:
Doesn’t that just mean that it’s equally inconvenient for many languages? I mean, nobody slaps HTTP into their code as an API. Surely they write an own-language wrapper for the REST stuff so they’re not constantly arsing around with encoding parameters, decoding responses, all that business that’s not the business you’re in.
Artur rebutted with:
use LWP qw(get); use Whatever::JSON; $data = json_parse(get("http://couchdb/query"));
Simpler than DBI for sure.
I’m curious: do you use these new databases? What do you like about the one you use? What don’t you like? What do you think will be necessary for one to break out into the mainstream?