~/talk

Implementing Understandable World Class Hash Tables in C++

Talkat CppCon 2022 · 2022-09-11..09-16· [databases]
links:none on file
slides:none on file

Claims world‑class performance backed by open source code, microbenchmarks and Compiler Explorer disassembly: a Robin Hood probing invariant implemented with SIMD/SWAR metadata comparisons and hoisted hash + probe‑sequence bits yields very small false positive rates and deterministic probing (max PSL ≈ log2 N). Results show sustained high load factors (reported 99.9% load factor) and dramatic lookup speedups (better than 10× versus std::unordered_map on their benchmarks). Implementation details include aligned/unaligned SWAR finds, journaled evictions, and pragmatic cost‑model tuning; code and numbers are available to inspect.

AI-written summary · about

  1. 0:00High-performance hash tables intro
  2. 1:52Fast hash table requirements
  3. 2:55Open addressing vs chaining
  4. 4:19Robin Hood probing hash tables
  5. 6:06Robin Hood fundamentals
  6. 8:59Find and delete in Robin Hood tables
  7. 11:05Robin Hood advantages
  8. 12:10Existing Robin Hood implementations
  9. 13:56High-performance design strategies
  10. 17:28SWAR parallelism in hash ops
  11. 20:38SIMD register experiments
  12. 21:00Generic programming abstractions
  13. 23:26Instruction cost models revision
  14. 26:14High load factor design
  15. 27:20Metadata and data layouts
  16. 29:04Dynamic config goals
  17. 29:26Metadata packing and SWAR
  18. 32:33Aligned find with SWAR needles
  19. 35:45Hash functions scatter and hoist
  20. 36:51Reducing branches for predictability
  21. 40:48Insertion with SWAR causality
  22. 42:57Eviction chains in insertions
  23. 44:24Journaling key moves
  24. 45:29Avoiding division in hot paths
  25. 46:13Deletion shifting and tombstones
  26. 46:35Resizing without full rehash
  27. 48:02Benchmark results metrics
  28. 50:13Complex key comparisons perf
  29. 51:35Insertion perf across configs
  30. 52:429% load factor benchmarks
  31. 53:25Compiler challenges optimizations
  32. 56:39Autistic code branch-free
  33. 58:03Find termination conditions
  34. 58:45Future work production
  35. 59:47Q&A on Robin Hood ops
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.