Closed Hoverbear closed 9 years ago
Looks good to me. Merging my state-machine branch is going to be tough, since the code is pretty much a rewrite, but it doesn't implement most of the Raft functionality (way less than the existing master). Perhaps it would be easier/cleaner to just cherry pick out the good ideas from that branch and merge them over manually.
Also, messenger.rs
is not used, that was leftover from an earlier iteration. The real implementation of that is here, and is essentially a hand rolled RPC system. I think it is correct to retry failed RPCs indefinitely, I remember the paper saying that but I need to go back and look.
Okay lets cherry pick then. I will work on RPC this week. Would you be willing to work on the state-machine things since I'm not totally familiar with what's ready?
@danburkert Do you think we should merge the mio
branch? I got it building tonight. It is old_io
free and is probably much farther along than master
even though it's not fully implemented.
@danburkert Do you think the client interface we discussed would be between non-participants in Raft and Raft Nodes, or just between Raft nodes?
@danburkert Please make sure to mark incomplete functions with unimplemented!()
, thanks!
@danburkert I did some integration tonight. Most of RaftNode
has been stripped down to just network related functionality. I've also added some primitive TCP handling, I suspect once things start working we can move to persisted streams.
https://github.com/Hoverbear/raft/commit/95e4d15e399af28e2c3d5c3535595bcb7775c193
CC @danburkert How does this look for a plan for the next week or so?
master
working.Use Cap'n Proto RPCs instead of structs. (@hoverbear volunteers)