KV存储
ROLEX: A Scalable RDMA-oriented Learned Key-Value Store for Disaggregated Memory Systems
针对分离式内存系统中,KV存储性能不高的问题,由于内存节点资源有限,现有方法难以直接修改B树或学习索引的模型。作者提出提出了ROLEX,一种可扩展的面向RDMA的有序键值存储,使用分解存储系统的学习索引。包括几个优化点:插入和再训练操作解耦,使计算节点能够直接通过单边RDMA动词修改远程数据,而无需再训练模型,提高可扩展性;其他计算节点通过具有一致性保证的旧模型来识别新修改的数据;异步使用专用计算资源重新训练模型,以提高模型的准确性。
ADOC: Automatically Harmonizing Dataflow Between Components in Log-Structured Key-Value Stores for Improved Performance
对LSM-KV中写停顿现象进行分析,发现之前的分析原因是有效的,但并不普遍适用。通过实验分析写停顿的原因是数据溢出,指由于数据流入其中一个组件而导致LSM-KV系统中一个或多个组件迅速扩展。提出了ADOC(自动数据溢出控制)的调整框架,在组件之间平衡和协调数据流,以调整系统配置:线程数和批处理大小,而不是简单地等待溢出的数据按默认方式消耗。从而缓解写停顿的问题。
分离式内存
Scaling Up Memory Disaggregated Applications with Smart
对RNIC内部架构进行深入分析,发现内存分解应用吞吐量受到三个主要的瓶颈的限制:(1) 门铃寄存器的隐式争用;(2) 由于过多未完成的工作请求引起的缓存崩溃; (3) 由于CAS重试失败导致的IOPS浪费。针对3个问题作者分别提出解决方案:通过通用的线程感知RDMA资源(例如门铃寄存器)分配机制,来解决门铃寄存器的隐式争用;提出了一种基于信用的节流策略,其中深度阈值是根据当前工作负载自动确定的,解决由于过多未完成的工作请求引起的缓存崩溃;提出了一种自适应退避技术,抑制不成功的CAS(compare-and-swap)操作的并发性,解决CAS重试失败导致的IOPS浪费。