- 21 Nov, 2017 5 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
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>
-
- 21 Jun, 2017 1 commit
-
-
Willem Thiart authored
raft_send_requestvote and raft_send_appendentries now return proper error codes.
-
- 11 Jun, 2016 2 commits
-
-
Willem Thiart authored
-
Willem Thiart authored
-
- 16 Mar, 2016 1 commit
-
-
Willem Thiart authored
-
- 25 Jan, 2016 2 commits
-
-
Willem Thiart authored
-
Willem Thiart authored
-
- 20 Jan, 2016 1 commit
-
-
Willem Thiart authored
-
- 31 Dec, 2015 2 commits
-
-
Willem Thiart authored
-
Willem Thiart authored
-
- 20 Dec, 2015 1 commit
-
-
Willem Thiart authored
-
- 19 Dec, 2015 1 commit
-
-
Willem Thiart authored
-
- 17 Nov, 2015 1 commit
-
-
Willem Thiart authored
-
- 30 Sep, 2015 1 commit
-
-
Amitabha Roy authored
-
- 22 Aug, 2015 1 commit
-
-
Willem Thiart authored
-
- 14 Aug, 2015 1 commit
-
-
Willem Thiart authored
-
- 29 Jul, 2015 1 commit
-
-
Matt Amos authored
-
- 28 May, 2014 1 commit
-
-
Willem Thiart authored
-
- 26 Feb, 2014 1 commit
-
-
Andrea Guzzo authored
so there is no need to turn off warnings for implicit-function-declaration
-
- 14 Feb, 2014 2 commits
- 16 Jan, 2014 1 commit
-
-
willem authored
-
- 14 Jan, 2014 1 commit
-
-
willem authored
-
- 13 Jan, 2014 2 commits