Open source and SaaS offerings rethink the database
Key-value repositories and other alternatives take aim at simplicity, scalability, and cloud servicesFollow @peterwayner
The world of low-rent key-value storage silos is exploding. Here's a list of some of the more prominent new projects:
Thrift, a tool that Facebook.com built and donated to the Apache software project, isn't really a database. In fact, it's more of a pre-compiler that converts a file describing the data structures into a pile of code in your choice of languages. This code may need some extra libraries (Java comes with some methods that serialize the data to an output stream), but it's ready to include with your own code. The project includes formatters for many of the major languages (including C, Perl, Java, PHP, and Python), and it aims to honor the various idioms used by the programmers familiar with a language. You give it the schema and it does the rest.
[ In this brave, new world of databases, find out whether Amazon SimpleDB, Apache CouchDB, Google App Engine, or Persevere come out on top in InfoWorld Test Center's review. ]
ThruDB is a layer of glue that joins together the Lucene text indexing library with Thrift and a good set of tools for storing the data in the cloud. One of the more sophisticated options will store the data locally on a disk for fast storage while sending out a duplicate set of transactions to Amazon S3 (Simple Storage Service). There's no official release yet, so you'll need to grab the code from the Subversion repository.
There are some tools designed to add horizontal partitioning to traditional databases. Hibernate Shards and HiveDB can work together to direct queries to the right server in a cluster of databases. They work with any database with a Hibernate interface.
Harry Potter readers may hate the name, but Project Voldemort is a "big, distributed, persistent, fault-tolerant hash table." You put in key-value pairs and they get serialized to disk somewhere in a cloud. There are no queries. You can't ask for fields within a certain range. You just ask for a key and get the result. When data is stored to two different nodes at once, as might happen in an ACID-free environment like this, Voldemort uses a vector clock to choose a winner. It's very, very lightweight. You might even try to make a joke about the real Voldemort's shadow-like presence.