Closed Hoverbear closed 9 years ago
My sense is this could be helpful in allowing people most easily compare/contrast your implementation with others out there---but I can also do a quick pass to see if those others are being consistent!
@ycoady We're on that list, too!
Yes yes I know, and the only Rust one (go figure!)
I'm in support of renaming Store
to Log
. I'm also in support of renaming Replica
since I don't think it's very descriptive, but I don't think ConsensusModule
is much better (mostly I object to 'Module' since it's meaningless and could be confused with Rust's concept of modules). It looks like logcabin's equivalent is RaftConsensus, etcd's is raft, and Hashicorp's is Raft. I think of the bunch RaftConsensus
or just Consensus
is the best, but there's almost certainly a better name out there. Rust (standard library) does have a tradition of not including the same identifier in module and type names (so for instance raft::RaftConsensus
would be discouraged in favor of raft::Consensus
.
I'll make a PR once #67 is closed.
I agree with @danburkert . The "Consensus Module" name isn't very good, but just calling it Consensus or Raft should help people find it.
LogCabin was initially meant to implement Paxos, btw. There was an interface named Consensus that RaftConsensus and PaxosConsensus were supposed to implement. PaxosConsensus never materialized into something worthy of committing, then RaftConsensus did, the Paxos attempt was abandoned, and Consensus was just merged into RaftConsensus.
I noted log
as a module would conflict, so I used persistent_log
.
On page two of @ongardie's paper the names of the components in the diagram are
StateMachine
,Log
,ConsensusModule
, andServer
.Roughly:
StateMachine
StateMachine
Store
Log
Replica
Consensus
Server
Server
Client
Client
Should we do any renaming? Would this improve clarity? Are they appropriate?