Facebook’s Cassandra paper, annotated and compared to Apache Cassandra 2.0(datastax.com)
datastax.com
Facebook’s Cassandra paper, annotated and compared to Apache Cassandra 2.0
http://www.datastax.com/documentation/articles/cassandra/cassandrathenandnow.html
2 comments
As I made clear [1], the novelty is in allowing opt-in to linearizability in a Dynamo-based system. To the best of my knowledge, Cassandra is indeed the first to offer this.
The "lightweight" qualifier was carefully chosen to suggest both that it is based on optimistic concurrency (no deadlocks) as well as less general than traditional "heavyweight" transactions.
Thanks for reading!
[1] http://www.datastax.com/dev/blog/lightweight-transactions-in...
The "lightweight" qualifier was carefully chosen to suggest both that it is based on optimistic concurrency (no deadlocks) as well as less general than traditional "heavyweight" transactions.
Thanks for reading!
[1] http://www.datastax.com/dev/blog/lightweight-transactions-in...
(Jonathan, please read this comment in a completely respectful tone of voice, because I'm not, and I'm sure Nick was not, trying to start a FoundationDB vs Datastax pissing contest!)
I can easily believe that adding CAS in combination with Cassandra's other features and design choices was harder than providing it in other contents, and that it required novel ideas! As an architect of a distributed, transactional, ordered, fault tolerant k/v store I know quite well that providing multiple properties in combination is usually superlinearly difficult :-) It's also clearly not true that open source projects only copy, unless you are inclined to believe that there is nothing new under the sun at all.
But in your view, do (for example) MongoDB, Zookeeper, HBase, Couchbase, and etcd also provide "lightweight transactions"?
If not, why not? If so, why is a new name for this feature necessary?
I can easily believe that adding CAS in combination with Cassandra's other features and design choices was harder than providing it in other contents, and that it required novel ideas! As an architect of a distributed, transactional, ordered, fault tolerant k/v store I know quite well that providing multiple properties in combination is usually superlinearly difficult :-) It's also clearly not true that open source projects only copy, unless you are inclined to believe that there is nothing new under the sun at all.
But in your view, do (for example) MongoDB, Zookeeper, HBase, Couchbase, and etcd also provide "lightweight transactions"?
If not, why not? If so, why is a new name for this feature necessary?
"We can easily see how to get linearizable consistency if we route all requests [for a partition or region] through a single master [like all the systems you listed]. In a fully distributed system, it is less obvious."
Again, the innovation here is not the functionality per se, which is surely not novel to any INGRES user from the 70s. The innovation is in implementing and integrating it for an eventually-consistent, Dynamo style system.
As for the name, well, there are two hard problems in computer science. Early talks about "putting CAS in Cassandra" got me a lot of blank looks; lightweight transactions seems to work quite well to get the audience/reader in the right conceptual neighborhood.
Again, the innovation here is not the functionality per se, which is surely not novel to any INGRES user from the 70s. The innovation is in implementing and integrating it for an eventually-consistent, Dynamo style system.
As for the name, well, there are two hard problems in computer science. Early talks about "putting CAS in Cassandra" got me a lot of blank looks; lightweight transactions seems to work quite well to get the audience/reader in the right conceptual neighborhood.
[tangent]
Jon, it's cool to see what you're working on. I followed your Spyced blog for quite a while after I left the CB community but had no idea you were project chair for Cassandra (just thought you were just really interested in the technology).
As a tangent to this tangent :) My scrape-and-report economic stats reports and Childs Play charity efforts on CB were key factors in getting a really interesting job with a trading company. So thank you for giving me a platform to do those things.
Best of luck to you with datastax and I hope you and your family are well.
Jon, it's cool to see what you're working on. I followed your Spyced blog for quite a while after I left the CB community but had no idea you were project chair for Cassandra (just thought you were just really interested in the technology).
As a tangent to this tangent :) My scrape-and-report economic stats reports and Childs Play charity efforts on CB were key factors in getting a really interesting job with a trading company. So thank you for giving me a platform to do those things.
Best of luck to you with datastax and I hope you and your family are well.
Hey, that's pretty cool. Thanks, and good luck to you too!
[deleted]
Cassandra's misleadingly named "lightweight transactions" are, at best, a novel implementation of a feature that has been around for a long time - Compare and Set.
We wrote a blog post about this called "Those Are Not Transactions". http://blog.foundationdb.com/post/60455516312/those-are-not-...