🤖 AI Summary
Traditional sender-side causal message delivery protocols are overly conservative, thereby limiting system performance. This work proposes Cykas, a protocol that achieves efficient causal delivery at the sender by relaxing constraints on message emission timing and standardizing receiver behavior, thereby enhancing concurrency and responsiveness without increasing metadata overhead. The protocol is implemented in Rust, and its implementation-level model is formally verified for both safety and liveness properties using Stateright. Experimental results demonstrate that, in long-running task scenarios, Cykas significantly reduces overall execution time, enabling tasks to start and complete earlier compared to conventional approaches.
📝 Abstract
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.