noSQL is a big tent with lots of interesting tech in it. A few years ago at work I got an assignment to evaluate graph databases as a possible datastore for our 40-million-pageviews-a-day CMS. Graph DBs are elegant stuff, though not a particularly special fit for that application. Here’s what I had to say. Graph databases are all about “highly connected” data. But instead of tracking relationships through foreign-key mappings RDBMS style, they use pointers that directly connect the related records.
(Note: This is a writeup I did a few years ago when evaluating Riak KV as a possible data store for a high-traffic CMS. At the time, the product was called simply “Riak”. Naturally, other details may be out of date as well.) Riak is a distributed, key/value store written in Erlang. It is open source but supported by a commercial company, Basho. Its design is based on an Amazon creation called Dynamo, which is described in a 200-page paper published by Amazon.
(There’s got to be a name for blog posts that you make just so you’ll be able to remember something later – or so somebody who is banging their head against a problem you just solved can find your solution via Google magic. This is one of those posts.) A while back I started getting bizarre errors when using Python with MySQL. They looked like this: python in free(): warning: junk pointer, too high to make sense It didn’t make sense to me either!