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

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 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.