Jason Baker, Chris Bond, James C. Corbett, JJ Furman, Andrey Khorlin, James Larson, Jean-Michel Leon, Yawei Li, Alexander Lloyd, and Vadim Yushprakh
Nowadays, as desktop applications migrate to the cloud, interactive online services are forcing the storage community to meet new requirements: (1) high scalability, (2) rapid development, (3) low latency, (4) a consistent view of the data, (5) high availability. However, existing solutions cannot fully solve the conflicts to fulfill these requirements, therefore driving a need for Megastore.
In this paper, the authors present Megastore, which meets the requirements as mentioned above. Mega asks application developers to partition data into entity groups, where each group represents a relatively small amount of data. Operations within the group get full ACID semantics; cross group operations have to build their own consistency model, perhaps two-phase commit, or something looser. Megastore also allows applications to do less-consistent reads for lower latency. Overall, Megastore provides fully serializable ACID semantics over distant replicas with low latency.
- The authors present Megastore. Its design allows rapid development of interactive applications where high availability and scalability are built-in from the start.
- Megastore uses an implementation of the Paxos replication and consensus algorithm optimized for low-latency operation across geographically distributed datacenters to provide high availability for the system.
- The authors also provide a report on our experience with a large-scale deployment of Megastore at Google.
- Megastore blends the scalability of a NoSQL datastore with the convenience of a traditional RDBMS.
- Megastore uses synchronous replication to achieve high availability and a consistent view of the data. In brief, provides fully serializable ACID semantics over distant replicas with low latency.
- Paxos may introduce more network delays than any other replication strategies, even with the optimization they made on Paxos.