Distributed Data Synchronization and Conflict Resolution

Published

For the past few years I’ve been mulling over a seemingly simple problem: what’s the fastest way to obtain ownership of an arbitrary record in a distributed system? Consider, for example, a global network of multi-party video conferencing solutions. Users are assigned “meeting rooms” that are really just identifiers (e.g., 9813492 or dagan@example.com). When a user starts a meeting, that meeting room needs to be assigned to a specific conferencing server to receive and mix media streams for each user. It needs to happen fast, and it needs to happen only once per instance of the meeting. With conferencing servers distributed globally for high-availability and reduced latency, how can a distributed system ensure exactly once instance of the meeting room exists at any given time without incurring the performance impact of a single source of truth?

After a lot of noodling, I designed a system I nicknamed MULE—a tortured backronym of Multi-Homed Unified Logic Environment—that allows for the distributed management of a shared data set and automatic conflict-resolution without voting or leadership. And now I’m extremely proud to announce that I’ve been granted US Patent 9,208,167 for that system.