DLHT: A Non-blocking Resizable Hashtable with Fast Deletes and Memory-awareness

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Katsarakis, Antonios, Gavrielatos, Vasilis, Ntarmos, Nikos
Format: Preprint
Publié: 2024
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866913391267807232
author Katsarakis, Antonios
Gavrielatos, Vasilis
Ntarmos, Nikos
author_facet Katsarakis, Antonios
Gavrielatos, Vasilis
Ntarmos, Nikos
contents This paper presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
format Preprint
id arxiv_https___arxiv_org_abs_2406_09986
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle DLHT: A Non-blocking Resizable Hashtable with Fast Deletes and Memory-awareness
Katsarakis, Antonios
Gavrielatos, Vasilis
Ntarmos, Nikos
Databases
This paper presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
title DLHT: A Non-blocking Resizable Hashtable with Fast Deletes and Memory-awareness
topic Databases
url https://arxiv.org/abs/2406.09986