~learn.
0:00 / 1:18
W05 · Consistency and coordination

Facebook lets your friends' data be a second old. Never yours.

transcript

Facebook lets your friends' data be a second out of date. Your own data? Never. And that's a deliberate design.

TAO is Facebook's store for social data. About a billion reads a second, per its 2013 paper. Writes go to MySQL, the source of truth. Reads come from caches. Other caches hear about a write asynchronously. Typically under a second behind. Not a hard bound.

Make every read strongly consistent? Every read pays for coordination. A billion times a second. Make everything eventual? You update your profile, refresh, and see the old one. Then you think: did my update even work? Users lose trust.

So TAO asks one question. Whose data is this? Your own? It routes to a consistent cache. A leader cache gives you read-your-writes. A friend's? Any cache will do. Fast, and maybe a second old.

You'd notice your own post missing right after you posted it. You won't notice a friend's post being one second late.

Different consistency for different access patterns. Pay for freshness where users would notice. Nowhere else.

Full breakdown in the lecture.