Userfault Objects: Transparent Programmable Memory
Konrad Siek, Colette Kerr

TL;DR
The paper introduces the UFO framework that leverages Linux's userfault mechanism to create on-demand, programmable memory objects that can generate or retrieve data dynamically, enabling larger-than-memory data structures with efficient access.
Contribution
It presents a novel framework that uses userfault to implement dynamic, on-demand memory objects, allowing for flexible data generation and efficient memory management.
Findings
Enables creation of larger-than-memory data structures.
Reduces memory overhead by loading data on demand.
Improves performance through page-wise data loading.
Abstract
The Userfault Object (UFO) framework explores avenues of cooperating with the operating system to use memory in non-traditional ways. We implement a framework that employs the Linux kernel's userfault mechanism to fill the contents of runtime objects on demand. When an object's memory is accessed the framework executes a user-defined function that generates a slice of the object. The back-end can generate data from thin air, calculate it from a formula, or retrieve it from persistent storage, the network, or other sources (with or without post-processing). UFOs follow the memory layout of standard runtime objects, so they can be introspected and written to safely. The framework manages the loading and unloading of object segments to ensure that memory is reclaimed as needed and data is never lost. This allows the UFO framework to implement larger-than-memory data structures that never…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Data Storage Technologies · Scientific Computing and Data Management · Parallel Computing and Optimization Techniques
