diff options
author | Alex Auvolat <alex@adnab.me> | 2021-03-11 19:06:27 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2021-03-11 19:06:27 +0100 |
commit | 3f7a496355bdbeeeee859912fa6fa7a95cb47f3b (patch) | |
tree | 53284e346d2020de4a9207b6a20bc1b83ae9df6e /src/table/replication | |
parent | f7c2cd1cd7ee15b9c97b9fbdef25c0644b3523bb (diff) | |
download | garage-3f7a496355bdbeeeee859912fa6fa7a95cb47f3b.tar.gz garage-3f7a496355bdbeeeee859912fa6fa7a95cb47f3b.zip |
More security: don't delete stuff too easily
Diffstat (limited to 'src/table/replication')
-rw-r--r-- | src/table/replication/fullcopy.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/table/replication/fullcopy.rs b/src/table/replication/fullcopy.rs index a20f20b7..a5faece9 100644 --- a/src/table/replication/fullcopy.rs +++ b/src/table/replication/fullcopy.rs @@ -41,7 +41,12 @@ impl TableReplication for TableFullReplication { self.replication_nodes(hash, system.ring.borrow().as_ref()) } fn write_quorum(&self, system: &System) -> usize { - system.ring.borrow().config.members.len() - self.max_faults + let nmembers = system.ring.borrow().config.members.len(); + if nmembers > self.max_faults { + nmembers - self.max_faults + } else { + 1 + } } fn max_write_errors(&self) -> usize { self.max_faults |