ConflictSync: Bandwidth Efficient Synchronization of Divergent State
Pedro Silva Gomes, Miguel Boaventura Rodrigues, Carlos Baquero
TL;DR
ConflictSync tackles the bandwidth cost of synchronizing divergent state-based CRDTs by reframing synchronization as set reconciliation over irredundant join decompositions. It introduces a digest-driven protocol that combines Bloom filters and Rateless Invertible Bloom Lookup Tables to handle variable-sized elements, enabling flexible trade-offs across similarity levels. The approach yields up to 18x data-transfer reductions over traditional state-based synchronization, with Bloom prefiltering giving substantial overhead reductions at low similarity and Rateless methods excelling at high similarity. By design, ConflictSync generalizes beyond CRDTs to any system where states decompose into constituent components, offering practical, scalable synchronization for a broad class of distributed data models.
Abstract
State-based Conflict-free Replicated Data Types (CRDTs) are widely used in distributed systems to ensure high availability without coordination. However, their naive synchronization strategy - transmitting the full state - incurs high communication costs. Existing optimizations like delta-CRDTs reduce this overhead but rely on external metadata that must be garbage collected to prevent unbounded growth, at the cost of full state transmissions after network partitions. This paper presents ConflictSync, the first digest-driven synchronization algorithm for state-based CRDTs. We reduce synchronization to the set reconciliation of irredundant join decompositions and build on existing work in rateless set reconciliation. To support CRDTs, we generalize set reconciliation to variable-sized elements, and further introduce a novel combination of Bloom filters with Rateless Invertible Bloom Lookup Tables to address inefficiencies at low similarity levels. Our evaluation shows that ConflictSync reduces total data transfer by up to 18 times compared to traditional state-based synchronization. Bloom filter prefiltering reduces overhead by up to 50% compared to pure rateless reconciliation at 0% similarity, while pure rateless reconciliation performs better above 93% similarity. We characterize the trade-off between similarity level and Bloom filter size, identifying optimal configurations for different synchronization scenarios. Although developed for CRDTs, ConflictSync applies to any synchronization problem where states can be decomposed into sets of constituent components, analogous to join decompositions, making it suitable for a wide range of distributed data models.
