Userfault Objects: Transparent Programmable Memory

06/24/2021
by   Konrad Siek, et al.
0

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 materialize into memory in full. Implementing objects as UFOs also impacts performance, since overhead of populating memory is amortized by loading entire pages of data at a time. The host runtime can also rely on direct memory accesses into userfault object obviating the need for a special dispatch mechanism. We provide a proof-of-concept implementation of the UFO framework for the R language.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/16/2018

Tiered Object Storage using Persistent Memory

Most data intensive applications often access only a few fields of the o...
research
05/13/2022

UniHeap: Managing Persistent Objects Across Managed Runtimes for Non-Volatile Memory

Byte-addressable, non-volatile memory (NVM) is emerging as a promising t...
research
05/22/2020

CAPre: Code-Analysis based Prefetching for Persistent Object Stores

Data prefetching aims to improve access times to data storage systems by...
research
04/12/2021

A High-Performance Persistent Memory Key-Value Store with Near-Memory Compute

MCAS (Memory Centric Active Storage) is a persistent memory tier for hig...
research
04/22/2019

Pangolin: A Fault-Tolerant Persistent Memory Programming Library

Non-volatile main memory (NVMM) allows programmers to build complex, per...
research
04/13/2018

An Extended Low Fat Allocator API and Applications

The primary function of memory allocators is to allocate and deallocate ...
research
04/29/2020

Towards Faster Reasoners By Using Transparent Huge Pages

Various state-of-the-art automated reasoning (AR) tools are widely used ...

Please sign up or login with your details

Forgot password? Click here to reset