From 21deb75622efe13bbd608d9c97ca80e904b43c9c Mon Sep 17 00:00:00 2001 From: Michael Whittaker Date: Fri, 22 Jan 2021 16:29:49 -0800 Subject: [PATCH] Added capacity. --- quorums/quorum_system.py | 7 +++++++ quorums/strategy.py | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/quorums/quorum_system.py b/quorums/quorum_system.py index aad2a02..d99ba1a 100644 --- a/quorums/quorum_system.py +++ b/quorums/quorum_system.py @@ -117,6 +117,13 @@ class QuorumSystem(Generic[T]): sigma = self.strategy(read_fraction, write_fraction, f) return sigma.load(read_fraction, write_fraction) + def capacity(self, + read_fraction: Optional[Distribution] = None, + write_fraction: Optional[Distribution] = None, + f: int = 0) \ + -> float: + return 1 / self.load(read_fraction, write_fraction, f) + def _load_optimal_strategy(self, read_quorums: List[Set[T]], write_quorums: List[Set[T]], diff --git a/quorums/strategy.py b/quorums/strategy.py index cab5109..df46834 100644 --- a/quorums/strategy.py +++ b/quorums/strategy.py @@ -16,6 +16,12 @@ class Strategy(Generic[T]): -> float: raise NotImplementedError + def capacity(self, + read_fraction: Optional[Distribution] = None, + write_fraction: Optional[Distribution] = None) \ + -> float: + return 1 / self.load(read_fraction, write_fraction) + def get_read_quorum(self) -> Set[T]: raise NotImplementedError