Latest commit ecc6e26 Oct 2, 2018 History
Summary: F14 uses bits 56..62 (inclusive) of the hash as the vector
filtering value (H2 in SwissTable terminology) when the hash functor
is explicitly marked as "avalanching", but bit 62 of the benchmark's
hash value was the one used to differentiate between RandomExistent and
RandomNonexistent keys.  This biases the benchmark.  For FindMiss the
bias is likely in F14's favor, because vector filtering becomes perfect
and no fallback to equality checks is needed.  For other benchmarks the
bias is against F14, since this doubles the false positive rate of the
vector filtering step.

This diff removes the bias, removes the previous benchmark results that
were affected, and includes a new benchmark run.  It also adds some
intermediate sizes to the benchmark results to help shed light on the
tradeoff between separate metadata (SwissTable) and intermixed metadata
(F14).
2 contributors

Users who have contributed to this file

@fowles @nbronson