1

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

Joshua Partogi
  • 16,167
  • 14
  • 53
  • 75
Fedrick
  • 527
  • 2
  • 8
  • 26
  • 1
    I don't know anything more about Riak than what I read on the website. The most obvious difference is that one is a pay as you go service and the other is an open source product. – Mocky Feb 23 '10 at 13:49

2 Answers2

3

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
  • 76
  • 1
0

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
  • 7,132
  • 3
  • 38
  • 55
  • 1
    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 Oct 13 '10 at 23:20
  • 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 Oct 15 '10 at 20:57
  • Detailed SO answer on using IAM for read-only access http://stackoverflow.com/questions/4988367/anonymous-read-with-amazon-simpledb –  Nov 22 '11 at 19:31