-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
I've often thought about the idea of auto hash finding based on my experiences developing good hash functions^0
Cool to see this! I think it would be cool to hook it up with SMHasher3^1 (a much improved, and faster variant of the venerable hash test suite developed by Frank J. T. Wojcik) to automatically evaluate its output. You could use a subset of tests and fail fast for speed.
It would also be cool to expand it to 64 and 128 bit hashes (tho obviously the search space is larger).
Somewhat related I created some NodeJS code to measure avalanche under multiplication for 64-bit primes in order to select the values for Rain.
[Rain]: https://github.com/dosyago/rain
[SMHasher3]: https://gitlab.com/fwojcik/smhasher3
I also have something similar here, with a slower generator (interpreted, not jitted), but better quality functions: https://github.com/rurban/fast-hash/tree/master/hashgen
But I found nothing better than the old favorites.
I implemented the 1brc in go a few weeks back [1] and this repo was inspiration to try to find a custom perfect hash function that put each station into its own bucket with no collisions. Then I noticed the rule that you can't customize the hash function to the data before the program starts and dropped the idea. I think it got down to 2 collisions testing with random constants and letting it run overnight.
[1]: https://github.com/infogulch/1brc-go
He's also the author of elfeed [0] "An Emacs web feeds client". I've found his minimalist implementation very inspiring.
[0] https://github.com/skeeto/elfeed