Protocols for causal message delivery are widely used in distributed systems. Traditionally, causal delivery can be enforced either on the message sender's side or on the receiver's side. The traditional sender-side approach avoids the message metadata overhead of the receiver-side approach, but is more conservative than necessary. We present Cykas ("Can you keep a secret?"), a new protocol for sender-side enforcement of causal delivery that sidesteps the conservativeness of the traditional sender-side approach by allowing eager sending of messages and constraining the behavior of their recipients. We implemented the Cykas protocol in Rust and checked the safety and liveness of our implementation using the Stateright implementation-level model checker. Our experiments show that for applications involving long-running jobs, Cykas has a performance advantage: Cykas lets long-running jobs start (and end) earlier, leading to shorter overall execution time compared to the traditional sender-side approach.
翻译:因果消息传递协议在分布式系统中被广泛使用。传统上,因果传递既可以在消息发送端强制实施,也可以在接收端强制实施。传统的发送端方法避免了接收端方法带来的消息元数据开销,但比必要的更为保守。我们提出了Cykas(“你能保守秘密吗?”),这是一种用于发送端强制因果传递的新协议,它通过允许消息的急切发送并约束接收者的行为,规避了传统发送端方法的保守性。我们在Rust中实现了Cykas协议,并使用Stateright实现级模型检查器验证了其实现的安全性和活性。实验表明,对于涉及长时间运行作业的应用,Cykas具有性能优势:与传统发送端方法相比,Cykas允许长时间运行的作业更早开始(和结束),从而缩短了整体执行时间。