Tiered memory architectures have gained significant traction in the database community in recent years. In these architectures, the on-chip DRAM of the host processor is typically referred to as local memory, and forms the primary tier. Additional byte-addressable, cache-coherent memory resources, collectively referred to as remote memory (RMem, for short), form one or more secondary tiers. RMem is slower than local DRAM but faster than disk, e.g., NUMA memory located on a remote socket, chiplet-attached memory, and memory attached via high-performance interconnect protocols, e.g., RDMA and CXL. In this paper, we discuss how traditional two-tier (DRAM-Disk) virtual-memory assisted Buffer Management techniques generalize to an $n$-tier setting (DRAM-RMem-Disk). We present vmcache$^n$, an $n$-tier virtual-memory-assisted buffer pool that leverages the virtual memory subsystem and operating system calls to migrate pages across memory tiers. In this setup, page migration can become a bottleneck. To address this limitation, we introduce the move_pages2 system call that provides vmcache$^n$ with fine-grained control over the page migration process. Experiments show that vmcache$^n$ can achieve up to 4$\times$ higher query throughput over vmcache for TPC-C workloads.
翻译:近年来,层级内存架构在数据库领域获得了广泛关注。在此类架构中,主机处理器的片上DRAM通常被称为本地内存,构成主层级。其他可按字节寻址、具有缓存一致性的内存资源统称为远程内存(简称RMem),构成一个或多个次级层级。RMem的速度低于本地DRAM但快于磁盘,例如位于远程插槽的NUMA内存、小芯片连接内存,以及通过高性能互连协议(如RDMA和CXL)连接的内存。本文探讨了传统的双层(DRAM-磁盘)虚拟内存辅助缓冲区管理技术如何推广到$n$层架构(DRAM-RMem-磁盘)。我们提出了vmcache$^n$——一种$n$层虚拟内存辅助缓冲池,它利用虚拟内存子系统和操作系统调用来实现内存层级间的页面迁移。在此设置中,页面迁移可能成为性能瓶颈。为突破此限制,我们引入了move_pages2系统调用,使vmcache$^n$能够对页面迁移过程进行细粒度控制。实验表明,在TPC-C工作负载下,vmcache$^n$相比vmcache可实现高达4$\times$的查询吞吐量提升。