  Compute and memory are tightly coupled within each server in traditional
datacenters. Large-scale datacenter operators have identified this coupling as
a root cause behind fleet-wide resource underutilization and increasing Total
Cost of Ownership (TCO). With the advent of ultra-fast networks and
cache-coherent interfaces, memory disaggregation has emerged as a potential
solution, whereby applications can leverage available memory even outside
server boundaries.
  This paper summarizes the growing research landscape of memory disaggregation
from a software perspective and introduces the challenges toward making it
practical under current and future hardware trends. We also reflect on our
seven-year journey in the SymbioticLab to build a comprehensive disaggregated
memory system over ultra-fast networks. We conclude with some open challenges
toward building next-generation memory disaggregation systems leveraging
emerging cache-coherent interconnects.
