FaSST:基于双边(RDMA)数据报RPC的快速、可扩展且简单的分布式事务
1. 引言
可序列化的分布式事务为设计分布式系统(如对象存储和在线事务处理(OLTP)系统)提供了强大的编程抽象。近期的系统借助高速网络、轻量级网络栈以及远程直接内存访问(RDMA)实现了快速的事务处理,且普遍大量使用单边RDMA操作以绕过远程CPU,节省远程CPU周期。
然而,单边RDMA可能并非设计事务处理系统的最佳选择。一方面,单边RDMA的范式与高效事务性访问远程数据存储所需的能力存在差距,它仅提供远程读、写和原子操作,而访问数据存储通常涉及遍历哈希表和B树等数据结构,这往往需要多次RDMA读取,导致吞吐量降低、延迟增加,削弱了绕过远程CPU带来的CPU节省效果。另一方面,当前单边RDMA实现的面向连接性质通常要求CPU核心共享本地NIC队列对,这会降低本地单核心的RDMA吞吐量,减少远程CPU旁路的净收益。
本文提出使用基于双边不可靠数据报消息的远程过程调用(RPC)作为更好的事务处理原语。RPC涉及远程CPU进行消息处理,比单边RDMA更灵活,可在单次往返中完成数据访问。但此前基于RDMA的RPC实现要么性能不佳,要么适用场景有限。本文的关键贡献是FaSST RPC,这是一个全对全的RPC系统,具有快速、可扩展和CPU高效的特点。
2. 背景
2.1 快速分布式事务
FaSST旨在为单个数据中心内的分布式事务提供支持,系统的单个实例可扩展到数百个节点。每个节点负责基于主键划分的数据分区,节点采用对称模型,既作为客户端又作为服务器。对于数据局部性良好的工作负载,对称模型可通过将事务与所访问的数据共置来提高性能。
<
超级会员免费看
订阅专栏 解锁全文
1679

被折叠的 条评论
为什么被折叠?



