Skip to content
All papers

Large-scale Incremental Processing Using Distributed Transactions and Notifications

Daniel Peng, Frank Dabek2010OSDI 2010

Read it on research.google(opens in a new tab)

Why this one

Read this after MapReduce: Simplified Data Processing on Large Clusters and Bigtable: A Distributed Storage System for Structured Data. MapReduce teaches you the clean batch rebuild. Percolator teaches the messier thing you actually need when the web, your catalog, or your feature store changes all day. The core move is to turn a huge table into a place where small transactions can safely trigger more work, so an index advances by dependency, not by periodic amnesia. People often remember this as Google proving two phase commit can scale. That is too shallow. The lesson is about choosing the unit of freshness, accepting higher write cost, and building notifications into storage so application code does not invent its own broken scheduler. If you maintain derived data, read it before you reach for a queue, a cron job, and hope.

What to take away

  • Percolator stores dirty state and notifications beside the data, so incremental work survives worker crashes.
  • Its transactions are narrow and practical, designed for index updates rather than arbitrary OLTP workloads.
  • The paper shows when batch simplicity stops paying for itself and freshness becomes a system design requirement.

Reads with