AlNiCo: SmartNIC-accelerated Contention-aware Request Scheduling for Transaction Processing——论文泛读

本文介绍了一种名为AlNiCo的系统,它利用SmartNIC的特性来高效地调度事务请求到多核CPU,通过硬件友好的争用描述和软件反馈机制应对动态工作负载,实验结果显示能显著提升吞吐量和降低延迟。
摘要由CSDN通过智能技术生成

ATC 2022 Paper 论文阅读笔记整理

问题

随着技术的发展,事务处理有两个突出的趋势:网络带宽显著提高,使得来自网络的事务请求激增;现代服务器配备了大量CPU核心,为事务处理提供了丰富的计算能力[1-4]。从而提出了一个关键问题:如何将每个单独的事务请求调度到最合适的CPU核心?通过事务处理调度可以减少大量事务间争用,减少事务中止/阻塞,从而提高系统吞吐量。

挑战

实现高效事务调度方面存在两个挑战。

  • 很难收集到必要的信息用于考虑成本效率的调度。因为事务系统很复杂:每个请求都包含具有多个记录的写/读集,不同的记录具有不同的热度[5-7]和相关性,热度和相关性是动态的。

  • 事务调度会产生相当大的计算开销。对于传入的请求,为了计算它在哪个CPU核上执行的争用最少,调度器必须消耗与CPU核的数量和请求的写/读集大小成比例的计算周期。

新兴的SmartNIC为低开销的事务调度提供了机会。

  • 每个事务请求/响应都流经NIC,可以自然的收集有关调度的信息。

  • 事务调度需要大量的计算,而SmartNIC配备了专门的可编程硬件(例如FPGA),该硬件擅长细粒度并行。

本文方法

本文提出了AlNiCo,基于SmartNIC的请求调度的事务处理系统。核心是SmartNIC加速的争用感知调度器,将传入的事务请求调度到不同的CPU核心,以低延迟最大限度地减少事务之间的争用。AlNiCo以SmartNIC可以有效处理的方式根据系统状态描述争用,并共同设计硬件和软件以实现灵活和自适应的调度。

为了以硬件友好的方式描述事务间争用,将系统运行时状态分为三种类型:1)请求状态,即请求访问的记录集和相关的访问模式(读和写);2) 工作状态,即由工作线程在每个CPU核上执行的一组请求;3) 全局状态,即热点等工作负载特性。将上述三种类型的状态编码为紧凑向量,在SmartNIC上将争用计算转换为快速向量计算。对于传入的请求,为了计算其对不同CPU核心的争用,调度器将请求状态和每个工作进程的工作进程状态进行比较,并将全局状态作为权重。

为了实现时变应用程序的自适应调度,AlNiCo采用了从上层事务软件到SmartNIC的反馈机制。软件定期对全局状态进行采样,并通过灵活的硬件/软件接口更新NIC上的调度器。通过这种方式,AlNiCo可以处理热点随时间变化的动态工作负载。此外,通过广义反馈机制,AlNiCo可以支持各种并发控制协议。

使用配备FPGA的Innova-2 SmartNIC实现了AlNiCo,评估表明,AlNiCo将吞吐量提高了1.30×~2.68×,并将延迟降低了48.8%。

实验

实验环境:每台机器配备两个12核Xeon E5-2650 v4 2.20GHz CPU插槽、PCIe 3.0接口、128GB内存。数据库服务器配备了一个双端口25Gbps Innova-2 SmartNIC。每个客户端都配备了一个100Gbps Mellanox ConnectX-5 NIC。通过100Gbps Mellanox交换机连接。

数据集:TPC-C[6]、YCSB-T、YCSB-HOT

实验对比:吞吐量、延迟

实验参数:数据集、工作线程数、请求大小、

总结

针对事务处理中大量请求如何调度到多核CPU。本文提出了AlNiCo,基于SmartNIC的请求调度的事务处理系统。采用软硬件结合的方式:(1)以硬件友好的方式描述争用,将系统状态分为三种类型,在SmartNIC上通过向量计算调度目标CPU。(2)软件反馈,软件定期采样全局状态,并更新NIC上的调度器,从而处理热点变化负载。

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

妙BOOK言

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

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

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

打赏作者

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

抵扣说明:

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

余额充值