Ding Yuan
University of Toronto
M3: End-to-End Memory Management in Elastic Systems Software Stack
This talk will describe M3, an end-to-end system that dynamically distributes memory resources among competing applications to maximize their overall performance. Today’s data center workloads, such as data analytics or caches, have features that jointly render prior approaches ineffective. First, they are elastic. Contrary to the working set model, which predicts an all-or-nothing behavior, these applications can adapt their performance to a wide range of memory sizes. Second, they are built on complex software stacks, consisting of the OS, managed language runtime, and an analytics framework, where each layer manages memory without coordinating. M3 consists of a set of mechanisms and policies allowing the layers of the system stack to make coordinated decisions. Applications continuously adapt to current resource availability, and resources are distributed to competing applications according to their needs. Experiments show that compared to the best possible static configurations, M3 achieves up to 3.05x speed-up.