1. 9
  1.  

  2. 9

    I’m not sure how old this is but some of the Riak points are not accurate. I only know Riak so I can’t speak to if the other databases have mistakes:

    Riak (V1.2)

    Riak has been on 1.4.x for quite a while.

    Main point: Fault tolerance

    Not wrong, but I think ‘write-availability’ is a better way to put it.

    Protocol: HTTP/REST or custom binary

    It’s not custom binary, it’s ProtoBufs

    Secondary indices: but only one at once

    You can have multiple secondary indicies, but you can only query by one (or a range).

    In the process of migrating the storing backend from “Bitcask” to Google’s “LevelDB”

    No, support for LevelDB has been added, but you can still use (and are suggested to) use BitCask just fine. In fact, each bucket (and you can have many) can have its own backend.

    I found this comparison severely lacking. No discussion of consistency model, failover model, scalability, etc. The comparisons were all rather shallow.

    1. 1

      I found this comparison severely lacking. No discussion of consistency model, failover model, scalability, etc. The comparisons were all rather shallow.

      Definitely the case. However, for someone who doesn’t know a lot about DBs and is trying to choose one, this could be pretty useful. The common use case was a nice touch I thought.

      No, support for LevelDB has been added, but you can still use (and are suggested to) use BitCask just fine.

      Doesn’t BitCask not support secondary indexes? I haven’t used Riak in a bit.

      I only know Riak

      May I ask what your use case is? I find Riak to be a really interesting database and I like to hear how different people use it.

      1. 4

        However, for someone who doesn’t know a lot about DBs and is trying to choose one, this could be pretty useful

        Without describing the consistency model I think it’s doing a disservice to people. Eventual consistency means things can act in very unintuitive ways. If all you see is “fault tolerant” then that doesn’t tell you much about what you give up to be fault tolerant.

        Doesn’t BitCask not support secondary indexes? I haven’t used Riak in a bit.

        Correct, but secondary indexes should mostly be avoided IME.

        May I ask what your use case is?

        I work on an an ecommerce system whose customer facing end is required to be ‘always-on’.

        1. 1

          I am in a similar situation to GP, and I disagree that this is a useful comparison for someone who doesn’t know a lot about DBs. The thing you want to look at in the very beginning is the multi-machine scaling and consistency story. For instance, with Redis, good luck–it’s only useful as a cache if you want to scale it–it can’t store data of record. When choosing between things like Riak, Cassandra, RethinkDB, Hyperdex, and Datomic, you need to understand if your workload is high write, high random read, or bulk analytics. Additionally, you need to understand what relaxation you want when your network or machines start failing–do you want as much data as possible to return in a query (but maybe be missing important things)? Or do you want to have your database help you wait until you’re able to see a consistent and reproducible view of things?