cluster layout: adapt all uses of ClusterLayout to LayoutHistory

This commit is contained in:
Alex Auvolat
2023-11-08 19:28:36 +01:00
parent fe9af1dcaa
commit 8dccee3ccf
12 changed files with 80 additions and 69 deletions
+2 -3
View File
@@ -27,11 +27,10 @@ impl TableReplication for TableFullReplication {
}
fn write_nodes(&self, _hash: &Hash) -> Vec<Uuid> {
let layout = self.system.cluster_layout();
layout.node_ids().to_vec()
self.system.cluster_layout().current().node_ids().to_vec()
}
fn write_quorum(&self) -> usize {
let nmembers = self.system.cluster_layout().node_ids().len();
let nmembers = self.system.cluster_layout().current().node_ids().len();
if nmembers > self.max_faults {
nmembers - self.max_faults
} else {
+10 -6
View File
@@ -26,16 +26,20 @@ pub struct TableShardedReplication {
impl TableReplication for TableShardedReplication {
fn read_nodes(&self, hash: &Hash) -> Vec<Uuid> {
let layout = self.system.cluster_layout();
layout.nodes_of(hash, self.replication_factor)
self.system
.cluster_layout()
.current()
.nodes_of(hash, self.replication_factor)
}
fn read_quorum(&self) -> usize {
self.read_quorum
}
fn write_nodes(&self, hash: &Hash) -> Vec<Uuid> {
let layout = self.system.cluster_layout();
layout.nodes_of(hash, self.replication_factor)
self.system
.cluster_layout()
.current()
.nodes_of(hash, self.replication_factor)
}
fn write_quorum(&self) -> usize {
self.write_quorum
@@ -45,9 +49,9 @@ impl TableReplication for TableShardedReplication {
}
fn partition_of(&self, hash: &Hash) -> Partition {
self.system.cluster_layout().partition_of(hash)
self.system.cluster_layout().current().partition_of(hash)
}
fn partitions(&self) -> Vec<(Partition, Hash)> {
self.system.cluster_layout().partitions()
self.system.cluster_layout().current().partitions()
}
}
+2 -2
View File
@@ -492,8 +492,8 @@ impl<F: TableSchema, R: TableReplication> EndpointHandler<SyncRpc> for TableSync
struct SyncWorker<F: TableSchema, R: TableReplication> {
syncer: Arc<TableSyncer<F, R>>,
layout_watch: watch::Receiver<Arc<ClusterLayout>>,
layout: Arc<ClusterLayout>,
layout_watch: watch::Receiver<Arc<LayoutHistory>>,
layout: Arc<LayoutHistory>,
add_full_sync_rx: mpsc::UnboundedReceiver<()>,
todo: Vec<TodoPartition>,
next_full_sync: Instant,