Hacker News new | ask | show | jobs
by eis 5330 days ago
I don't think so. Does Cassandra provide guarantees regarding the ordering of queries? Cause I couldn't see that.

Another problem I can see is when you write to 3 nodes, have W=2 and a write succeeds only one one node. Then later on through read repair the value propagates to the other 2 nodes. So our write "failed" but really in the end succeeded. I'm not too much into the Cassandra details but those two things immediately came to my mind when reading some of the wiki pages.

It boils down to not using/offering algorithms like 2-Phase Commit or Paxos but more sloppy quorums.

So from what I can tell, Cassandra can not guarantee strong consistency. But then again I could be wrong and missed something.

2 comments

Taken directly from the page I linked from above:

"Note that if W + R > ReplicationFactor, where W is the number of nodes to block for on write, and R the number to block for on reads, you will have strongly consistent behavior; that is, readers will always see the most recent write."

Could you explain why this is incorrect? It seems the Cassandra devs use the definition of "consistency" from Brewer's paper, and Cassandra offers this level of consistency.

Your point about read-repair is correct when using QUORUM consistency level, but even then you can avoid that by using the ALL consistency level.

QUORUM reads & writes in Cassandra are still stronger than guarantees given by async master/slave systems like MySQL, MongoDB, HBase, or Redis.