Thanks a lot for the info!
I see, the paxos protocol used now in the code is actually the
"single-decree synod" protocol, which votes on only one value.
the scope of the implementation is only the CAS operation (which contains a
read and write), not a generic txn (which could contain arbitrari
"you seem to be suggesting that the "other operations on the same partition
key have to wait" because Paxos grouped the first series together, which
have to be committed in the same order , before all other operations,
essentially ___serializing___ the operations (with guaranteed same order)."
-->
thanks for your answer DuyHai.
I understand Paxos. but I think your description seems missing one
important point: in the example you gave, "a series of ongoing operation
(INSERT, UPDATE , DELETE ...) " you seem to be suggesting that the "other
operations on the same partition key have to wait" be
"what is the fundamental difference between the standard replication
protocol and Paxos that prevents us from implementing a 2-pc on top of the
standard protocol?"
--> for a more detailed description of Paxos, look here:
http://www.slideshare.net/doanduyhai/distributed-algorithms-for-big-data-geec
this link
http://www.datastax.com/dev/blog/lightweight-transactions-in-cassandra-2-0
talks about linearizable consistency and lightweight transactions.
but I am still not completely following it , just based on the article
itself.
the standard replication protocol in Cassandra does establish a to