新型的分离式内存架构(disaggregated memory)将内存和计算资源从传统整机(monolithic server)中分离出来,构建独立的、高速网络互联的计算池和内存池,以提高资源利用率和服务弹性。现有工作采用单版本设计思路以简化存储结构,但是存在写阻塞读和大量undo日志占用网络资源等限制。使用多版本设计可以避免单版本的限制,但是现有多版本分布式事务系统为传统整机架构设计,并不适用于新型分离式内存架构。
实验室博士生张铭,在华宇教授的指导下,针对以上问题,为分离式内存架构设计了一种快速多版本分布式事务处理系统Motor。Motor重新设计了多版本组织结构和分布式事务协议。不同于传统链式版本结构,Motor采用了新的连续版本元组结构(consecutive version tuple, CVT),在内存池中高效地组织数据的多个版本。CVT 将版本号与数据值解耦,将多个版本号连续存储在一起,占用连续地址空间。这样,计算池就可以通过单次网络往返读取CVT,从而获取数据的所有版本信息,再在计算池本地查找目标版本,这样即可避免通过point chasing方式逐步获取远程版本数据,从而大幅降低网络开销。在CVT结构基础上,Motor 进一步提出了一种全单边RDMA的快速多版本并发控制(MVCC)分布式事务协议。大量实验结果表明,相比现有的RDMA分布式事务系统,Motor有效提升了事务吞吐并降低延迟。
图1 Motor内存池通过CVT结构存储版本信息及对应的全量数据和增量属性
图2 在各类负载下Motor与最先进系统的事务吞吐与延迟对比
该研究成果以“Motor: Enabling Multi-Versioning for Distributed Transactions on Disaggregated Memory”为题,被OSDI 2024录用。该研究工作得到了国家自然科学基金(62125202和U22B2022)的支持。