  Memory-compute disaggregation promises transparent elasticity, high
utilization and balanced usage for resources in data centers by physically
separating memory and compute into network-attached resource "blades". However,
existing designs achieve performance at the cost of resource elasticity,
restricting memory sharing to a single compute blade to avoid costly memory
coherence traffic over the network.
  In this work, we show that emerging programmable network switches can enable
an efficient shared memory abstraction for disaggregated architectures by
placing memory management logic in the network fabric. We find that
centralizing memory management in the network permits bandwidth and
latency-efficient realization of in-network cache coherence protocols, while
programmable switch ASICs support other memory management logic at line-rate.
We realize these insights into MIND, an in-network memory management unit for
rack-scale memory disaggregation. MIND enables transparent resource elasticity
while matching the performance of prior memory disaggregation proposals for
real-world workloads.
