How to Optimize Caching for Transactions

July 12, 2023

tl;dr: Current caching policies optimize for the wrong metric on transactional workloads; we should really be caching the groups of objects that are accessed together. To improve latency at scale, application developers often layer caching systems, such as Memcached and Redis…

TAOBench: A Deep Dive into Meta’s Social Network Workload

November 3, 2022

tl;dr: Meta’s social network workload contains a variety of interesting features that we capture in a new benchmark, TAOBench. As we saw in a previous blog post, there is a crucial need for a new social network benchmark. To address this issue, we present TAOBench, the first…

Where Are All the Social Network Benchmarks?

November 1, 2022

tl;dr: Despite the enduring popularity of social networks, there are few benchmarks that accurately capture the production behavior of this important application domain. To address this gap, we introduce TAOBench, a new benchmark that replicates Meta’s social graph workloads…

Expanding the CAP Tradeoff Frontier at Scale

August 11, 2022

tl;dr: Distributed systems must balance their needs for high availability and low latency with consistency guarantees; providing a mostly hit happy path for requests enables these systems to push the boundaries of this tradeoff. Distributed systems must choose between…

RAMP-TAO Transactions

August 18, 2021

What the research is RAMP-TAO is a new protocol that improves the developer experience on TAO, Facebook’s online social graph store, by providing stronger transactional guarantees. It is the first protocol to provide transactional semantics over an eventually consistent massive…