- 10 May, 2023 2 commits
-
-
Ozan Tezcan authored
Normally, receiver side has checks if the chunk is for the correct index and offset. Adding snapshot_index to raft_snapshot_resp_t just to be sure we don't update snapshot offset for the node unnecessarily. Also, it makes debugging easier as we know the snapshot index that response refers to.
-
Shaya Potter authored
Record counts for raft RPC stats, sending / retrieving / success / failure and the like. cover append entry, requestvote (including prevote) and snapshots --------- Co-authored-by:
Ozan Tezcan <ozantezcan@gmail.com>
-
- 04 May, 2023 1 commit
-
-
Ozan Tezcan authored
Currently, entry len type is unsigned int which limits entry size to 4 gb. Changing it to raft_size_t (unsigned long long) to allow larger entries.
-
- 13 Apr, 2023 1 commit
-
-
Ozan Tezcan authored
-
- 27 Dec, 2022 1 commit
-
-
Shaya Potter authored
enables users of libraft to group raft entries into sessions. Co-authored-by:
Ozan Tezcan <ozantezcan@gmail.com>
-
- 31 Oct, 2022 1 commit
-
-
Ozan Tezcan authored
In C, enum constants are `int` but currently, `type` variable in entry struct is `short`. Changed it to `int` to provide type-safety.
-
- 25 Oct, 2022 1 commit
-
-
Ozan Tezcan authored
This PR refactors code regarding `term` handling inside `raft_recv_appendentries()` and `raft_recv_snapshot()` without introducing any logic changes. - Deleted `raft_receive_term()` function: This function sets the node as follower in certain cases. Although, it misses the pre-candidate state. We already set the node as follower inside `raft_accept_leader()`. (With the correct check that also handles pre-candidate state). - Moved `raft_reset_transfer_leader()` into `raft_accept_leader()`. Leader transfer is completed when we accept a leader. So, it makes sense to move it into `raft_accept_leader()`. - Added some tests to verify node becomes follower even on a pre-candidate state when a request is received with same or higher term.
-
- 03 Oct, 2022 1 commit
-
-
Hanna Fadida authored
-
- 20 Sep, 2022 1 commit
-
-
Ozan Tezcan authored
Revert some changes from https://github.com/RedisLabs/raft/pull/141 I've realized these functions might be required, either for snapshotting process or testing. e.g: `raft_node_set_voting()` is required after snapshot: https://github.com/RedisLabs/raft/blame/master/docs/Using.md#L306 For now, we can keep them in raft.h . Over time, we can revisit this decision and move into raft_private.h if necessary.
-
- 19 Sep, 2022 2 commits
-
-
Ozan Tezcan authored
Documentation fixes Co-authored-by:
Hanna Fadida <hanna.fadida@redislabs.com>
-
Ozan Tezcan authored
Moved internal functions to raft_internal.h Still, application can include raft_private.h use internal functions (not suggested).
-
- 12 Sep, 2022 2 commits
-
-
Ozan Tezcan authored
Added a helper function to get string representation of an error code.
-
Ozan Tezcan authored
Refactor callback comments. - Regroup related callbacks. - Move optional callbacks to the bottom and indicate "(optional)".
-
- 30 Aug, 2022 1 commit
-
-
Ozan Tezcan authored
Refactor debug logging and change log callback e.g: 19 --> 13, sent snapshot_resp id:27712, t:24, s:1, o:4096, lc:0 14 --> 17, sent requestvote_req pv:1, t:25, ci:14, lli:6848, llt:23 14 <-- 17, recv requestvote_resp pv:1, t:25, rt:24, vg:0 Breaking changes: raft_log_f() callback will not pass node_id_t anymore. Sender and receiver will be part of the log line as you can see above.
-
- 29 Aug, 2022 3 commits
-
-
Ozan Tezcan authored
Simplied pop callback. Previously, libraft was passing a callback(raft_entry_notify_f) to the pop callback. The application was supposed to call that callback for each removed entry. Libraft can loop over the entries and call the required functions itself. So, we can delete raft_entry_notify_f from the pop callback just to simplify API. In addition to that, this PR removes raft_pop_entry() function which doesn't have a use-case, as far as I can see. We can use raft_delete_entry_from_idx(me, raft_get_current_idx()) instead if required.
-
Ozan Tezcan authored
Add raft_get_last_applied_term()
-
Ozan Tezcan authored
Fix style issues in raft_log.c raft_node.c and raft_server_properties.c
-
- 28 Aug, 2022 1 commit
-
-
Ozan Tezcan authored
In https://github.com/RedisLabs/raft/pull/118, we introduced raft_restore_snapshot() which makes raft_set_snapshot_metadata() obsolete.
-
- 25 Aug, 2022 1 commit
-
-
Ozan Tezcan authored
Configuration changes are special in Raft. They take effect whenever the related log entries are appended. On a restart, we should go over the log entries and rebuild the configuration. Adding raft_restore_log() function for this purpose. Overall, on a restart, application should do: Load the snapshot and call raft_restore_snapshot() Load the log entries and call raft_restore_log() Read the metadata file and call raft_restore_metadata().
-
- 23 Aug, 2022 2 commits
-
-
Yehoshua (Josh) Hershberg authored
-
Ozan Tezcan authored
Combine raft_persist_vote_f and raft_persist_term_f into a single callback: raft_persist_metadata_f. Users should persist vote and term into a single metadata file. After a restart, application should call raft_restore_metadata() to restore vote and term
-
- 22 Aug, 2022 2 commits
-
-
Ozan Tezcan authored
Use typedef instead of the actual type
-
Ozan Tezcan authored
- raft_load_snapshot_f(): Changed order of arguments term and index to be inline with raft_begin_load_snapshot(). - Refactored raft_begin_load_snapshot(). Now, inside this function, current server's node flags are cleared. Previously, application had to take care of it. e.g Application had to clear inactive flag on a snapshot. - Added raft_restore_snapshot() to let libraft know that application has loaded a snapshot.
-
- 18 Aug, 2022 1 commit
-
-
Ozan Tezcan authored
-
- 16 Aug, 2022 1 commit
-
-
Ozan Tezcan authored
Delete stale HAVE_FUNC_LOG guard Log callback is already optional. Pre-processor guard is unnecessary.
-
- 08 Aug, 2022 1 commit
-
-
Ozan Tezcan authored
-
- 07 Jul, 2022 1 commit
-
-
Ozan Tezcan authored
-
- 30 Jun, 2022 1 commit
-
-
Ozan Tezcan authored
-
- 19 Jun, 2022 1 commit
-
-
Ozan Tezcan authored
Throttle operations if it takes longer than request timeout
-
- 19 May, 2022 1 commit
-
-
Ozan Tezcan authored
Simplify read request processing
-
- 02 May, 2022 1 commit
-
-
Ozan Tezcan authored
-
- 26 Apr, 2022 1 commit
-
-
Ozan Tezcan authored
Add raft_config() function for configuration
-
- 06 Apr, 2022 1 commit
-
-
Ozan Tezcan authored
-
- 30 Mar, 2022 2 commits
-
-
Ozan Tezcan authored
-
Ozan Tezcan authored
-
- 24 Mar, 2022 1 commit
-
-
Ozan Tezcan authored
Delete private typedefs, use namespace raft_ for exported symbols
-
- 21 Mar, 2022 1 commit
-
-
Ozan Tezcan authored
-
- 13 Mar, 2022 3 commits
-
-
Ozan Tezcan authored
Enabled compiler warnings and fixed issues
-
Ozan Tezcan authored
-
Ozan Tezcan authored
-