PNUTS is Yahoo’s hosted data serving platform. They don’t need (and can’t afford) general transactions but eventual consistency is too weak for them. E.g., (1) remove mother from list of people who can view photos (2) post spring break photos. If (2) is done before one at some replica, then mother may see the spring break photos. So they support a “per-record timeline” consistency model. They support selection and projection from a single table. A reliable pub/sub system is at the heart of replicationand the timeline consistency. The obvious future work is mentioned, including secondary indexes and “bundled updates” (i.e., atomic, non-isolated updates to multiple records.
From VLDB 2008.
We describe PNUTS, a massively parallel and geographically distributed database system for Yahoo!’s web applications. PNUTS provides data storage organized as hashed or ordered tables, low latency for large numbers of concurrent requests including updates and queries, and novel per-record consistency guarantees. It is a hosted, centrally managed, and geographically distributed service, and utilizes automated load-balancing and failover to reduce operational complexity. The first version of the system is currently serving in production. We describe the motivation for PNUTS and the design and implementation of its table storage and replication layers, and then present experimental results.