Proceedings of the VLDB Endowment · 2019 · 17 citations · 54 references
ComputingComputer ScienceComputer SystemsCluster ComputingInformation RetrievalStorage SystemsCache Behavior AnalysisCachingCaching StrategiesLoad BalancingQuery ProcessingScalable Algorithm DesignCache CoherencyCache DesignCaching ArchitecturesLoad Balancer DesignLoad Balancing AlgorithmsLoad-balanced SearchReplica ManagementSearch Caching
Our deployment of cache-aware load balancing in the Google web search backend reduced cache misses by ~0.5x, contributing to a double-digit percentage increase in the throughput of our serving clusters by relieving a bottleneck. This innovation has benefited all production workloads since 2015, serving billions of queries daily. A load balancer forwards each query to one of several identical serving replicas. The replica pulls each term's postings list into RAM from flash, either locally or over the network. Flash bandwidth is a critical bottleneck, motivating an application-directed RAM cache on each replica. Sending the same term reliably to the same replica would increase the chance it hits cache, and avoid polluting the other replicas' caches. However, most queries contain multiple terms and we have to send the whole query to one replica, so it is not possible to achieve a perfect partitioning of terms to replicas. We solve this via a voting scheme, whereby the load balancer conducts a weighted vote by the terms in each query, and sends the query to the winning replica. We develop a multi-stage scalable algorithm to learn these weights. We first construct a large-scale term-query graph from logs and apply a distributed balanced graph partitioning algorithm to cluster each term to a preferred replica. This yields a good but simplistic initial voting table, which we then iteratively refine via cache simulation to capture feedback effects.
54
Ion Stoica, Robert Morris, David R. Karger et al. · 2001 · 9.7K citations
Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik et al. · 2010 · 3.5K citations
Avinash Lakshman, Prashant Malik · ACM SIGOPS Operating Systems Review · 2010 · 2.6K citations
Consistent hashing and random trees
David R. Karger, Eric Lehman, Tom Leighton et al. · 1997 · 2K citations