diff options
author | Alex Auvolat <alex@adnab.me> | 2021-03-16 12:18:03 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2021-03-16 12:18:03 +0100 |
commit | 2a41b8238496dfeac5ee0f273445299cbd112ff6 (patch) | |
tree | 1c65e8eeaea6ba5124600d33ad98e62b5e13ab53 /src/table/replication/sharded.rs | |
parent | 0aad2f2e066b5914ac94bb319e7679e2e7761b2b (diff) | |
download | garage-2a41b8238496dfeac5ee0f273445299cbd112ff6.tar.gz garage-2a41b8238496dfeac5ee0f273445299cbd112ff6.zip |
Simpler Merkle & sync
Diffstat (limited to 'src/table/replication/sharded.rs')
-rw-r--r-- | src/table/replication/sharded.rs | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/src/table/replication/sharded.rs b/src/table/replication/sharded.rs index 966be31a..dce74b03 100644 --- a/src/table/replication/sharded.rs +++ b/src/table/replication/sharded.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use garage_rpc::membership::System; -use garage_rpc::ring::Ring; +use garage_rpc::ring::*; use garage_util::data::*; use crate::replication::*; @@ -22,10 +22,6 @@ impl TableReplication for TableShardedReplication { // - reads are done on all of the nodes that replicate the data // - writes as well - fn partition_of(&self, hash: &Hash) -> u16 { - self.system.ring.borrow().partition_of(hash) - } - fn read_nodes(&self, hash: &Hash) -> Vec<UUID> { let ring = self.system.ring.borrow().clone(); ring.walk_ring(&hash, self.replication_factor) @@ -45,16 +41,10 @@ impl TableReplication for TableShardedReplication { self.replication_factor - self.write_quorum } - fn split_points(&self, ring: &Ring) -> Vec<Hash> { - let mut ret = vec![]; - - for entry in ring.ring.iter() { - ret.push(entry.location); - } - if ret.len() > 0 { - assert_eq!(ret[0], [0u8; 32].into()); - } - - ret + fn partition_of(&self, hash: &Hash) -> Partition { + self.system.ring.borrow().partition_of(hash) + } + fn partitions(&self) -> Vec<(Partition, Hash)> { + self.system.ring.borrow().partitions() } } |