AStore: Uniformed Adaptive Learned Index and Cache for RDMA-Enabled Key-Value Store——论文泛读

TKDE 2024 Paper 论文阅读笔记整理

问题

分布式键值存储是云服务的重要组成部分,随着对高性能需求的增加,新架构将计算和存储节点分开,并使用支持RDMA的网络将它们连接起来。上部分是客户端,下部分是服务端。

在服务端驱动的方法中,由存储节点识别数据位置,并返回客户端的请求结果。但当许多客户端访问一个存储服务器上的数据时,需要服务器端CPU执行计算和搜索数据位置,导致CPU争用程度很高。

为了缓解存储服务器上的CPU争用,提出各种缓存索引方案[20、20、26、27、28],将部分数据或索引搜索过程从存储服务器卸载到计算客户端,并使用RDMA直接访问服务器上的数据。然而,对于传统索引,例如B+树[29],索引大小很大,无法在计算客户端上完全缓存。如果使用部分B+树索引缓存(例如,前几层),导致在客户端和服务器之间经历多次RDMA往返,这会导致网络开销。

学习索引的内存占用比基于树的结构少几个数量级[30、31、32、33]。最近的工作XStore[17]提出混合架构,在存储服务器中维护传统的B+树索引来处理动态工作负载(例如插入),在客户端使用学习索引来执行静态工作负载(例如获取)。

挑战

对于计算密集型操作[12],服务端CPU由于计算压力经常成为性能瓶颈。

  • 传统方法的索引在服务端构建,并将部分索引作为缓存存储在客户端,导致客户端缓存中存储的索引结构和服务器的索引结构之间不一致,仍需要服务端CPU参与数据访问。

  • 最近的方法[17]使用空间小的学习索引作为客户端缓存索引来执行静态操作,使用服务端索引处理动态操作[16、18],但仍存在精度差距,并导致服务端CPU成为性能的瓶颈[13、19]。

本文方法

本文提出了AStore,采用客户端-服务器框架[17],利用RDMA、本地缓存索引、可更新的自适应学习索引模型来减少服务器CPU争用。

  • 采用低内存占用的自适应学习索引模型(客户端称为CIndex,服务器称为SIndex),处理静态和动态工作负载。

  • 为叶子节点中的模型提出了一种细粒度的版本控制策略,以降低客户端和存储端之间的同步频率。

  • 设计了缓存策略,显著降低模型再训练的频率。

  • 设计了自适应策略,根据预测误差范围减少RDMA通信延迟并提高吞吐量。

  • 提出了基于客户端的插入处理,数据的插入位置由CIndex决定。

  • 提出了叶子节点锁机制来支持并发控制。

基于YCSB、LGN和OSM数据集的实验表明,AStore在只读工作负载上的性能比XStore提高了75.2%、107.3%和57.7%,在读写工作负载上性能比XSstore提高了65.7%、108.7%和74.3%。

总结

针对客户端和服务端分离的分布式键值存储系统,传统方法利用传统索引结构或缓存,但受限于服务端CPU争用。本文提出AStore,采用客户端-服务端框架,利用RDMA、本地缓存索引、自适应学习索引模型。包括以下技术:(1)在客户端和服务端分别采用自适应学习索引模型,用于处理静态(读取)和动态工作负载(插入、更新、删除)。(2)对叶子节点的模型使用细粒度的版本控制,降低客户端和服务端的同步频率。(3)利用缓存显著降低模型再训练的频率。(4)利用自适应策略,根据预测误差范围减少RDMA通信延迟(RDMA读或RDMA请求)。(5)基于客户端的插入处理,数据的插入位置由客户端决定。(6)叶子节点锁机制,支持并发控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值