Facebook’s Cassandra paper, annotated and compared to Apache Cassandra 2.0
datastax.com
datastax.com
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-...
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...
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.
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?
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.