  Data replication is crucial in modern distributed systems as a means to
provide high availability. Many techniques have been proposed to utilize
replicas to improve a system's performance, often requiring expensive
coordination or sacrificing consistency. In this paper, we present SCAR, a new
distributed and replicated in-memory database that allows serializable
transactions to read from backup replicas with minimal coordination. SCAR works
by assigning logical timestamps to database records so that a transaction can
safely read from a backup replica without coordinating with the primary
replica, because the records cannot be changed up to a certain logical time. In
addition, we propose two optimization techniques, timestamp synchronization and
parallel locking and validation, to further reduce coordination. We show that
SCAR outperforms systems with conventional concurrency control algorithms and
replication strategies by up to a factor of 2 on three popular benchmarks. We
also demonstrate that SCAR achieves higher throughput by running under reduced
isolation levels and detects concurrency anomalies in real time.
