note: RUMA has it: Rewired User-space Memory Access is Possible!

Paper Link

They use mmap(2) with MAP_FIXED parameter, to map the file backed on ramdisk to user namespace. They use this approach to maintain the map between virtual memory address and physical pages. Based on this approach, it enables growing or shrinking the vector size, partition the data (for hash-join or something) without histogram pass, and userspace COW (snapshotting). Or for any application which needs shuffle the memory page can gain the improvement though this approach.

The experiments show it is at least as good as chucks directory (a[i] is represented as dir[i/chunkSize][i%chunkSize]).

They threat allocation of memory through mmap with Anonymous and Private parameters as the baseline. I’m not sure what’s huge page for mmap Anonymous Private memory. And the most performance penalty for Anonymous Private memory is populating the pages, because the OS copy/clean the page by default. The Rewiring Memory is already materialized and don’t have to populate the pages in general. I think it is not fair. They argue this is a feature or benefit of Rewiring Memory.

They also suffer mmmap(2) syscall performance problem when they need to call it many times. Increasing the page size is a workaround, and they argue it’s enough.