I ran into some MySQL replication issues on our server cluster the other day, prompting me to finally check out Amazon’s new Simple DB.
Here are my top-level impressions:
- It takes a little while to wrap your head around the relational database versus Amazon’s sets and items.
- The query syntax and the APIs are very simple and straightforward once you wrap your head around them.
- The example classes are a little clumsy. Maven support would double the speed of going through the Java ones.
- *Once they support ordering*, you’ll never touch your database again.
- They don’t support ordering.
For the first 30 minutes of playing with it, I could not have been more excited. I was just picturing deleting all those Hibernate-related classes from my code, and I thought I might never have to look at mysql logs of my.cnf again in my life. All that, and my database would scale with even less work than it would in my load-balanced MySQL cluster.
That’s when I happened upon the sad truth that Simple DB does not yet support ordering. I had my tables all converted to Amazon’s domains and items in my head, and then I realized it was all for nothing. I need ordering for most of my queries, and I’m sure many of you do too.
It seems quite likely Amazon will add support for ordering in the near future, as word has it they included it in the private beta before the current semi-public beta stage. They likely took it out over performance concerns, as ordering gets expensive when databases are distributed over many machines.
Once they support ordering, though, the rest is so clean that I’ll almost certainly switch. The time savings in reduced database maintenance make it a simple decision.
Oh, and I’ll post more about this, but the LittleShoot site is live. Beta downloads are still invite-only, but we’re getting very very close to wider release. I’m currently tweaking some of the security details with publishing your files, but once that’s done it’s off to the races.
You can read more about LittleShoot on the site and you can sign up to be notified when you can join the beta. Exciting stuff.