- 23 Mar, 2020 2 commits
-
-
Yossi Gottlieb authored
During joint consensus, we need to deliver entries to demoted and removed nodes so they can gracefully shut down. This also fixes an issue with raft_send_appendentries_all() which aborted on first delivery error, creating artificial cluster partitions. This problem is further aggravated when attempting to deliver to inactive nodes.
-
Yossi Gottlieb authored
Turns out documentation is not up to date regarding the process of node removal, and it the current implementation assumes a two-phase process is always required (i.e. DEMOTE followed by REMOVE).
-
- 12 Mar, 2020 2 commits
-
-
Yossi Gottlieb authored
The no-op entry gets committed as soon as a new leader is elected, in order to establish the commit index and prevent stale reads.
-
Yossi Gottlieb authored
This fixes an issue with virtraft2 which was not able to perform REMOVE_NODE when DEMOTE_NODE was applied. The previous fix of directly removing nodes was not aligned with how virtraft2 manages nodes.
-
- 10 Mar, 2020 4 commits
-
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
The limit for enforcing a single uncommitted voting change must apply to remove node as well. It seems like it was left out considering only the case where it follows DEMOTE_NODE, but that's not really required.
-
- 31 Dec, 2018 1 commit
-
-
Yossi Gottlieb authored
-
- 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
-
- 11 Dec, 2018 1 commit
-
-
Yossi Gottlieb authored
-
- 09 Dec, 2018 1 commit
-
-
Yossi Gottlieb authored
-
- 06 Dec, 2018 1 commit
-
-
Yossi Gottlieb authored
-
- 18 Nov, 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 2 commits
-
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
All nodes expect local should be removed when loading a snapshot, and any prior knowledge about them should be void.
-
- 06 Oct, 2018 3 commits
- 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
-
- 02 Sep, 2018 1 commit
-
-
Yossi Gottlieb authored
-
- 17 Aug, 2018 1 commit
-
-
Free Ekanayaka authored
The make-tests.sh script has been modified so that the test program exists non-zero in case of failures.
-
- 16 Aug, 2018 1 commit
-
-
Willem Thiart authored
-
- 15 Aug, 2018 5 commits
-
-
Willem Thiart authored
-
Willem authored
Remove erronous(?) assertion on compaction.
-
Willem authored
Allow entries to apply during snapshot
-
Willem authored
Add raft_cancel_snapshot().
-
Yossi Gottlieb authored
-
- 14 Aug, 2018 3 commits
-
-
Willem Thiart authored
-
Willem authored
Add raft_entry_t to membership event callback.
-
Willem Thiart authored
-