Lock-Free Memory Reclamation for Concurrent Hash Tries

Paulo Rosa

December 2020


Abstract

Data structures are a fundamental programming tool needed to implement programs. They are a key target to ensure concurrency properties and guarantee good performance. Our work is focused on the study of lock-free data structures, in particular the CTries (Concurrent Hash Tries) data structure, and how memory reclamation can be applied without losing the lock-free property. To the best of our knowledge, there are no implementations of CTries outside garbage collector environments. Extending the Ctries design to support lock-free memory reclamation requires adapting the data structure to achieve efficient memory reclamation with well-defined memory bounds. To achieve this goal, we study the state-of-the-art of memory reclamation methods, their advantages and known problems, and how CTries can be adapted to support memory reclamation methods.
Due to the similarities between the CTries and the LFHT data structure, we focused our work on the memory reclamation method used by LFHT, named HHL (Hazard Hash Level). After extending CTries to implement the HHL method, we realized that the HHL method does not guarantee bounded memory usage in this context. To fit our goals, we then adapted HHL in order to achieve a well-defined memory bounded solution. Experimental results show that our solution introduces some overheads, mainly in the insert operation, but it is still very competitive with the current state-of-the-art methods, achieving better results than some of them.

Bibtex

@MastersThesis{rosa-msc,
  author =  {P. Rosa},
  title =   {{Lock-Free Memory Reclamation for Concurrent Hash Tries}},
  school =  {University of Porto},
  address = {Portugal},
  month =   {December},
  year =    {2020},
  type =    {{MSc Thesis}},
}

Download Thesis

PDF file