  This paper examines disaggregated data center architectures from the
perspective of the applications that would run on these data centers, and
challenges the abstractions that have been proposed to date. In particular, we
argue that operating systems for disaggregated data centers should not abstract
disaggregated hardware resources, such as memory, compute, and storage away
from applications, but should instead give them information about, and control
over, these resources. To this end, we propose additional OS abstractions and
interfaces for disaggregation and show how they can improve data transfer in
data parallel frameworks and speed up failure recovery in replicated,
fault-tolerant applications. This paper studies the technical challenges in
providing applications with this additional functionality and advances several
preliminary proposals to overcome these challenges.
