Crux: Locality-Preserving Distributed Systems.
Michael F. Nowlan, Jose M. Faleiro, Bryan Ford · 2014
Distributed systems achieve scalability by balancing load across many machines, but wide-area distribution can introduce worst-case response latencies proportional to the network's delay diameter. Crux is a general framework to build locality-preserving distributed systems, by transforming some existing scalable distributed algorithm A into a new algorithm A' that guarantees for any two clients u and v interacting via service requests to A', these interactions exhibit worst-case response latencies proportional to the network delay between u and v. Locality-preserving PlanetLab deployments of a memcached distributed cache, a bamboo distributed hash table, and a redis publish/subscribe service indicate that Crux is effective and applicable to a variety of existing distributed algorithms. Crux achieves several orders of magnitude latency improvement for localized interactions at the cost of increasing per-node overheads, as each physical node must participate in multiple instances of algorithm A.