go back

Volume 14, No. 12

RAMP-TAO: Layering Atomic Transactions on Facebook's Online TAO Data Store

Authors:
Audrey Cheng (UC Berkeley), Xiao Shi (Facebook, Inc.), Lu Pan (Facebook, Inc.), Anthony Simpson (Facebook, Inc.), Neil Wheaton (Facebook, Inc.), Shilpa Lawande (Facebook, Inc.), Nathan Bronson (Rockset), Peter Bailis (), Natacha Crooks (UC Berkeley), Ion Stoica (UC Berkeley)

Abstract

Facebook's graph store TAO, like many other distributed data stores, traditionally prioritizes availability, efficiency, and scalability over strong consistency or isolation guarantees to serve its large, read-dominant workloads. As product developers build diverse applications on top of this system, they increasingly seek transactional semantics. However, providing advanced features for select applications while preserving the system's overall reliability and performance is a continual challenge. In this paper, we first characterize developer desires for transactions that have emerged over the years and describe the current failure-atomic (i.e., write) transactions offered by TAO. We then explore how to introduce an intuitive read transaction API. We highlight the need for atomic visibility guarantees in this API with a measurement study on potential anomalies that occur without stronger isolation for reads. Our analysis shows that 1 in 1,500 batched reads reflects partial transactional updates, which complicate the developer experience and lead to unexpected results. In response to our findings, we present the RAMP-TAO protocol, a variation based on the Read Atomic Multi-Partition (RAMP) protocols that can be feasibly deployed in production with minimal overhead while ensuring atomic visibility for a read-optimized workload at scale.

PVLDB is part of the VLDB Endowment Inc.

Privacy Policy