Transparent Memory Service

The Transparent Memory Service (TMS) intercepts Linux glibc.so function calls and reroutes them to the MemVerge Memory Allocation Service (MVMAS), which manages the MemVerge PMem store.

Most C and C++ applications on Linux are dynamically linked to the GNU C core library glibc.so which provides memory allocation functions such as mmap() and malloc(). Linux offers the ability to intercept and reroute calls to these functions by naming a preloaded library with identical function names. The file path of this preloaded library is specified in the LD_PRELOAD environment variable. The preloaded library (if it has been specified) shadows the glibc.so library and intercepts its function calls.

MemVerge provides a shared library, Transparent Memory Service, that replicates glibc.so’s core memory management functions.

Calls to mmap(), malloc(), and other functions are routed via the TMS to the MVMAS, a service that maps byte-addressable memory to the MemVerge PMem store. See MVMalloc Library Call Intercept Flow.

Figure 1. MVMalloc Library Call Intercept Flow
MVMalloc Library Call Intercept Flow