table sync: use write quorums to report global success or failure of sync

This commit is contained in:
Alex Auvolat
2023-12-07 11:16:10 +01:00
parent 95eb13eb08
commit d90de365b3
6 changed files with 36 additions and 28 deletions
+1 -2
View File
@@ -1,4 +1,3 @@
use std::iter::FromIterator;
use std::sync::Arc;
use garage_rpc::layout::*;
@@ -69,7 +68,7 @@ impl TableReplication for TableFullReplication {
partition: 0u16,
first_hash: [0u8; 32].into(),
last_hash: [0xff; 32].into(),
storage_nodes: Vec::from_iter(layout.current().all_nodes().to_vec()),
storage_sets: vec![layout.current().all_nodes().to_vec()],
}],
}
}
+1 -1
View File
@@ -40,5 +40,5 @@ pub struct SyncPartition {
pub partition: Partition,
pub first_hash: Hash,
pub last_hash: Hash,
pub storage_nodes: Vec<Uuid>,
pub storage_sets: Vec<Vec<Uuid>>,
}
+2 -2
View File
@@ -60,12 +60,12 @@ impl TableReplication for TableShardedReplication {
.current()
.partitions()
.map(|(partition, first_hash)| {
let storage_nodes = layout.storage_nodes_of(&first_hash);
let storage_sets = layout.storage_sets_of(&first_hash);
SyncPartition {
partition,
first_hash,
last_hash: [0u8; 32].into(), // filled in just after
storage_nodes,
storage_sets,
}
})
.collect::<Vec<_>>();