5 ms·
Thanks for the heads up (was looking for more real info and not the damnable 'beta signup' form) This sounds like SQL ontop of Cassandra (for a more or less me
by rkalla 15y ago
Thanks for the heads up (was looking for more real info and not the damnable 'beta signup' form)
This sounds like SQL ontop of Cassandra (for a more or less mental-map if you are looking for one):
Our distributed non-blocking atomic commit protocol allows database
transaction processing at any available node. The system is
designed to provide a consistent view of data, high availability,
and the ability to detect and manage partitions in a predictable
and consistent manner. Query processing scales with the number of
available nodes, storage scales according to the choice of storage
manager of which there are many. Storage managers are key/value
storage engines that also operate as a distributed in-memory cache
and participate in the commit protocol to ensure durability
guarantees.
- dberg 15y agoGiven that they seem to favor consistency in the CAP model, it would be closer to Hbase in this regard. Cassandra is, by design, eventually consistent and can not offer these same guarantees.
- rkalla 15y agoThanks for the correction -- am still fuzzy on the details of Cassandra compared to HBase.
- stephenjudkins 15y agoThis is false. Cassandra can offer any level of consistency you desire, on a per-operation basis. See the "ConsistencyLevel" section of http://wiki.apache.org/cassandra/API http://wiki.apache.org/cassandra/API. The tradeoffs of the CAP theorem, of course, apply. But if you want 100% consistency (availability and partition-tolerance be damned) it's there for you. There is a general misconception that the an entire DBMS must pick tradeoffs based on the CAP theorem. (IE, you can use a database that offers availability, but can NEVER offer immediate consistency) Instead, a DBMS may offer different CAP guarantees per operation.
- eis 15y agoI 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.
- stephenjudkins 15y agoTaken 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.
- rbranson 15y agoQUORUM reads & writes in Cassandra are still stronger than guarantees given by async master/slave systems like MySQL, MongoDB, HBase, or Redis.