TY - GEN
T1 - MixT
T2 - 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2018
AU - Milano, Matthew
AU - Myers, Andrew C.
N1 - Publisher Copyright:
© 2018 Copyright held by the owner/author(s).
PY - 2018/6/11
Y1 - 2018/6/11
N2 - 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.
AB - 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.
KW - Consistency
KW - Information flow
KW - Transactions
UR - http://www.scopus.com/inward/record.url?scp=85049563790&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85049563790&partnerID=8YFLogxK
U2 - 10.1145/3192366.3192375
DO - 10.1145/3192366.3192375
M3 - Conference contribution
AN - SCOPUS:85049563790
T3 - Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
SP - 226
EP - 241
BT - PLDI 2018 - Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation
A2 - Foster, Jeffrey S.
A2 - Grossman, Dan
A2 - Foster, Jeffrey S.
PB - Association for Computing Machinery
Y2 - 18 June 2018 through 22 June 2018
ER -