TY - GEN
T1 - Anticipation of Method Execution in Mixed Consistency Systems
AU - Giunti, Marco
AU - Paulino, Hervé
AU - Ravara, António
N1 - Funding Information:
info:eu-repo/grantAgreement/FCT/6817 - DCRRNI ID/UIDB%2F04516%2F2020/PT#
∗Work partially supported by the Portuguese Fundacão para a Ciência e Tecnologia via project DeDuCe (PTDC/ CCI-COM/32166/2017) We thank Rúben Vaz for his work on the Java prototype implementation (forthcoming MSc thesis) that we used to apply Ant to common use-cases (§ 5).
Publisher Copyright:
© 2023 Owner/Author(s).
PY - 2023/3/27
Y1 - 2023/3/27
N2 - Distributed applications often deal with data with different consistency requirements: while a post in a social network only requires weak consistency, the user balance in turn has strong correctness requirements, demanding mutations to be synchronised. To deal efficiently with sequences of operations on different replicas of the distributed application, it is useful to know which operations commute with others and thus, when can an operation not requiring synchronisation be anticipated wrt other requiring it, thus avoiding unnecessary waits.Herein we present a language-based static analysis to extract information at compile-time on which operations can commute with which other operations and thus get information that can be used by the run-time support to decide on call anticipations of operations in replicas without compromising consistency. We illustrate the formal analysis on several paradigmatic examples and briefly present a proof-of-concept implementation in Java.
AB - Distributed applications often deal with data with different consistency requirements: while a post in a social network only requires weak consistency, the user balance in turn has strong correctness requirements, demanding mutations to be synchronised. To deal efficiently with sequences of operations on different replicas of the distributed application, it is useful to know which operations commute with others and thus, when can an operation not requiring synchronisation be anticipated wrt other requiring it, thus avoiding unnecessary waits.Herein we present a language-based static analysis to extract information at compile-time on which operations can commute with which other operations and thus get information that can be used by the run-time support to decide on call anticipations of operations in replicas without compromising consistency. We illustrate the formal analysis on several paradigmatic examples and briefly present a proof-of-concept implementation in Java.
KW - language-based static analysis
KW - method commutation
KW - object-calculus
KW - replicated data consistency in distributed systems
UR - https://www.scopus.com/pages/publications/85162858402
U2 - 10.1145/3555776.3577725
DO - 10.1145/3555776.3577725
M3 - Conference contribution
AN - SCOPUS:85162858402
T3 - Proceedings of the ACM Symposium on Applied Computing
SP - 1394
EP - 1401
BT - SAC '23
PB - ACM - Association for Computing Machinery
CY - New York
T2 - 38th Annual ACM Symposium on Applied Computing, SAC 2023
Y2 - 27 March 2023 through 31 March 2023
ER -