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

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
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

妙BOOK言

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

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

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

打赏作者

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

抵扣说明:

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

余额充值