Talk type: Talk
Teaching Cuckoo to Fly, or Concurrent Hash Map with Seqlocks
Hash tables are the basic associative array algorithm used almost everywhere. There are many algorithms, including those that support multithreading, but we'll look at one of the best — libcuckoo. One of the problems with these multithreaded algorithms is that in order to read data safely, one still needs to write to the lock memory for synchronization with other threads. The SeqLock algorithm eliminates the need for writes, significantly improving the scalability of reads, but it imposes several essential usage conditions that are not easy to address… not only at the level of the hash table algorithm, but also at the level of the C++ language itself, touching its high matters and gaps.