面向内存键值存储尾延迟优化的尺寸感知分片
数据库
2018-02-05 v1 操作系统
摘要
本文引入尺寸感知分片的概念以改善内存键值存储的尾延迟,并描述了其在 Minos 键值存储中的实现。在具有高扇出比的分布式应用中,尾延迟至关重要,因为总体响应时间由最慢的响应决定。尺寸感知分片根据键所关联项的大小,将键的请求分发到不同的核。具体而言,小项和大项的请求被发送到互不相交的核子集。尺寸感知分片通过避免队头阻塞来改善尾延迟,即小项的请求不会被排在大项请求之后。替代的尺寸无关分片方法,如基于键哈希的分片、请求分发与窃取,无法避免队头阻塞,因此表现出更差的尾延迟。实现尺寸感知分片的挑战在于,通过避免软件分发的开销并在不同核间实现负载均衡来维持高吞吐。Minos 对所有小项请求使用硬件分发,而小项请求占所有请求的绝大多数。它通过将处理小项和大项请求的核数量适配于二者在工作负载中的相对占比来实现负载均衡。我们将 Minos 与三种最先进的内存 KV 存储设计进行比较。与其最接近的竞争者相比,Minos 的第 99 百分位延迟降低了至多两个数量级。换言之,在给定第 99 百分位延迟等于平均服务时间 10 倍的情况下,Minos 实现的吞吐至多高出 7.4 倍。
引用
@article{arxiv.1802.00696,
title = {Size-aware Sharding For Improving Tail Latencies in In-memory Key-value Stores},
author = {Diego Didona and Willy Zwaenepoel},
journal= {arXiv preprint arXiv:1802.00696},
year = {2018}
}