Elasticizing Linux via Joint Disaggregation of Memory and Computation

Abstract

In this paper, we propose a set of operating system primitives which provides a scaling abstraction to cloud applications in which they can transparently be enabled to support scaled execution across multiple physical nodes as resource needs go beyond that available on a single machine. These primitives include stretch, to extend the address space of an application to a new node, push and pull, to move pages between nodes as needed for execution and optimization, and jump, to transfer execution in a very lightweight manner between nodes. This joint disaggregation of memory and computing allows for transparent elasticity, improving an application's performance by capitalizing on the underlying dynamic infrastructure without needing an application re-write. We have implemented these primitives in a Linux 2.6 kernel, collectively calling the extended operating system, ElasticOS. Our evaluation across a variety of algorithms shows up to 10x improvement in performance over standard network swap.

0

Turn this paper into a lesson

ArcXiv compiles a structured reading guide from this paper's metadata: plain-English importance, contributions, prerequisite concepts, which sections to read first, flashcards, and a quiz. Grounded in the abstract, never invented.

Discussion (0)

Sign in to join the discussion.

Loading comments…