aboutsummaryrefslogtreecommitdiff
path: root/src/table/replication
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2021-03-11 19:06:27 +0100
committerAlex Auvolat <alex@adnab.me>2021-03-11 19:06:27 +0100
commit3f7a496355bdbeeeee859912fa6fa7a95cb47f3b (patch)
tree53284e346d2020de4a9207b6a20bc1b83ae9df6e /src/table/replication
parentf7c2cd1cd7ee15b9c97b9fbdef25c0644b3523bb (diff)
downloadgarage-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.rs7
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