Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[POC] Add support for automatically joining new OmniPaxos nodes #2478

Draft
wants to merge 25 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
48b2e1f
Make grpc server reusable by other metadata store implementations
tillrohrmann Aug 5, 2024
38ce8cb
Make it configurable which metadata store to run
tillrohrmann Aug 5, 2024
98b716e
Add single node Raft metadata store with memory storage
tillrohrmann Aug 6, 2024
c27cdc5
Classify ProposalDropped as Unavailable Tonic status
tillrohrmann Aug 6, 2024
4d73ab9
Implement simple durable Raft storage based on RocksDB
tillrohrmann Aug 6, 2024
ddd39b6
Implement simple networking layer for RaftMetadataStore
tillrohrmann Aug 19, 2024
62d62c8
Move networking and connection manager into network module
tillrohrmann Nov 27, 2024
a2c46c0
Generify RaftMetadataStoreSvc into MetadataStoreNetworkSvc
tillrohrmann Nov 27, 2024
b1c1012
Return error when connecting to remote metadata store peer
tillrohrmann Nov 27, 2024
bd7886a
Make metadata store network layer accept generic messages
tillrohrmann Nov 27, 2024
d227c67
Implement simple OmniPaxos based metadata store
tillrohrmann Nov 28, 2024
2587367
Make metadata store type configuration more ergonomic
tillrohrmann Nov 28, 2024
84947bf
Add RocksDb backed persistent log storage for omni paxos metadata store
tillrohrmann Nov 28, 2024
c03012d
Allow embedded metadata store client to connect to different endpoints
tillrohrmann Nov 28, 2024
10575e3
Update OmniPaxos to use Restate version
tillrohrmann Dec 6, 2024
6a0fd39
Add simple provision grpc handler for metadata store
tillrohrmann Jan 2, 2025
f5e380c
Adding support for provisioning the OmniPaxosMetadataStore
tillrohrmann Jan 3, 2025
13f4f7a
Harden cluster controller to not panic on error
tillrohrmann Jan 6, 2025
c129663
Decrease log level of failed grpc requests to DEBUG
tillrohrmann Jan 6, 2025
13d9659
Enable restatectl to take multiple metadata store addresses
tillrohrmann Jan 6, 2025
dde64e4
Implement a simple mechanism to reconfigure an OmniPaxos cluster
tillrohrmann Jan 6, 2025
6b0fc1d
Let OmniPaxosMetadataStore discover changing addresses of peers based…
tillrohrmann Jan 9, 2025
9364667
Replace the usage of GenerationalNodeId with PlainNodeId and StorageId
tillrohrmann Jan 9, 2025
cc9ebb9
Implement provision grpc call for local metadata store
tillrohrmann Jan 9, 2025
7a5d200
Update workspace-hack
tillrohrmann Jan 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
233 changes: 233 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion crates/admin/src/cluster_controller/logs_controller.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1283,7 +1283,7 @@ pub mod tests {
};
use restate_types::logs::LogletId;
use restate_types::nodes_config::{
LogServerConfig, NodeConfig, NodesConfiguration, Role, StorageState,
LogServerConfig, MetadataStoreConfig, NodeConfig, NodesConfiguration, Role, StorageState,
};
use restate_types::replicated_loglet::{NodeSet, ReplicatedLogletParams, ReplicationProperty};
use restate_types::{GenerationalNodeId, NodeId, PlainNodeId};
Expand Down Expand Up @@ -1468,6 +1468,7 @@ pub mod tests {
format!("https://node-{id}").parse().unwrap(),
roles,
LogServerConfig { storage_state },
MetadataStoreConfig::default(),
)
}

Expand Down
3 changes: 2 additions & 1 deletion crates/admin/src/cluster_controller/scheduler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -613,7 +613,7 @@ mod tests {
use restate_types::net::partition_processor_manager::{ControlProcessors, ProcessorCommand};
use restate_types::net::{AdvertisedAddress, TargetName};
use restate_types::nodes_config::{
LogServerConfig, NodeConfig, NodesConfiguration, Role, StorageState,
LogServerConfig, MetadataStoreConfig, NodeConfig, NodesConfiguration, Role, StorageState,
};
use restate_types::partition_table::{PartitionTable, ReplicationStrategy};
use restate_types::time::MillisSinceEpoch;
Expand Down Expand Up @@ -706,6 +706,7 @@ mod tests {
AdvertisedAddress::Http(Uri::default()),
Role::Worker.into(),
LogServerConfig::default(),
MetadataStoreConfig::default(),
);
nodes_config.upsert_node(node_config);
}
Expand Down
Loading
Loading