Atomic transactions for a read-optimized graph store

Facebook’s TAO social graph store handles billions of reads and millions of writes per second, serving many of the company’s applications with a design that favors availability and horizontal scalability. A new protocol called RAMP-TAO aims to layer more intuitive transactional behavior on top of TAO without disturbing its reliability or efficiency.

RAMP-TAO is presented as the first protocol to deliver transactional semantics over an eventually consistent, massive-scale data store while preserving the system's overall performance profile. It provides a straightforward read transaction API, removing the need for developers to manually detect and work around rare data anomalies.

Building on eventual consistency

The protocol takes inspiration from Read Atomic Multi-Partition (RAMP) protocols, which prevent fractured reads, where a reader observes only some of the writes from a multi-item transaction. Applying RAMP techniques directly to TAO, however, would add unacceptable storage and performance costs. RAMP-TAO instead uses a “bolt-on” strategy similar to earlier work on causal consistency.

Because TAO—like most large-scale systems—relies on eventual consistency for all data, RAMP-TAO only needs to safeguard against fractured reads for recent, transactionally updated items. By limiting strong guarantees to that subset, the protocol minimizes overhead for the existing nontransactional TAO workload.

Overhead and deployment feasibility

Research on RAMP-TAO indicates it is reasonable to deploy in production. The protocol introduces a 0.42 percent memory overhead over baseline TAO operations. For the vast majority of reads—over 99.9 percent—the system still completes in a single round-trip to the local cache, with tail latency comparable to existing TAO reads.

This operation model also keeps RAMP-TAO cache-friendly and tolerant of hot spots. It is designed to be extensible beyond the TAO data store, and the costs tied to stronger transactions are only borne by applications that explicitly opt in. Other applications continue to operate without added latency or storage burden.