Hoverbear / old-raft-rs

[Incomplete] A Raft implementation in Rust
https://hoverbear.github.io/raft-rs/raft/
MIT License
266 stars 41 forks source link

Renames? #70

Closed Hoverbear closed 9 years ago

Hoverbear commented 9 years ago

On page two of @ongardie's paper the names of the components in the diagram are StateMachine, Log, ConsensusModule, and Server.

Roughly:

Current Impl Paper
StateMachine StateMachine
Store Log
Replica Consensus
Server Server
Client Client

Should we do any renaming? Would this improve clarity? Are they appropriate?

ycoady commented 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!

Hoverbear commented 9 years ago

@ycoady We're on that list, too!

ycoady commented 9 years ago

Yes yes I know, and the only Rust one (go figure!)

danburkert commented 9 years ago

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.

Hoverbear commented 9 years ago

I'll make a PR once #67 is closed.

ongardie commented 9 years ago

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.

Hoverbear commented 9 years ago

I noted log as a module would conflict, so I used persistent_log.