Aguilera, Marcos K and Amit, Nadav and Calciu, Irina and Deguillard, Xavier and Gandhi, Jayneel and Novakovic, Stanko and Ramanathan, Arun and Subrahmanyam, Pratap and Suresh, Lalith and Tati, Kiran and others
USENIX Annual Technical Conference (ATC), 2018
We propose an intuitive abstraction for a process to export its memory to remote hosts, and to access the memory exported by others. This abstraction provides a simpler interface to RDMA and other remote memory technologies compared to the existing verbs interface. The key idea is that a process can export parts of its memory as files, called remote regions, that can be accessed through the usual file system operations (read, write, memory map, etc). We built this abstraction and evaluated it. We show that remote regions are easy to use and perform close to RDMA. We demonstrate it via micro-benchmarks and by modifying two in-memory single-host applications to use remote memory: R and Metis. These modifications amount to ≈100 lines of code; they allow R to exceed the physical memory of a host while running fat; and they allow Metis scale its performance across 8 hosts.