{"title":"走捷径:积极将操作系统的虚拟内存索引整合到硬件加速数据库索引中","authors":"Felix Schuhknecht","doi":"arxiv-2310.09124","DOIUrl":null,"url":null,"abstract":"Index structures often materialize one or multiple levels of explicit\nindirections (aka pointers) to allow for a quick traversal to the data of\ninterest. Unfortunately, dereferencing a pointer to go from one level to the\nother is costly since additionally to following the address, it involves two\naddress translations from virtual memory to physical memory under the hood. In\nthe worst case, such an address translation is resolved by an index access\nitself, namely by a lookup into the page table, a central hardware-accelerated\nindex structure of the OS. However, if the page table is anyways constantly\nqueried, it raises the question whether we can actively incorporate it into our\ndatabase indexes and make it work for us. Precisely, instead of materializing\nindirections in form of pointers, we propose to express these indirections\ndirectly in the page table wherever possible. By introducing such shortcuts, we\n(a) effectively reduce the height of traversal during lookups and (b) exploit\nthe hardware-acceleration of lookups in the page table. In this work, we\nanalyze the strengths and considerations of this approach and showcase its\neffectiveness at the case of the real-world indexing scheme extendible hashing.","PeriodicalId":501333,"journal":{"name":"arXiv - CS - Operating Systems","volume":"24 4","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2023-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Taking the Shortcut: Actively Incorporating the Virtual Memory Index of the OS to Hardware-Accelerate Database Indexing\",\"authors\":\"Felix Schuhknecht\",\"doi\":\"arxiv-2310.09124\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Index structures often materialize one or multiple levels of explicit\\nindirections (aka pointers) to allow for a quick traversal to the data of\\ninterest. Unfortunately, dereferencing a pointer to go from one level to the\\nother is costly since additionally to following the address, it involves two\\naddress translations from virtual memory to physical memory under the hood. In\\nthe worst case, such an address translation is resolved by an index access\\nitself, namely by a lookup into the page table, a central hardware-accelerated\\nindex structure of the OS. However, if the page table is anyways constantly\\nqueried, it raises the question whether we can actively incorporate it into our\\ndatabase indexes and make it work for us. Precisely, instead of materializing\\nindirections in form of pointers, we propose to express these indirections\\ndirectly in the page table wherever possible. By introducing such shortcuts, we\\n(a) effectively reduce the height of traversal during lookups and (b) exploit\\nthe hardware-acceleration of lookups in the page table. In this work, we\\nanalyze the strengths and considerations of this approach and showcase its\\neffectiveness at the case of the real-world indexing scheme extendible hashing.\",\"PeriodicalId\":501333,\"journal\":{\"name\":\"arXiv - CS - Operating Systems\",\"volume\":\"24 4\",\"pages\":\"\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2023-10-13\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"arXiv - CS - Operating Systems\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/arxiv-2310.09124\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Operating Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2310.09124","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Taking the Shortcut: Actively Incorporating the Virtual Memory Index of the OS to Hardware-Accelerate Database Indexing
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.