I've had a descent amount of experience with SimpleDb and unfortunately I don't find it as good as what Amazon makes it out to be. The name "Simple" defines the service very well.
There are too many limitations which makes SimpleDb almost impossible to use for complex data storage. A few examples of annoying limitations:
1. SimpleDb is a Key to list value pair storage engine (e.g. Key = Name, Values = [John, George, Ringo, Paul]). Seems good but you can only have 256 values per record.
2. Each value is limited to 1024 characters (512 for double byte)
3. Where clauses of "select" statements are ordered by their ascii values. Makes things relatively complex numeric values. Here's some suggestions from amazon when working with numerical values.
Bottom line, my take is if you want to use SimpleDb for simple data storage, it's a wonderful service and relatively cost effective. If you're data is or will become complex then it's not the service for you. I'd look into Google App Engine for a robust and "free" service.
What you said is very true, and a good summary of shortcomings, but I'd like to note a real benefit it affords you despite these drawbacks.
While 3. is a pain-point in many systems, the fact that you can do selects with where clauses on a key-value store that scales horizontally is impressive. The indexing they do can be very helpful in certain implementations.
Anyway I think 10gb per domain is reasonable for many people, but it is another limit of the store that could cause problems. Fortunately Amazon knows the boundaries of SDB, so it can put these in place and help inform decisions about using it for, say, a project that will need more than 10gb per domain, or more than 100 domains.
FYI, with a 1k limit per item this translates into approx 10.5M items per domain max. That's a pretty big data set to have capacity for without having to shard across domains out of the box at unlimited read/write scalability.
Google App Engine's data store is also "simple" by your definition (unnecessarily limited). IIRC, it makes it very difficult to bulk download your entire database.
There are too many limitations which makes SimpleDb almost impossible to use for complex data storage. A few examples of annoying limitations:
1. SimpleDb is a Key to list value pair storage engine (e.g. Key = Name, Values = [John, George, Ringo, Paul]). Seems good but you can only have 256 values per record.
2. Each value is limited to 1024 characters (512 for double byte)
3. Where clauses of "select" statements are ordered by their ascii values. Makes things relatively complex numeric values. Here's some suggestions from amazon when working with numerical values.
http://docs.amazonwebservices.com/AmazonSimpleDB/2007-11-07/...
and floating points are especially annoying:
http://stackoverflow.com/questions/691778/best-way-to-format...
Bottom line, my take is if you want to use SimpleDb for simple data storage, it's a wonderful service and relatively cost effective. If you're data is or will become complex then it's not the service for you. I'd look into Google App Engine for a robust and "free" service.