This research project in MSR SVC aims to answer the following question: Can we allow programmers to write cloud applications as though they are accessing centralized, strongly consistent data while at the same time allowing them to specify their consistency/availability/performance (CAP) requirements in terms of service-level agreements (SLAs) that are enforced by the cloud storage system at runtime?


Pileus is a key-value storage system developed at MSR Silicon Valley that combines (1) geo-replication for availability, (2) partitioned data for scalability, (3) transactions for atomic execution of sequences of reads and writes, (4) consistency choices for application control over data staleness, and (5) consistency-based service level agreements (SLAs). One distinction of Pileus is a broad choice of data consistency including strong consistency (which guarantees that readers receive the latest versions of data objects), eventual consistency (which is provided by many systems including S3 from Amazon), read-my-writes consistency (which guarantees that clients see their own writes immediately), bounded staleness (which guarantees that data is not too stale), and monotonic read consistency (which guarantees that clients seen an increasingly up-to-date version of the storage). The key innovation in Pileus is incorporating an application’s acceptable consistency and latency into service level agreements. For example, an application might tolerate eventual consistency but prefer to obtain the strongest consistency possible as long as read operations return in under 100 milliseconds. The Pileus system monitors replicas of the underlying storage system and routes read operations to the servers that can best meet a given consistency-based SLA. Two instances of the Pileus system have been developed: a full-featured prototype using a custom key-value store and a second system with more limited features (i.e. without transactions) that is built on Windows Azure Storage.