Leis, ViktorViktorLeisAlhomssi, AdnanAdnanAlhomssiZiegler, TobiasTobiasZieglerLoeck, YannickYannickLoeckDietrich, ChristianChristianDietrich2023-05-312023-05-312023ACM on Management of Data (2023)http://hdl.handle.net/11420/15359Most database management systems cache pages from storage in a main memory buffer pool. To do this, they either rely on a hash table that translates page identifiers into pointers, or on pointer swizzling which avoids this translation. In this work, we propose vmcache, a buffer manager design that instead uses hardware-supported virtual memory to translate page identifiers to virtual memory addresses. In contrast to existing mmap-based approaches, the DBMS retains control over page faulting and eviction. Our design is portable across modern operating systems, supports arbitrary graph data, enables variable-sized pages, and is easy to implement. One downside of relying on virtual memory is that with fast storage devices the existing operating system primitives for manipulating the page table can become a performance bottleneck. As a second contribution, we therefore propose exmap, which implements scalable page table manipulation on Linux. Together, vmcache and exmap provide flexible, efficient, and scalable buffer management on multi-core CPUs and fast storage devices.en2836-6573Proceedings of the ACM on Management of Data20231Association for Computing MachineryInformatikVirtual-memory assisted buffer managementConference Paper10.1145/3588687Conference Paper