Amazon SimpleDB – Is it too simple?
I have been working with transactional databases for a long time, so I was very sceptical about Amazon SimpleDB at first. The most obvious short coming is that it is non-transactional. It also uses what Amazon calls “eventual consistency”, that is multiple copies of the data are stored in different places so it takes time for the data to propagate to all storage locations. That means the data will eventually be consistent, but an immediate read might not show the change. This could lead to the classic database problem of dirty reads. This obviously will not work for any application requiring data consistency; the ACID properties of traditional databases.
Where I think SimpleDB could be useful is that it more easily maps into an object model. This could be ideal for developing rapid prototypes. I have developed countless applications that where a proof of concept and just need a basic data store. Often in these cases it would be nice to not have to worry about mapping the data to a relational data model; the impedance mismatch problem.
To test the service out I built a simple GWT client for administering SimpleDB. Using the Java library it was very easy to create new data models and query a domain. The main problem I did see was the speed of access. Basic operations like deleting a domain took several seconds. This obviously would not work for production systems.
Overall I would say for the right applications SimpleDB could be beneficial.
hi! I am working on GWT to connect to simpleDB. and I found that this appengine has a lot of restriction. can you please be kind to send me your source code? I just want to take a look at it. if It is possible.
thank you in advance.