Geo-replicated storage systems provide the backend for massive-scale websites such as Google and Facebook. These storage systems seek to provide an always-on experience where every operation completes quickly because of a widely demonstrated link between page load times, user engagement, and revenue. We term systems that provide an always-on experience and can handle data at the required scale 'ALPS' systems because they provide four key properties: Availability, Low latency, Partition tolerance, and Scalability.
Previous ALPS systems made large usability sacrifices in pursuit of their scale and performance goals. They settled for eventually consistent replication between datacenters and inconsistent batch operations within them. My research shows that these sacrifices are not fundamental.
In this talk, I will present the first ALPS system to provide consistency that is stronger than eventual. Specifically, I will show how to provide causal consistency for data stored in multiple datacenters, each of which spreads the data across many servers. Then, I will show how to strengthen the semantics of that system with a richer data model as well as read-only and write-only transactions.