  Remote memory techniques for datacenter applications have recently gained a
great deal of popularity. Existing remote memory techniques focus on the
efficiency of a single application setting only. However, when multiple
applications co-run on a remote-memory system, significant interference could
occur, resulting in unexpected slowdowns even if the same amounts of physical
resources are granted to each application. This slowdown stems from massive
sharing in applications' swap data paths. Canvas is a redesigned swap system
that fully isolates swap paths for remote-memory applications. Canvas allows
each application to possess its dedicated swap partition, swap cache,
prefetcher, and RDMA bandwidth. Swap isolation lays a foundation for adaptive
optimization techniques based on each application's own access patterns and
needs. We develop three such techniques: (1) adaptive swap entry allocation,
(2) semantics-aware prefetching, and (3) two-dimensional RDMA scheduling. A
thorough evaluation with a set of widely-deployed applications demonstrates
that Canvas minimizes performance variation and dramatically reduces
performance degradation.

Operating Systems;Distributed, Parallel, and Cluster Computing;Networking and Internet Architecture