FaSST: Fast, Scalable and Simple Distributed Transactions with Two Sided (RDMA) Datagram RPCs
FaSST is an RDMA based system that provides distributed in memory transactions with serializability and durability. Existing RDMA based transaction processing systems use one sided RDMA primitives for their ability to bypass the remote CPU. This design choice brings several drawbacks. First, the limited flexibility of one sided RDMA reduces performance and increases software complexity when designing distributed data stores. Second, deep rooted technical limitations of RDMA hardware limit scalability in large clusters. FaSST eschews one sided RDMA for fast RPCs using two sided unreliable datagrams, which we show drop packets extremely rarely on modern RDMA networks. This approach provides better performance, scalability, and simplicity, without requiring expensive reliability mechanisms in software. In comparison with published numbers, FaSST outperforms FaRM on the TATP benchmark by almost 2x while using close to half the hardware resources, and it outperforms DrTM+R on the SmallBank benchmark by around 1.7x without making data locality assumptions.
OSDI