arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2310.09124cs.DBcs.OS
收藏

走捷径:主动利用操作系统的虚拟内存索引来硬件加速数据库索引

Taking the Shortcut: Actively Incorporating the Virtual Memory Index of the OS to Hardware-Accelerate Database Indexing

Felix Schuhknecht

AI总结:

本文提出利用操作系统页表作为数据库索引的捷径,通过直接在页表中表达间接层来减少遍历高度并利用硬件加速,并在可扩展哈希上验证了有效性。

摘要:

索引结构通常物化一个或多个显式间接层(即指针),以便快速遍历到感兴趣的数据。不幸的是,从一个层级解引用指针到另一个层级代价高昂,因为除了跟随地址之外,它还在底层涉及从虚拟内存到物理内存的两次地址转换。在最坏的情况下,这种地址转换本身通过索引访问来解决,即通过查找页表(操作系统的一个核心硬件加速索引结构)来实现。然而,如果页表无论如何都被频繁查询,这就引发了一个问题:我们能否主动将其纳入我们的数据库索引并使其为我们所用?确切地说,我们建议不物化指针形式的间接层,而是尽可能直接在页表中表达这些间接层。通过引入这种捷径,我们(a)有效减少了查找期间的遍历高度,并且(b)利用了页表查找的硬件加速。在这项工作中,我们分析了这种方法的优势与考量,并以其在真实世界索引方案可扩展哈希中的应用案例展示了其有效性。

英文摘要:

Index structures often materialize one or multiple levels of explicit indirections (aka pointers) to allow for a quick traversal to the data of interest. Unfortunately, dereferencing a pointer to go from one level to the other is costly since additionally to following the address, it involves two address translations from virtual memory to physical memory under the hood. In the worst case, such an address translation is resolved by an index access itself, namely by a lookup into the page table, a central hardware-accelerated index structure of the OS. However, if the page table is anyways constantly queried, it raises the question whether we can actively incorporate it into our database indexes and make it work for us. Precisely, instead of materializing indirections in form of pointers, we propose to express these indirections directly in the page table wherever possible. By introducing such shortcuts, we (a) effectively reduce the height of traversal during lookups and (b) exploit the hardware-acceleration of lookups in the page table. In this work, we analyze the strengths and considerations of this approach and showcase its effectiveness at the case of the real-world indexing scheme extendible hashing.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑