AsterixDB is a Big Data Management System (BDMS) designed to manage data on clusters of commodity hardware. In any distributed system, failures of hardware and/or software components in the system are an eventual certainty and a choice has to be made between consistency and availability. AsterixDB, being a CP system (as opposed to an AP system), sacrifices availability when there is a partition in the network and seeks to maintain data consistency.
In this thesis, we describe a replication protocol called Active Replication that eagerly replicates the state of a node in the cluster to one or more replicas and provides a Mean Time to Recovery (MTTR) close to the time needed to detect a given failure. The protocol works without sacrificing the consistency of the system by exploiting properties of AsterixDB’s record-oriented transactional model and the lifecyle of its Log-Structured Merge-trees. We describe the implementation of the Active Replication protocol as well as the fault-tolerance mechanism built on top of the protocol. We evaluate the performance of the protocol and show how to achieve a low MTTR with a 10–25% decrease in ingestion throughput