PSYNC: A Partially Synchronous Language for Fault-Tolerant Distributed Algorithms
PSYNC: A Partially Synchronous Language for Fault-Tolerant Distributed Algorithms
复制标题
DOI:
10.1145/2914770.2837650
复制
发表时间:
2016-01-01
影响因子:
--
通讯作者:
Zufferey, Damien
中科院分区:
文献类型:
--
作者:
Dragoi, Cezara;Henzinger, Thomas A.;Zufferey, Damien
Fault-tolerant distributed algorithms play an important role in many critical/high-availability applications. These algorithms are notoriously difficult to implement correctly, due to asynchronous communication and the occurrence of faults, such as the network dropping messages or computers crashing.We introduce PSYNC, a domain specific language based on the Heard-Of model, which views asynchronous faulty systems as synchronous ones with an adversarial environment that simulates asynchrony and faults by dropping messages. We define a runtime system for PSYNC that efficiently executes on asynchronous networks. We formalize the relation between the runtime system and PSYNC in terms of observational refinement. The high-level lockstep abstraction introduced by PSYNC simplifies the design and implementation of fault-tolerant distributed algorithms and enables automated formal verification.We have implemented an embedding of PSYNC in the SCALA programming language with a runtime system for asynchronous networks. We show the applicability of PSYNC by implementing several important fault-tolerant distributed algorithms and we compare the implementation of consensus algorithms in PSYNC against implementations in other languages in terms of code size, runtime efficiency, and verification.