From 0091002ef2fe5761cc6c325490be2f01b2090600 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Mon, 28 Mar 2022 16:20:15 +0200 Subject: New replication modes and their documentation --- src/table/replication/mode.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/table/replication/mode.rs b/src/table/replication/mode.rs index 32687288..c6f84c45 100644 --- a/src/table/replication/mode.rs +++ b/src/table/replication/mode.rs @@ -1,7 +1,10 @@ pub enum ReplicationMode { None, TwoWay, + TwoWayDangerous, ThreeWay, + ThreeWayDegraded, + ThreeWayDangerous, } impl ReplicationMode { @@ -9,7 +12,10 @@ impl ReplicationMode { match v { "none" | "1" => Some(Self::None), "2" => Some(Self::TwoWay), + "2-dangerous" => Some(Self::TwoWayDangerous), "3" => Some(Self::ThreeWay), + "3-degraded" => Some(Self::ThreeWayDegraded), + "3-dangerous" => Some(Self::ThreeWayDangerous), _ => None, } } @@ -24,16 +30,17 @@ impl ReplicationMode { pub fn replication_factor(&self) -> usize { match self { Self::None => 1, - Self::TwoWay => 2, - Self::ThreeWay => 3, + Self::TwoWay | Self::TwoWayDangerous => 2, + Self::ThreeWay | Self::ThreeWayDegraded | Self::ThreeWayDangerous => 3, } } pub fn read_quorum(&self) -> usize { match self { Self::None => 1, - Self::TwoWay => 1, + Self::TwoWay | Self::TwoWayDangerous => 1, Self::ThreeWay => 2, + Self::ThreeWayDegraded | Self::ThreeWayDangerous => 1, } } @@ -41,7 +48,9 @@ impl ReplicationMode { match self { Self::None => 1, Self::TwoWay => 2, - Self::ThreeWay => 2, + Self::TwoWayDangerous => 1, + Self::ThreeWay | Self::ThreeWayDegraded => 2, + Self::ThreeWayDangerous => 1, } } } -- cgit v1.2.3