If I am reading Rust's hash map correctly, it switched
from:
- robin hood w/ linear probing of 1, 2, 3, ..., n
to
- swiss table w/ quadratic probing of 1, 1+2, 1+2+3, ..., n(n+1)/2
===
-
I am not 100% certain, but I believe the quadratic probing makes it difficult to do backshifts, and as a result, we (may have to) use tombstones on deletes (unless there's an empty within the 16 buckets)
-
there are vague claims floating around that quadratic probing defends vs certain types of hash DOS attacks (ignore choice of hash function + private key for now)
Question: what exactly is the type of hash DOS attacks that quadratic probing defends against? (please be as precise as possible about the sequence of elements)