- 18 Dec, 2018 1 commit
-
-
Yossi Gottlieb authored
-
- 13 Dec, 2018 1 commit
-
-
Yossi Gottlieb authored
-
- 11 Dec, 2018 1 commit
-
-
Yossi Gottlieb authored
-
- 09 Dec, 2018 1 commit
-
-
Yossi Gottlieb authored
-
- 06 Dec, 2018 1 commit
-
-
Yossi Gottlieb authored
-
- 16 Oct, 2018 1 commit
-
-
Yossi Gottlieb authored
This is probably most common when loading a snapshot. Currently it is only possibly to free allocated entry memory on log_pop and log_poll, but neither are called on log_reset(). This is a quick and non-breaking fix. A better but not backward compatible option can be to have a free function callback as part of the entry itself (automatically called when needed, not by log_pop or log_poll). This would also make it easier to avoid redundant buffer allocs/copies on the app side.
-
- 08 Oct, 2018 1 commit
-
-
Yossi Gottlieb authored
All nodes expect local should be removed when loading a snapshot, and any prior knowledge about them should be void.
-
- 04 Oct, 2018 2 commits
-
-
Yossi Gottlieb authored
To clarify, the desired behavior is: 1) Avoid false assertions. 2) Silently ignore AE responses which are stale or not monotonic (i.e. current index < match index).
-
Yossi Gottlieb authored
To clarify, the desired behavior is: 1) Avoid false assertions. 2) Silently ignore AE responses which are stale or not monotonic (i.e. current index < match index).
-
- 27 Sep, 2018 4 commits
-
-
Yossi Gottlieb authored
Errors were ignored if node's match_idx==next_idx-1, I assume (??) as a precaution against silently feeding a node that is not monotonic. However this does not consider the case where send_appendentries() relies on snapshot_last_idx which may be greater than the node's index.
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
Errors were ignored if node's match_idx==next_idx-1, I assume (??) as a precaution against silently feeding a node that is not monotonic. However this does not consider the case where send_appendentries() relies on snapshot_last_idx which may be greater than the node's index.
-
Yossi Gottlieb authored
-
- 15 Aug, 2018 1 commit
-
-
Yossi Gottlieb authored
-
- 07 Aug, 2018 2 commits
-
-
Yossi Gottlieb authored
If specified when calling raft_begin_snapshot(), the library will not postpone applying entries during snapshots. This requires the FSM to provide full isolation between the snapshot and active state.
-
Yossi Gottlieb authored
If specified when calling raft_begin_snapshot(), the library will not postpone applying entries during snapshots. This requires the FSM to provide full isolation between the snapshot and active state.
-
- 30 Jul, 2018 2 commits
-
-
Yossi Gottlieb authored
This cancels the snapshot operation and reverts back to the state we were in before raft_begin_snapshot(). It is useful for cases where the snapshot operation fails. It is the caller's responsibility to make sure the FSM state remains intact of course.
-
Yossi Gottlieb authored
This cancels the snapshot operation and reverts back to the state we were in before raft_begin_snapshot(). It is useful for cases where the snapshot operation fails. It is the caller's responsibility to make sure the FSM state remains intact of course.
-
- 22 Jul, 2018 1 commit
-
-
Yossi Gottlieb authored
We can't assume commit index does not change between begin and end snapshot, as AE responses may arrive.
-
- 12 Jul, 2018 4 commits
-
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
-
- 10 Jul, 2018 1 commit
-
-
Yossi Gottlieb authored
This is required to allow append-only persistent log formats, where raft_append_entry() is called but may be reverted later on.
-
- 20 Jun, 2018 2 commits
-
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
-
- 13 Jun, 2018 2 commits
-
-
Willem Thiart authored
This fixes the virtraft checks.
-
Yossi Gottlieb authored
AE responses from a non-voting node can be ignored during a voting change, causing has_sufficient_logs for this node to never fire in the future.
-
- 11 Jun, 2018 3 commits
-
-
Yossi Gottlieb authored
This behavior is described in the original Raft paper and is required to prevent removed nodes from disrupting the cluster. This causes other problems though, as a split node may trigger election which is rejected but leaves it with a future term. The generally accepted solution for this appears to be the use of PreVote RPC to avoid election that can never succeed.
-
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.
-
- 08 Jun, 2018 1 commit
-
-
Jiale Zhi authored
-
- 07 Jun, 2018 2 commits
-
-
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.
-
Yossi Gottlieb authored
* Fix off-by-one in apply_log idx. * Fix log_get_from_idx() off by one error.
-
- 24 May, 2018 2 commits
-
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
-
- 17 May, 2018 3 commits
-
-
Li Wei authored
An AE request's prevLogTerm and entries should never conflict with the follower's committed entries, according to the Raft protocol. If this happens, we should print a warning and inform callers to shut down. Signed-off-by:
Li Wei <wei.g.li@intel.com>
-
Willem Thiart authored
-
Willem Thiart authored
This fixes the virtraft checks.
-
- 16 May, 2018 1 commit
-
-
skypexu authored
Fix raft_begin_load_snapshot last_included_term handling
-