Choosing a cloud storage system and specific operations for reading and writing data requires developers to make decisions that trade off consistency for availability and performance. Applications may be locked into a choice that is not ideal for all clients and changing conditions. Pileus is a replicated key-value store that allows applications to declare their consistency and latency priorities via consistencybased service level agreements (SLAs). It dynamically selects which servers to access in order to deliver the best service given the current configuration and system conditions. In application-specific SLAs, developers can request both strong and eventual consistency as well as intermediate guarantees such as read-mywrites. Evaluations running on a worldwide test bed with geo-replicated data show that the system adapts to varying client-server latencies to provide service that matches or exceeds the best static consistency choice and server selection scheme.  Categories and Subject Cloud storage systems, such as the currently popular class of "NoSQL" data stores, have been designed to meet the needs of diverse applications from social networking to electronic commerce. Such storage services invariably replicate application data on multiple machines to make it highly available. Many provide a relaxed form of consistency, eventual consistency, in order to achieve elastic scalability and good performance while some strive for strong consistency to maintain the semantics of one-copy serializability. To allow local access and ensure data survivability even during a complete datacenter failure, many storage systems offer "geo-replication," the option of replicating data across different regions of the world. With data being replicated on a worldwide scale, the inherent trade-offs between performance and consistency are accentuated due to the high communication latencies between datacenters. The performance difference between reads with different consistencies can be substantial. This is not surprising. Strongly consistent reads generally involve multiple replicas or must be serviced by a primary replica, whereas eventually consistent reads can be answered by the closest replica. Even within a datacenter, the latency of strongly consistent reads has been measured as eight times that of reads with weaker session guarantees [26] . With geo-replication, our studies show that the performance can differ by more than two orders of magnitude. Recognizing A major problem with existing multi-consistency storage services is that application developers need to decide at development time which consistency to embrace. They use different API calls to request
Specifically, Pileus REF shows that causal consistency can be achieved in such a system.
Consistency-based service level agreements for cloud storage
SOSP '13
Computer Science