Consensus on Cassandra
datastax.com
datastax.com
1) The process p1 on the machine holding the lock stalls (VM stall, let's say). 2) τ seconds have gone by on the Cassandra cluster, and the lock is removed 3) Another process, p2 takes the lease 4) The process comes back, only to resume processing, and not realize its lease has expired...
Without the leasing system, and the leaser being tied together, it's very difficult to guarantee safety, and liveness.
There is a grace period where the master is in jeopardy of failing over vs failing over straight away. I left this out for simplicity of the state machine but I pointed to the chubby paper as a true reference.
They also mention the fact that client and master clocks must advance no faster than a known constant factor.
This is the issue that even zookeeper has.
Is anybody out there using a lease mechanism like this (i.e., atop Cassandra) in production? Are there any pitfalls or edge cases in taking this approach?
[1]: https://groups.google.com/forum/#!topic/nosql-databases/4Aco...