Revisiting Consistent Hashing with Bounded Loads

Dynamic load balancing lies at the heart of distributed caching. Here, the goal is to assign objects (load) to servers (computing nodes) in a way that provides load balancing while at the same time dynamically adjusts to the addition or removal of servers. One essential requirement is that the addition or removal of small servers should not require us to recompute the complete assignment. A popular and widely adopted solution is the two-decade-old Consistent Hashing (CH). Recently, an elegant extension was provided to account for server bounds. In this paper, we identify that existing methodologies for CH and its variants suffer from cascaded overflow, leading to poor load balancing. This cascading effect leads to decreasing performance of the hashing procedure with increasing load. To overcome the cascading effect, we propose a simple solution to CH based on recent advances in fast minwise hashing. We show, both theoretically and empirically, that our proposed solution is significantly superior for load balancing and is optimal in many senses. On the AOL search dataset and Indiana University Clicks dataset with real user activity, our proposed solution reduces cache misses by several magnitudes.

[1]  David R. Karger,et al.  Consistent hashing and random trees: distributed caching protocols for relieving hot spots on the World Wide Web , 1997, STOC '97.

[2]  D. Woolley,et al.  The white paper , 1943, Public Health.

[3]  Patrick Valduriez,et al.  Principles of Distributed Database Systems, Third Edition , 2011 .

[4]  Mark Handley,et al.  A scalable content-addressable network , 2001, SIGCOMM '01.

[5]  David R. Karger,et al.  Chord: a scalable peer-to-peer lookup protocol for internet applications , 2003, TNET.

[6]  Miguel Castro,et al.  Scribe: a large-scale and decentralized application-level multicast infrastructure , 2002, IEEE J. Sel. Areas Commun..

[7]  Fabio A. González,et al.  Distributed Cache Strategies for Machine Learning Classification Tasks over Cluster Computing Resources , 2014, CARLA.

[8]  Werner Vogels,et al.  Dynamo: amazon's highly available key-value store , 2007, SOSP.

[9]  Yiannis Gkoufas,et al.  Hoard: A Distributed Data Caching System to Accelerate Deep Learning Training on the Cloud , 2018, ArXiv.

[10]  Pengtao Xie,et al.  Strategies and Principles of Distributed Machine Learning on Big Data , 2015, ArXiv.

[11]  Mohsen Sharifi,et al.  Load Balancing Using Consistent Hashing: A Real Challenge for Large Scale Distributed Web Crawlers , 2009, 2009 International Conference on Advanced Information Networking and Applications Workshops.

[12]  David R. Karger,et al.  Web Caching with Consistent Hashing , 1999, Comput. Networks.

[13]  Santo Fortunato,et al.  Ranking web sites with real user traffic , 2008, WSDM '08.

[14]  Brenton Lessley,et al.  Data-Parallel Hashing Techniques for GPU Architectures , 2018, IEEE Transactions on Parallel and Distributed Systems.

[15]  Rasmus Pagh,et al.  Cuckoo Hashing , 2001, Encyclopedia of Algorithms.

[16]  Anna Pagh,et al.  Linear probing with constant independence , 2006, STOC '07.

[17]  Ruben Mayer,et al.  Scalable Deep Learning on Distributed Infrastructures: Challenges, Techniques and Tools , 2019 .

[18]  Antony I. T. Rowstron,et al.  Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems , 2001, Middleware.

[19]  Josiah L. Carlson,et al.  Redis in Action , 2013 .

[20]  Tony Tung,et al.  Scaling Memcache at Facebook , 2013, NSDI.

[21]  Robert Morris,et al.  Chord: A scalable peer-to-peer lookup service for internet applications , 2001, SIGCOMM 2001.

[22]  Tejas Karkhanis,et al.  A Day in the Life of a Data Cache Miss , 2002 .

[23]  Dmitri Loguinov,et al.  Load-Balancing Performance of Consistent Hashing: Asymptotic Analysis of Random Node Join , 2007, IEEE/ACM Transactions on Networking.

[24]  Anshumali Shrivastava,et al.  Optimal Densification for Fast and Accurate Minwise Hashing , 2017, ICML.

[25]  Benjamin Reed,et al.  Semantics of Caching with SPOCA: A Stateless, Proportional, Optimally-Consistent Addressing Algorithm , 2011, USENIX Annual Technical Conference.

[26]  Paul G. Spirakis,et al.  Space Efficient Hash Tables with Worst Case Constant Access Time , 2003, Theory of Computing Systems.

[27]  Prashant Malik,et al.  Cassandra: a decentralized structured storage system , 2010, OPSR.

[28]  Patrick Valduriez,et al.  Principles of Distributed Database Systems , 1990 .

[29]  Morteza Zadimoghaddam,et al.  Consistent Hashing with Bounded Loads , 2016, SODA.