Frank/raft phase8 - #5
Open
Overcomplicated12 wants to merge 33 commits into
Open
Conversation
…te SendAppendEntriesResults + RaftVoteQuorumEvent
# Conflicts: # CMakeLists.txt # src/deptran/raft/channel_transport.hpp # src/deptran/raft/server.cc
# Conflicts: # src/deptran/raft/channel_transport.hpp # src/deptran/raft/commo.h # src/deptran/raft/quorum.hpp # src/deptran/raft/server.cc # src/deptran/raft/service.cc
# Conflicts: # src/deptran/raft/quorum.hpp # src/deptran/raft/raft_node.hpp # src/deptran/raft/test_cluster.hpp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Raft Phase 8: Transport, Dispatcher, Storage, and TestCluster Decoupling
Summary
This PR completes the Phase 8 Raft decoupling work on top of
d76e88d9.It introduces explicit boundaries for outbound transport, inbound dispatch, storage, and test-cluster lifecycle management. It also upgrades
TestClusterto run realRaftServerinstances under controlled transport faults and restart scenarios.What Changed
Outbound Transport Decoupling
RaftServeroutbound RPCs throughTransportProxy.AppendEntriesAppendEntriesInstallSnapshotTimeoutNowcommo()fromRaftServer.RaftVoteQuorumEventSendAppendEntriesResultsDispatcher Boundary
RaftServerDispatcher.RaftServer::On*handlers to theDispatcherFacade/DispatcherProxyboundary.RaftServiceImplthrough the dispatcher instead of directly owning Raft server behavior.Storage Decoupling
LogStorageaccess behind narrow facade and proxy boundaries.SnapshotManageraccess behind narrow facade and proxy boundaries.TestCluster and Standalone Raft Lab
RaftServerinstances throughTestCluster.RaftTestConfiginto the cluster.raft_lab_standaloneto execute the full Raft lab throughTestCluster.PollThreadlifecycle behaviorLifetime and Ownership
PollThreadinstances terminate before server destruction.RaftServerobjects.Rust-DSL and Clang 22 Compatibility
rusty::Vecfor:import stdcompatibility.test_rpc_log_storagefromtxlog_coreand RocksDB.Validation
Rust-DSL Validation
All generated Raft Rust-DSL blocks pass:
Coverage includes 26 Raft source files.
Focused Clang 22 Tests
The following focused tests pass:
Phase 8 Coverage
This PR adds or updates focused coverage for:
TestClusterexecutionPollThreadownershipNotes
This branch also includes the Rust-DSL memory-footprint work merged from
frank/raft-rustdsl.That work: