Tags: drmingdrmer/openraft
Tags
Refactor: Snapshot with same last log id can be installed
Refactor: refine method names for `TransferLeaderRequest`
Refactor: ignore notification for Leader/Candidate when node is in su… …ch state
Fix: (0.10) Clarify that receiving an equal vote does not grant leade… …rship. A node's `vote` may be updated when a leader observes a higher vote. In such cases, the leader updates its local vote and steps down. However, this vote update does not imply that the node accepts the higher vote as valid for leadership, as it has not yet compared their logs. In this commit, re-enable `VoteResponse.vote_granted` to indicate a vote is granted.
Refactor: append log entries to local store in non-blocking mode Since this commit, `RaftCore` returns at once upon submitting ApendEntries IO request to `RaftLogStorage`, without waiting for the IO to be flushed to disk. When flushed, the result is responded to `RaftCore` via a `Notify` channel. This way `RaftCore` won't be blocked by AppendEntries IO operation: while entries being flushing to disk, `RaftCore` is still able to deal with other operations. Upgrade(non-breaking) tip: - Deprecated `LogFlushed`, use `IOFlushed` instead. - Deprecated `LogFlushed::log_io_completed()`, use `IOId::io_completed()` instead.
Fix: install_snapshot() should return local vote, not request vote
Refactor: even when `generic-snapshot-data` is enabled, the old chunk… …ed transport be still available If `generic-snapshot-data` is enabled, the old chunk based transport such as `RaftNetwork::install_snapshot()` for sending and `Raft::install_snapshot()` for receiving should be still be available but just deprecated. This way the application can upgrade Openraft without modification, except several `#[allow(deprecated)]` attributes.
Feature: add trait `RaftLogStorageExt` to provide additional raft-log… … methods The `RaftLogReaderExt::blocking_append()` method enables the caller to append logs to storage in a blocking manner, eliminating the need to create and await a callback. This method simplifies the process of writing tests.
Change: rename `Raft::install_complete_snapshot()` to `install_full_s… …napshot()` Rename `Raft::install_complete_snapshot()` to `install_full_snapshot()`; Rename `RaftNetwork::snapshot()` to `full_snapshot()`;
PreviousNext