FaRM is a new main memory distributed computing platform that exploits RDMA communication to improve both latency and throughput by an order of magnitude relative to state of the art main memory systems that use TCP/IP. FaRM exposes the memory of machines in the cluster as a shared address space. Applications execute distributed transactions that allocate, read, write, and free objects in the address space.
Using transactions with strong consistency and high availability simplifies building and reasoning about distributed systems. FaRM transaction, replication, and recovery protocols are designed from first principles to leverage commodity networks with RDMA and a new, inexpensive approach to providing non-volatile DRAM to provide much better performance than thought possible with distributed transactions before. FaRM uses RDMA both to directly access data in the shared address space and for fast messaging and is carefully tuned for the best RDMA performance. FaRM also enables locality-aware optimizations by supporting collocating objects and function shipping.
FaRM achieves a peak throughput of 140 million TATP transactions per second on 90 machines with a 4.9 TB database, and it recovers from a failure in less than 50 ms. Key to achieving these results was the design of new transaction, replication, and recovery protocols from first principles to leverage commodity networks with RDMA and a new, inexpensive approach to providing non-volatile DRAM.