- 12 Jul, 2018 1 commit
-
-
Yossi Gottlieb authored
-
- 20 Jun, 2018 2 commits
-
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
-
- 11 Jun, 2018 4 commits
-
-
Willem Thiart authored
-
Willem Thiart authored
This is an optional callback. This is useful for the user to know when a node has been added/removed, so that something like raft_node_set_udata can be set properly.
-
Willem Thiart authored
-
Willem Thiart authored
raft_node_set_voting_committed raft_node_set_addition_committed raft_voting_change_is_in_progress
-
- 08 Jun, 2018 1 commit
-
-
Jiale Zhi authored
-
- 07 Jun, 2018 1 commit
-
-
Willem Thiart authored
The RAFT_LOGTYPE_SNAPSHOT was a bad design choice. It's better to not have this marker entry so that users don't have to check for the log entry type in the callbacks. Also, loading a snapshot correctly created this marker entry, but the compaction side did not. It's better to remove this log type than to fix this asymmetry. Fixes the following edge cases: - Server crashes if the last snapshot index is N and a appendentries message pops entries all the way back to index N. - Server sends an appendentries message with an invalid prev_log_idx and prev_log_term, causing the peer to crash.
-
- 16 May, 2018 2 commits
-
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
This fails the fuzzer tests.
-
- 08 Jan, 2018 2 commits
-
-
Willem Thiart authored
-
Willem Thiart authored
-
- 29 Dec, 2017 1 commit
-
-
Willem Thiart authored
The raft_log API is now being fuzzed tested. This change fixes all of the bugs detected by the fuzzer so far.
-
- 21 Nov, 2017 6 commits
-
-
Li Wei authored
Move the declaration of raft_become_follower() from raft_private.h to raft.h, so that users may voluntarily give up leadership. Signed-off-by:
Li Wei <wei.g.li@intel.com>
-
Li Wei authored
User storage callbacks may return negative errors smaller than RAFT_ERR_LAST. These will be returned all the way to the API methods, which report the errors back to users, so that appropriate handlings may be performed. Signed-off-by:
Li Wei <wei.g.li@intel.com>
-
Li Wei authored
If raft_become_candidate() assigns a negative value e (i.e., -election_timeout < e < 0) to timeout_elapsed, and if this replica successfully becomes the leader, then this leader won't send heartbeats for request_timeout - e milliseconds. This may be longer than election_timeout and cause an unnecessary leadership change. This patch zeroes timeout_elapsed in raft_become_leader(), randomizes election timeouts in [election_timeout, 2 * election_timeout), and fixes raft_recv_appendentries() to avoid zeroing timeout_elapsed if the AE request has an older term. Signed-off-by:
Li Wei <wei.g.li@intel.com>
-
Li Wei authored
When a leader learns of a newer term and steps down, it should discard current_leader. Otherwise, a client request may be rejected with RAFT_ERR_NOT_LEADER and a hint pointing to this replica itself! For simplicity, this patche follows the Raft paper to discard current_leader whenever current_term changes. And, when receiving an AE with an up-to-date term, a server always updates current_leader, as this information is absolute, even if the previous entry doesn't match. This patch also fixes a test that has previously been failing due to incorrect node IDs. Signed-off-by:
Li Wei <wei.g.li@intel.com>
-
Li Wei authored
Remind users' persist_term implementations to persist currentTerm and nil votedFor atomically. Signed-off-by:
Li Wei <wei.g.li@intel.com>
-
Li Wei authored
Check and handle memory allocation errors by reporting them back to users via NULL or RAFT_ERR_NOMEM return values. Signed-off-by:
Li Wei <wei.g.li@intel.com>
-
- 20 Nov, 2017 1 commit
-
-
Willem Thiart authored
-
- 21 Jun, 2017 1 commit
-
-
Willem Thiart authored
raft_send_requestvote and raft_send_appendentries now return proper error codes.
-
- 30 May, 2017 1 commit
-
-
Willem Thiart authored
-
- 25 Oct, 2016 2 commits
-
-
Willem Thiart authored
-
Maxim Kupriianov authored
Delete duplicated entires of the same two functions.
-
- 11 Jun, 2016 5 commits
-
-
Willem Thiart authored
-
Willem Thiart authored
-
Willem Thiart authored
-
Willem Thiart authored
-
Willem Thiart authored
-
- 19 May, 2016 1 commit
-
-
Willem Thiart authored
-
- 13 May, 2016 3 commits
-
-
Willem Thiart authored
-
Willem Thiart authored
-
Willem Thiart authored
This fix prevents deadlocks (ie. when we are trying to get votes from non-voting nodes that never vote).
-
- 16 Mar, 2016 3 commits
-
-
Willem Thiart authored
This change is backwards incompatible. The following functions return different return codes: * applylog * log_offer * raft_append_entry * raft_apply_all * raft_recv_entry
-
Willem Thiart authored
-
Willem Thiart authored
-
- 28 Jan, 2016 1 commit
-
-
Willem Thiart authored
Performance improvement. Appendentries will now send many logs per message.
-
- 25 Jan, 2016 2 commits
-
-
Willem Thiart authored
-
Willem Thiart authored
Breaking change.
-