Memory Reclamation Methods for Lock-Free Hash Tries

Pedro Moreno

December 2018


Abstract

Data structures are a fundamental programming tool required by almost any program or algorithm. As such, data structures are a key target to ensure that some concurrency properties are inherited by the programs that use them. These properties range from scalability and progress guarantees to memory overheads and bounds.
In this thesis, we focus on studying a particular lock-free data structure, named Lock-Free Hash Tries, and on solving the problem of memory reclamation without loosing the lock-freedom property. To the best of our knowledge, outside garbage collected environments, there is no current implementation of hash maps that is both lock-free and able to reclaim memory. To achieve this goal, we review the current state-of-the-art memory reclamation methods for lock-free data structures and we go over the possibility of making Lock-Free Hash Tries compatible with such memory reclamation methods. We found such a task unfeasible to be done correctly without compromising performance. We thus propose an alternative approach for memory reclamation specific to Lock-Free Hash Tries that explores the characteristics of its structure in order to achieve efficient memory reclamation with low and well-defined memory bounds. This new memory reclamation method makes Lock-Free Hash Tries the first completely lock-free hash map implementation that works in a non garbage collected environment.
Experimental results show that our approach attains better results than the tested state-of- the-art memory reclamation methods and also provides a competitive and scalable thread safe hash map implementation, if compared to lock based implementations.

Bibtex

@MastersThesis{moreno-msc,
  author =  {P. Moreno},
  title =   {{Memory Reclamation Methods for Lock-Free Hash Tries}},
  school =  {University of Porto},
  address = {Portugal},
  month =   {December},
  year =    {2018},
  type =    {{MSc Thesis}},
}

Download Thesis

PDF file