This repository implements an expandable probing hash table, which uses thread helping approach to expand the table when needed.
This hash table contains two different modes: Multi Start Expansion and Single Start Expansion. In the first one, all threads compete to start a new expansion phase, causing extra contention. In the second mode, one thread is designated for starting the expansion; other threads only help in this process. The following plot depicts the difference between these two modes:
The benchmark, util, and make files are provided by Prof. Trevor Brown.