There is increasing demand to deploy web applications across multiple data centers to improve fault tolerance and reduce network delays to users. As application servers need to share data, their construction can be significantly simplified if a storage backend exists for applications to seamlessly access replicated data at different data centers.
A geo-replicated storage system faces the unpleasant tradeoff of consistency vs. performance because of large inter-data-center communication delay. This proposal investigates novel consistency and programming models for geo-replicated storage that are easy-to-use and can achieve good performance. In particular, this project proposes parallel snapshot isolation, a novel consistency model that enables efficient implementation with minimal coordination across data centers. Parallel snapshot isolation provides much stronger guarantees than existing weak consistency models by disallowing write-write conflicts and preserving the causality of operations. The PI builds Walter, a geo-replicated transactional key-value store that guarantees parallel snapshot isolation. A number of common web applications are written on top of Walter and evaluations demonstrate that the new consistency model is easy to program for and enables applications to achieve high performance. The success of this project will bring much improvement to the state-of-art in writing scalable and fault tolerant web applications.