Designing a causally consistent protocol for geo-distributed partial replication

Designing a causally consistent protocol for geo-distributed partial replication
复制标题

为地理分布式部分复制设计因果一致的协议

DOI:
--
复制
发表时间:
2015
期刊:
PaPoC@EuroSys
影响因子:
--
通讯作者:
M. Shapiro
M. Shapiro
中科院分区:
--
文献类型:
--
作者:
Tyler Crain;M. Shapiro

文献摘要

被引文献

相似文献

现代互联网应用程序需要可扩展到数百万客户端,响应时间在几十毫秒内,并且在存在分区,硬件故障甚至灾难的情况下可用。为了满足这些要求,应用程序通常在分布在世界各地的多个数据中心(DC)之间进行地理复制,为客户提供对附近DC的快速访问以及在DC超时的情况下的容错。使用多个副本也有缺点,这不仅会产生额外的存储,带宽和硬件成本,而且对这些系统进行编程变得更加困难。为了解决额外的硬件成本,数据通常是部分复制的,这意味着只有某些DC将保留某些数据的副本,例如在键值存储中,它可能只存储对应于一部分键的值。此外,为了解决这些系统的编程问题,一致性协议在顶部运行,以确保对数据的不同保证,但如CAP定理所示,不能同时确保强一致性,可用性和分区容差。对于许多应用程序来说,可用性是参数,因此强一致性被交换为允许并发写入(如因果一致性)的弱一致性。不幸的是,这些协议在设计时没有考虑到部分复制,并且最终不支持它或以低效的方式这样做。在这项工作中,我们将看看为什么会发生这种情况,并提出了一个协议,旨在支持部分复制下的因果一致性更有效。
Modern internet applications require scalability to millions of clients, response times in the tens of milliseconds, and availability in the presence of partitions, hardware faults and even disasters. To obtain these requirements, applications are usually geo-replicated across several data centres (DCs) spread throughout the world, providing clients with fast access to nearby DCs and fault-tolerance in case of a DC out-age. Using multiple replicas also has disadvantages, not only does this incur extra storage, bandwidth and hardware costs, but programming these systems becomes more difficult. To address the additional hardware costs, data is often partially replicated, meaning that only certain DCs will keep a copy of certain data, for example in a key-value store it may only store values corresponding to a portion of the keys. Additionally, to address the issue of programming these systems, consistency protocols are run on top ensuring different guarantees for the data, but as shown by the CAP theorem, strong consistency, availability, and partition tolerance cannot be ensured at the same time. For many applications availability is paramout, thus strong consistency is exchanged for weaker consistencies allowing concurrent writes like causal consistency. Unfortunately these protocols are not designed with partial replication in mind and either end up not supporting it or do so in an inefficient manner. In this work we will look at why this happens and propose a protocol designed to support partial replication under causal consistency more efficiently.