MixT: a language for mixing consistency in geodistributed transactions

MixT: a language for mixing consistency in geodistributed transactions
复制标题

DOI:
10.1145/3192366.3192375
复制
发表时间:
2018-06
期刊:
Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子:
--
通讯作者:
Mae Milano;A. Myers
Mae Milano;A. Myers
中科院分区:
其他
文献类型:
--
作者:
Mae Milano;A. Myers

文献摘要

相似文献

对并发、分布式系统进行编程非常困难,尤其是当这些系统改变在地理范围内复制的共享、持久状态时。为了实现高可用性和可扩展性,一类新的弱一致性数据存储已变得流行。但有些数据需要强一致性。为了在单个事务中同时操作弱一致性和强一致性数据,我们引入了一种新的抽象:混合一致性事务,它体现在一种新的嵌入式语言 MixT 中。程序员明确地将一致性模型与远程存储站点关联起来;每个原子的、隔离的事务都可以访问具有不同一致性模型的数据的混合。应用于一致性模型的编译时信息流检查可确保这些模型安全地混合,并使编译器能够自动分区事务。新的运行时机制确保一致性模型也可以安全地混合,即使事务使用的数据驻留在单独的、相互不知道的存储上。性能测量表明,尽管混合一致性事务具有更强的保证,但它仍保留了弱一致性事务的大部分速度,显着优于传统的可序列化事务。
Programming concurrent, distributed systems is hard—especially when these systems mutate shared, persistent state replicated at geographic scale. To enable high availability and scalability, a new class of weakly consistent data stores has become popular. However, some data needs strong consistency. To manipulate both weakly and strongly consistent data in a single transaction, we introduce a new abstraction: mixed-consistency transactions, embodied in a new embedded language, MixT. Programmers explicitly associate consistency models with remote storage sites; each atomic, isolated transaction can access a mixture of data with different consistency models. Compile-time information-flow checking, applied to consistency models, ensures that these models are mixed safely and enables the compiler to automatically partition transactions. New run-time mechanisms ensure that consistency models can also be mixed safely, even when the data used by a transaction resides on separate, mutually unaware stores. Performance measurements show that despite their stronger guarantees, mixed-consistency transactions retain much of the speed of weak consistency, significantly outperforming traditional serializable transactions.