[HN Gopher] Introduction to Curp Protocol
___________________________________________________________________
Introduction to Curp Protocol
Author : SandmanDZ
Score : 19 points
Date : 2023-10-30 19:23 UTC (3 hours ago)
(HTM) web link (datenlord.github.io)
(TXT) w3m dump (datenlord.github.io)
| carterschonwald wrote:
| So this seems to be talking about consensus algorithms that have
| a fast path when a new transaction doesn't conflict with in
| flight transactions and a slow path when there is a conflict. I
| think this idea is very nicely explored/articulated in the
| egalitarian paxos paper. Though perhaps there's additional nuance
| im missing related to the semantics of the transactions in a kv
| store context
| eatonphil wrote:
| A difference seems to be that there still is a leader in this
| protocol whereas in epaxos there is not a (stable) leader.
| sargun wrote:
| So, I don't think that this optimization is new (fast path for
| commutative operations), but it's very difficult to get correct
| AFAICT, because in order to garner full optimizations, you must
| know about the invariants being preserved. For example, adds can
| always be non-conflicting for a bank account, if say, the
| invariant is that a bank account balance must never go below 0,
| but withdrawals need global consensus.
|
| The earliest knowledge I have of this is Generalized Paxos, but I
| believe there's more recent work with the likes of Egalatarian
| Paxos. I think there were even some CRDTs that mixed strong
| consistency and weak consistency.
| eatonphil wrote:
| Nice to have the TLA+ spec in the repo. Though it doesn't have
| the details on leader election.
|
| https://github.com/xline-kv/Xline/blob/master/curp/tla%2B/cu...
| toomim wrote:
| Or you could just use a CRDT.
|
| You don't need PAXOS, RAFT, or CURP to implement a key-value
| store. Those are _distributed state machines_ , all you need is
| _distributed state._
|
| That means you don't need a leader election. You don't need a
| leader. You don't need any round trips. You don't need
| coordination.
|
| PAXOS was the only game in town for many decades, but there are
| better ways to do this now.
| api wrote:
| CRDTs don't magically solve the ordering problem, though they
| do solve a bunch of other problems around merge conflicts.
___________________________________________________________________
(page generated 2023-10-30 23:00 UTC)