Okay, so this is wishful thinking on my part, Amazon taking the initiative and renaming their very powerful SimpleDB product Amazon Registry. They should seriously consider it though and here is why.
Terry Jones, over at FluidInfo wrote a rather interesting post asking if SimpleDB was a flop. He was judging this on a rather poor metric of returned Google searches. He picked away at some of its failings as a high cost storage mechanism asking if after a year in public beta has it succeeded as well as the other offerings from Amazon.
Terry has fallen into the same trap that many of SimpleDB's critics have, which is trying to compare the service to a traditional database. Don't. Because it isn't. Simple enough?
The problem is that we are all getting seduced by those two little letters, DB. We read them and our minds conjure new frontiers where we can get rid of MySQL and the logistics associated when it comes to scaling it out over a number of different machines. We allow ourselves to be carried away into a land of where data storage is plentiful and the queries come cheap! No more query optimization, no more indexing, no more tables, just raw data in the cloud!
This mythical Data-Narnia does not yet exist.
Amazon are miss selling this excellent, high flexible service, as something that clearly it is not.
Instead they should be selling it as Amazon Registry, a highly scalable, secure, in the cloud, registry. A registry that can hold huge amounts of small key/data settings (effectively one big hashmap). A registry that is accessible from anywhere with anything. A registry that keeps data storage simple - everything is a string.
We, at aw2.0, use SimpleDB a lot for our projects. We don't however store huge amounts of data in it, because really, should a registry have that much data associated with? A registry is used for lookup data, or configuration data. It is not a database alternative.
Potential use cases for SimpleDB may include:
- A live registry of all running server instances
- An intelligent DNS type system
- A JNDI type of service for your Java services
- User settings for a public site
- Storing really small sets of data
The key is never to compare it to a full database server like MySQL, Postgres or Oracle. If you look at SimpleDB through those eyes, then you will find it a hugely impressive and cost effective solution that solves a lot of little problems that running in a truly dynamic infrastructure space can bring.
If you've written-off as something not for you, then look again, and if you are using CFML, then there is no quicker way than to integrate SimpleDB into your application space than with OpenBD that comes with SimpleDB support baked into the core engine.
Amazon SimpleDB? think Amazon Registry.