- 17 May, 2018 1 commit
-
-
Willem Thiart authored
This is an experimental branch to investigate removing user data passing. The objective is to see how the API for version 1.0 could look like. This is the recommended method for passing user data: https://github.com/clibs/container_of
-
- 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 4 commits
-
-
Willem Thiart authored
-
Willem Thiart authored
Breaking change.
-
Willem Thiart authored
Breaking change.
-
Willem Thiart authored
-
- 20 Jan, 2016 2 commits
-
-
Willem Thiart authored
-
Willem Thiart authored
-
- 31 Dec, 2015 2 commits
-
-
Willem Thiart authored
-
Willem Thiart authored
-
- 30 Dec, 2015 1 commit
-
-
Willem Thiart authored
-
- 21 Dec, 2015 1 commit
-
-
Willem Thiart authored
-