Search code examples
erlangcouchdbriak

Scalaris vs CouchDB


I have this requirement to use a document store for one of the applications. I am assuming scalaris and couchdb are comparable as document stores. Do you have any experiences to share on these two solutions? Do you think one is better than the other?

transactions are attractive to me from scalaris. With little erlang background I have more trust on solutions built on Erlang. riak is another one I found interesting. So please share your thoughts or pointers to more information on them.


Solution

  • I think you need more research in this area. Type of a key in key/value store is obviously important, however you need to be more precise about rest of the requirements. Things like distribution strategy shapes availability and consistency. How much data do you want to store? Maybe MySQL is still all right? What kind of query you want to perform? Write it down and try to fit to each solution!

    What I can say:

     - CouchDB the most important is off-line replication model. Its like having mirrored DB for free anywhere you want. Fast read, slow re-balance after lots of deletes. Pure Couch is not distributed and do not guarantee fault tolerance
     - Riak - dynamo model = many replicas distributed in smart way. Reliable & scalable cpu, storage, ram.
     - Hibari - distributed. Also Erlang. Transactions (?).
    

    All of above have serious industrial use-cases. Scalaris seems to be rather scientific.

    Depending on the way you will retrieve data, there is lots of original solutions like Graph databases or Redis (lets say rich k/v store).