{"title":"memwalkd : Accelerating Key-value stores using Page Table Walkers","authors":"R. S. Anupindi, Swaroop Kotni, Arkaprava Basu","doi":"10.1109/HiPC56025.2022.00021","DOIUrl":null,"url":null,"abstract":"In-memory key-value stores (KVS) or caches form the backbone of many commercial and HPC applications. The basic operation of KVS revolves around storing or updating the mapping from keys to their corresponding values and looking up that mapping when requested by a client. We observe that the memory management unit (MMU) in modern processors does something similar – it looks up the mapping between virtual addresses and physical addresses stored in the per-process page table. We leverage the MMU to gain hardware acceleration for key-value lookup for free in a new key-value store design called memwalkd. We hash keys to unique virtual addresses. These addresses map to the physical addresses that hold the corresponding values. Thus, GET/SETs are performed by simply issuing loads/stores to the hash of a key. Across a wide range of workloads, memwalkd achieves 1.8× better throughput over a highly-optimized implementation of memcached called MICA [1].","PeriodicalId":119363,"journal":{"name":"2022 IEEE 29th International Conference on High Performance Computing, Data, and Analytics (HiPC)","volume":"41 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2022 IEEE 29th International Conference on High Performance Computing, Data, and Analytics (HiPC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/HiPC56025.2022.00021","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
In-memory key-value stores (KVS) or caches form the backbone of many commercial and HPC applications. The basic operation of KVS revolves around storing or updating the mapping from keys to their corresponding values and looking up that mapping when requested by a client. We observe that the memory management unit (MMU) in modern processors does something similar – it looks up the mapping between virtual addresses and physical addresses stored in the per-process page table. We leverage the MMU to gain hardware acceleration for key-value lookup for free in a new key-value store design called memwalkd. We hash keys to unique virtual addresses. These addresses map to the physical addresses that hold the corresponding values. Thus, GET/SETs are performed by simply issuing loads/stores to the hash of a key. Across a wide range of workloads, memwalkd achieves 1.8× better throughput over a highly-optimized implementation of memcached called MICA [1].