Amazon Web Services Platform – SimpleAtomic please

It’s probably not a good approach for a number of reasons, but every time a new development technology or platform comes along, I first evaluate how I’d develop a theatre ticketing system with it. I reimplemented newts a few times in Java because I didn’t get it remotely correct the first time out, so I know the problem inside and out and it can be extended to an online model for those kinds of technologies. So while it might not be an ideal reference concept, for me it’s a good start.

This past week Amazon announced SimpleDB to extend their web services platform to small, semi-structured, queryable data storage. It really does make you ask the question “What doesn’t their platform provide?”. The answer to that is a transactional data store for non-file data. That’s right, SimpleDB isn’t a database in the currently common understanding of the term. The lack of transactionality and the ‘eventual consistency’ model help hugely in the scaling out methodology used by companies like Amazon, and having seen a couple of presentations about that strategy, I’m a proponent myself.

And for many, many applications which currently use a RDBMS, no transactionality/consistency is fine. In fact, to use my ticketing system example, there’s only one place where I actually need to read and update data atomically, and even that is a single integer associated with each performance. But I really do need it in that one place. I’ve thought about it for a while, and it’s just not optional.

Where does that leave me on the Amazon platform? I think it means I have to install a RDBMS  on a couple of EC2 instances and jump through all the annoying hoops to get that to work and be robust and scale. All that for a single atomic integer update.

What could they do to help with this? Well after a little head scratching, what I’d like is to be able to write some distributed transactional/atomic logic on the Amazon platform for these small cases where it’s actually required, and where I’ve considered the scaling implications.

So I’d like a transaction/atomic primitives service. A SimpleAtomic service which lets me create and access simple Locks, AtomicBooleans and AtomicIntegers (similar to the java.util.concurrent classes).

I’m looking forward to discussing this at work and outside as I’m sure the ideas of (1) moving transactions/atomicity logic explicitly into the application and (2) doing transactional work in a scaling environment will be controversial in each environment respectively.

Advertisement

0 Responses to “Amazon Web Services Platform – SimpleAtomic please”



  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

Gravatar
WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s




About

I’m David Illsley, I’m a Software Engineer, currently working for Morgan Stanley in London. In the past I worked for IBM developing products in the WebSphere family, and before that I studied at Edinburgh University. I'm also a PMC member @TheASF, and outside the realms of technology, enjoy skulking around the dark corners of theatre...

Archives

c

Disclaimer

The postings on this site solely reflect the personal views of the author and do not necessarily represent the views, positions, strategies or opinions of my employer.

Twitter Updates

  • *aaah* Another long weekend. I could get used to this. #fb 3 days ago
  • @ajdaniel what is now crap? Have you played with the new built in dev tools? 6 days ago
  • Frustrating not to make it to either fosdem or monkigras this week... It's like 3 buses at once or something 6 days ago
  • Wow, Danish crematoria are are pretty, uh, matter of fact… #borgen 1 week ago
  • @sd_nicholas it's a hedge against changes as it predates the final spec. Unprefixed version I think is due soon. 2 weeks ago

Follow

Get every new post delivered to your Inbox.