[WIP] Robin Hood Hashing#818
Conversation
|
/ok to test 1f3d64e |
|
@aterenin Just wanted to let you know we haven't forgotten about this work! @sleeepyjack and I are discussing the new design and will align on a concrete proposal before moving forward to minimize unnecessary iterations. We'll keep you posted. |
|
Sounds good! The current WIP implements everything needed, along with tests. I've carefully gone over all the core logic, and I think is reasonably close to ready-to-review. The main remaining item I was planning to think about more is whether there is a more maintenance-friendly way to organize and structure the code, which is what the "big question" in the PR centers on. I also have a list of a bunch of subtleties worth mentioning, but these should wait until a review. If discussion would help, I'd be happy to jump on a Zoom call - just let me know! |
This PR implements Robin Hood hashing, through introducing a new probing scheme, as per #817. An initial-pass implementation for get and insert, and tests, are done.
The implementation works by adding
if constexprlogic throughout to handle Robin Hood specifics as they come up:insertmethods for Robin Hood vs. others, and dispatch according to table type.Some more details about this question, with an example, are given at the very end of #817.