Cuckoo filters and their analysis
11011110.livejournal.com
11011110.livejournal.com
I emailed one of the authors of the original paper, and, while their Cuckoo filter implementation is available, they have lost their experimental setup and comparison code.
Also smaller than bloom filter and lets you delete.
(disclosure: I'm one of the inventors of Cuckoo filters. Happy to answer questions about them, and very excited to see theoretical progress on them!)
* ECT, or Entropy-Coded Tries, (paper: http://www.cs.cmu.edu/~hl/papers/ect-alenex2013.pdf ) are a static data structure (no insertions after you build it) that are very fast to construct, take about 7 microseconds of CPU time to lookup, and have 2.5 bits of overhead per item inserted. This is the best data structure I know of for external perfect hashing, where you want to store the key/value pair itself on something expensive to access, like an SSD. Implementation available in SILT: https://github.com/silt/silt
* CMPH (http://cmph.sourceforge.net/concepts.html) and friends are very fast MPH functions when you want to store the key value pairs in memory.
* There was a really cool paper at SEA a few years ago on Retrieval and Perfect Hashing using Fingerprinting (http://link.springer.com/chapter/10.1007%2F978-3-319-07959-2...) that came out of SAP. I don't know if they have code available. It's also internal, but uses the same fingerprint-centric idea as ECT, but in a faster way that doesn't require the expensive huffman coding that ECT uses.
There's a ton of very fun research in this area -- this is just the tip of the iceberg (and I haven't really looked at it for two years, so there's probably been more since).
Probably off topic, however, in the CMPH link you quote above, what I gather about the MPH functions is that in any practical setting they probably would require a combination of hash functions to avoid collisions -- right?
"other things that do work well in practice but not in theory?"
"Levit's algorithm for shortest paths in a graph"
Hmm. Quick search, seems it's called Pape-Levit for independent discoveries, twenty year old benchmark paper at:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.54....