tags:

views:

282

answers:

3

Hi, I am looking for an eventually consistent key value data store and i decided to choose between Amazon SimpleDB and Riak ,so can anyone share their valuable experiences comparing both .

Thanks in advance Fedrick

+2  A: 

Riak is a key-value store. The data values you store is opaque to the database, so you have no secondary indexes. But you do have the ability to run map-reduce if your data is JSON (or XML, I think). You can run map-reduce over all data, or just a subset ("seed keys"). It also has a "link walking" feature where documents can refer to other documents, which can be auto-fetched. They don't currently have an incremental map-reduce like CouchDB, which means any secondary queries (non-key) are quite expensive. They have plans to fix this.

SimpleDB is actually halfway between a docstore and a keystore: Each key->item supports multiple attributes, but it only goes one level deep. You can query on your key or your attribute values.

In production, Riak should be pretty "hands-off". If it's slow or getting full, just spin up a new server and tell it to join the cluster. (unlike CouchDB or MongoDB where you have to futz with multiple config files).

SimpleDB can take a pounding (tens of thousands of requests per second I've heard), but you are responsible for data scaling (i.e. don't violate their domain size limits or it will slow down).

Anonymouse
A: 

Riak is based on SimpleDB and is simply an opensource Erlang clone. Which platform do you wish to deploy on though as Riak is Unix only. If you want Windows you should use Cassandra which is very similar to Riak and is Java based.

Zubair
Riak is a Dynamo based database like SimpleDB, but Riak is not based on SimpleDB. I think they have different approaches.
inakiabt
A: 

I have used SimpleDB for about 6 months now. I am going into production with it. It works well, but I wish it were faster. I perform %like% queries for searching, and I can't seem to get it to dive through more than a few MB a second worth of values. But non %like% searches are much faster. I get the feeling that it could be sped up if someone at Amazon wrote a few algorithms in good old c, rather than Erlang, but then again I am a c coder.

Also the first few queries on a recently opened Domain will take longer, as the system gets it all read in.

Overall it worked for me, but if I want to scale higher I will have to go with something else.

Also, I think that almost all my use of it will be free - there is a generous allocation of space, etc.

Make sure you plan on the fact that SimpleDB currently has no 'read only' access modes, etc. Any user that can use it can edit it.

--Tom

Tom Andersen
The part about SimpleDB having no 'read only' access modes is not true. Amazon rolled out support for AWS Identity and Access Management (IAM) in SimpleDB on Sep 3, 2010. Read this: http://developer.amazonwebservices.com/connect/ann.jspa?annID=755
Ashley Tate
That's great. I somehow missed the original message. The IAM capabilities solve a lot of problems for us. The read only part is great. Plus it works across all sorts of services.
Tom Andersen