Can you keep a secret? A new protocol for sender-side enforcement of causal message delivery
This work addresses performance inefficiencies in distributed systems for applications with long-running jobs, though it is incremental as it builds on existing sender-side protocols.
The paper tackles the conservativeness of traditional sender-side protocols for causal message delivery in distributed systems by introducing Cykas, a new protocol that allows eager sending and constrains recipient behavior, resulting in shorter overall execution times for long-running jobs compared to the traditional approach.
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.