- 19 Dec, 2018 2 commits
-
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
This makes it possible to request a consistent read without having to commit it as a log operation. For every read request an AE heartbeat is delivered and a quorum response is expected.
-
- 18 Dec, 2018 1 commit
-
-
Yossi Gottlieb authored
-
- 13 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.
-
- 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.
-
- 12 Jul, 2018 2 commits
-
-
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
-
- 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.
-
- 24 May, 2018 2 commits
-
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
-
- 16 May, 2018 2 commits
-
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
This fails the fuzzer tests.
-
- 07 Mar, 2018 1 commit
-
-
Yossi Gottlieb authored
This fails the fuzzer tests.
-
- 04 Mar, 2018 2 commits
-
-
Yossi Gottlieb authored
This is useful to allow leaders to pass context between raft_recv_entry() and a subsequent execution of the entry (after it was committed) as an applylog callback. This allows an optimized use pattern when entries received locally on the leader can be used without going through an unnecessary deserialization.
-
Yossi Gottlieb authored
-
- 08 Jan, 2018 2 commits
-
-
Willem Thiart authored
-
Willem Thiart authored
-
- 21 Nov, 2017 4 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
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
-
- 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 1 commit
-
-
Willem Thiart authored
-