Availability and Performance of the Adaptive Voting Replication

  • Authors:
  • Johannes Osrael;Lorenz Froihofer;Norbert Chlaupek;Karl M. Goeschka

  • Affiliations:
  • Vienna University of Technology;Vienna University of Technology;University of Applied Sciences fh-campus wien, Daumegasse 5, 1100 Vienna, Austria;Vienna University of Technology

  • Venue:
  • ARES '07 Proceedings of the The Second International Conference on Availability, Reliability and Security
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Replication is used to enhance availability and performance in distributed systems. Replica consistency and data integrity (constraint consistency) are correctness criteria for data-centric distributed systems. If consistency needs to be ensured all time, such systems soon become (partially) unavailable if node and link failures occur. However, some applications exist (e.g., in control engineering) where consistency can be temporarily relaxed during degradation in order to achieve higher availability. Recently we proposed Adaptive Voting (AV), a novel replication protocol based on traditional quorum consensus (voting) that allows the configuration of this trade-off. AV allows non-critical operations (that cannot violate critical constraints) even if no quorum exists. Since this might impose replica conflicts and data integrity violations, different reconciliation policies are needed to re-establish correctness at repair time. The contribution of this paper is two-fold: First, we present an availability analysis of AV. Second, we present performance measurements of AV from our .NET-based proof-of-concept implementation. The availability analysis shows that AV provides better availability than traditional voting if (i) some data integrity constraints of the system are relaxable and (ii) reconciliation time is shorter than degradation time. The performance results indicate that a read-one/writeall configuration of AV is fastest for write-operations that involve checking of inter-object constraints and thus implicitly include read operations.