Project Farm

FaRM

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.

People

Portrait of Dushyanth Narayanan

Dushyanth Narayanan

Senior Principal Researcher

Portrait of Junyi Liu

Junyi Liu

Senior Researcher

Portrait of Matthew Renzelmann

Matthew Renzelmann

Principal Software Engineer

Portrait of Shuheng Zheng

Shuheng Zheng

Software Engineer 2

Portrait of Wonhee Cho

Wonhee Cho

Senior Software Engineer