raft
raft copied to clipboard
Implementation of the Raft protocol in OCaml
- Ti commit_index = x , prev_log_index x + 10 - Ti+1 request with leader_commit = x + 20 , and 100 logs added - Ti+2 commit_index = x +...
https://github.com/mransan/raft/blob/master/src/raft_role.ml#L179 It's likely that this iteration would need to go into the global cache to find the last_log_index. Right now it's only looking at the state.log
This is a duplicate of the data and therefore harder to maintain in the long run. Duplication means bugs.
`Raft_logic.Message.handle_message` and `Raft_logic.Message.handle_timeout` should be able to return notification. For instance: - New_leader (leader id) - No_more_leader - New_commit_index (from, to)
The `data` in the `LogEntry` is not enough. We should also add a `client_id` field to map the index (which is internal to the RAFT protocol) back to a client...
Logs can be stored permanently by the client application. This is needed in order to be able to handle a very large number of logs. One possible design which would...
Currently the LeaderState is a list of index. A subset of operations are querying this data structure by receiver id so it would make sense to use `map`. So far...