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. Categories and Subject Descriptors C.2.4 [Distributed Systems]: Distributed databases; H.2.4 [Database Management]: Systems—concurrency, distributed databases General Terms Algorithms, Design, Performance, Reliability Keywords Large databases, Distributed transactions, ...
Jason Baker, Chris Bond, James Corbett, J. J. Furm