hubcio commented on code in PR #3269:
URL: https://github.com/apache/iggy/pull/3269#discussion_r3263420154
##########
core/server-ng/src/bootstrap.rs:
##########
@@ -42,52 +41,68 @@ use message_bus::transports::tls::{
};
use message_bus::{
AcceptedClientFn, AcceptedQuicClientFn, AcceptedReplicaFn,
AcceptedTlsClientFn,
- AcceptedWsClientFn, IggyMessageBus, connector,
+ AcceptedWsClientFn, IggyMessageBus, ReplicaOwnerTable, connector,
};
use metadata::IggyMetadata;
use metadata::MuxStateMachine;
use metadata::impls::metadata::{IggySnapshot, StreamsFrontend};
use metadata::impls::recovery::recover;
use metadata::stm::consumer_group::ConsumerGroups;
+use metadata::stm::mux::WithFactory;
use metadata::stm::snapshot::Snapshot;
use metadata::stm::stream::{Partition, Streams};
use metadata::stm::user::Users;
use partitions::{
IggyIndexWriter, IggyPartition, IggyPartitions, MessagesWriter,
PartitionsConfig, Segment,
};
// TODO: decouple bootstrap/storage helpers and logging from the `server`
crate.
-use server::bootstrap::create_directories;
+use server::bootstrap::{create_directories, create_shard_executor};
use server::log::logger::Logging;
+use server::shard_allocator::{ShardAllocator, ShardInfo};
use server::streaming::partitions::storage::{load_consumer_group_offsets,
load_consumer_offsets};
use server::streaming::segments::storage::create_segment_storage;
use shard::builder::IggyShardBuilder;
-use shard::shards_table::PapayaShardsTable;
+use shard::metrics::ShardMetrics;
+use shard::shards_table::{PapayaShardsTable, calculate_shard_assignment};
use shard::{
- CoordinatorConfig, IggyShard, PartitionConsensusConfig, ShardIdentity,
channel, shard_channel,
+ CoordinatorConfig, IggyShard, PartitionConsensusConfig, Receiver as
ShardReceiver, ShardFrame,
+ ShardIdentity, TaggedSender, channel, shard_mesh_channels,
};
-use std::cell::{Cell, RefCell};
-use std::future::Future;
+use std::cell::RefCell;
use std::net::{IpAddr, SocketAddr};
use std::path::{Path, PathBuf};
use std::rc::{Rc, Weak};
use std::sync::Arc;
-use std::sync::atomic::{AtomicU64, Ordering};
+use std::sync::atomic::{AtomicBool, AtomicU64, Ordering};
+use std::thread;
+use std::time::Duration;
use tracing::{error, info, warn};
const CLUSTER_ID: u128 = 1;
-const SHARD_ID: u16 = 0;
const SHARD_REPLICA_ID: u8 = 0;
Review Comment:
correct. `SHARD_REPLICA_ID = 0` is only used when `current_replica_id` isn't
passed (single-node dev / tests). in cluster mode the CLI-supplied
`current_replica_id` propagates to every shard on the node, and shards on the
same node share the replica id because the VSR replica is a node-level
identity, not a per-shard one - shards are intra-node partition assignments
hashed via `IggyNamespace`. so per node: one replica id, N shards.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]