Megastore: Providing Scalable, Highly Available Storage for Interactive Services

Jason Baker
JJ Furman
Andrey Khorlin
James Larson
Jean-Michel Leon
Yawei Li
Vadim Yushprakh
Proceedings of the Conference on Innovative Data system Research (CIDR) (2011), pp. 223-234

Abstract

Megastore is a storage system developed to meet the requirements of today's interactive online services. Megastore blends the scalability of a NoSQL datastore with the convenience of a traditional RDBMS in a novel way, and provides both strong consistency guarantees and high availability. We provide fully serializable ACID semantics within fine-grained partitions of data. This partitioning allows us to synchronously replicate each write across a wide area network with reasonable latency and support seamless failover between datacenters. This paper describes Megastore's semantics and replication algorithm. It also describes our experience supporting a wide range of Google production services built with Megastore.