Rein: Taming tail latency in key-value stores via multiget scheduling

W Reda, M Canini, L Suresh, D Kostić… - Proceedings of the …, 2017 - dl.acm.org
W Reda, M Canini, L Suresh, D Kostić, S Braithwaite
Proceedings of the Twelfth European Conference on Computer Systems, 2017dl.acm.org
We tackle the problem of reducing tail latencies in distributed key-value stores, such as the
popular Cassandra database. We focus on workloads of multiget requests, which batch
together access to several data elements and parallelize read operations across the data
store machines. We first analyze a production trace of a real system and quantify the skew
due to multiget sizes, key popularity, and other factors. We then proceed to identify
opportunities for reduction of tail latencies by recognizing the composition of aggregate …
We tackle the problem of reducing tail latencies in distributed key-value stores, such as the popular Cassandra database. We focus on workloads of multiget requests, which batch together access to several data elements and parallelize read operations across the data store machines. We first analyze a production trace of a real system and quantify the skew due to multiget sizes, key popularity, and other factors. We then proceed to identify opportunities for reduction of tail latencies by recognizing the composition of aggregate requests and by carefully scheduling bottleneck operations that can otherwise create excessive queues. We design and implement a system called Rein, which reduces latency via inter-multiget scheduling using low overhead techniques. We extensively evaluate Rein via experiments in Amazon Web Services (AWS) and simulations. Our scheduling algorithms reduce the median, 95th, and 99th percentile latencies by factors of 1.5, 1.5, and 1.9, respectively.
ACM Digital Library