Tuesday, 17 April 2012

They tried to give me a database, but I said, NoSQL, No NoSQL, No No No-oo-oo.

I am starting (reluctantly) to come to the conclusion that SQL & NoSQL databases are the wrong tools for the tasks that I want to undertake: For a colourful but ultimately misleading metaphor: They give me a hammer when I want a screwdriver. The databases that my (limited) experience encompasses (MySQL, Oracle, MongoDB) all offer a slew of features that I neither use nor need. Furthermore, the subset of features that I *do* need is probably better packaged as a set of libraries than as a separate application. For example, I want to manipulate large quantities of data, stored in RAM, possibly spread across multiple machines, possibly operated on by processes operating concurrently or in parallel. I would like to be able to plug together the distribution/replication/sharding of data & tasks, the fault-tolerance, zeroconfig style ease-of-administration, even (maybe) some indexing capabilities, but in such a way that will let me choose when I want each feature.