Modern online services rely on data stores that replicate their data across geographically distributed data centers. Providing strong consistency in such data stores results in high latencies and makes the system vulnerable to network partitions. The alternative of relaxing consistency violates crucial correctness properties. A compromise is to allow multiple consistency levels to coexist in the data store. In this paper we present UniStore, the first fault-tolerant and scalable data store that combines causal and strong consistency. The key challenge we address in UniStore is to maintain liveness despite data center failures: this could be compromised if a strong transaction takes a dependency on a causal transaction that is later lost because of a failure. UniStore ensures that such situations do not arise while paying the cost of durability for causal transactions only when necessary. We evaluate UniStore on Amazon EC2 using both microbenchmarks and a sample application. Our results show that UniStore effectively and scalably combines causal and strong consistency.
翻译:现代在线服务依赖于在地理分布的数据中心复制其数据的数据存储。 在这类数据存储中提供强有力的一致性导致高度延迟,并使系统易受网络分割的影响。 放松一致性的替代办法违反了关键的正确性。 妥协是允许数据存储中多重一致性水平并存。 在本文中,我们介绍UniStore, 第一个将因果和强烈一致性相结合的容错和可缩放数据存储。 我们在UniStore中处理的关键挑战是如何在数据中心失败的情况下保持活性:如果强有力的交易依赖因果交易,而后来由于失败而丢失的。 UniStore确保这种情况不会发生,同时只在必要时支付因果交易的耐久性成本。我们用微Benchmarks和样本应用程序对亚马逊EC2的UniStore进行评估。 我们的结果显示,UniStore有效和可快速地将因果和强一致性结合起来。