Evaluate meowhash


(Bt90) #1

It’s the fastest hash function we know of by a factor of at least 3. On modern Intel x64 CPUs, it hashes 16 bytes per cycle single-threaded. This means in cache it can hash at a rate of 64 gigabytes per second on a 4.2gHz machine.

How robust is it? It cleanly passes every test in smhasher and has produced no collisions on our large datasets as yet.

Looks very interesting IMHO.


(Audrius Butkevicius) #2

Syncthing needs cryptographic hashes.


(Bt90) #3

Just curious but why?


(Audrius Butkevicius) #4

Read the docs/protocol spec. We rely on lack of collisions to prevent tampering.


(Bt90) #5

Ah thanks for the info!

Is there a reason why adler32 is used as the weakhash while go seems to provide a hardware-assisted crc32 implementation? https://golang.org/src/hash/crc32/


(Audrius Butkevicius) #6

CRC is not a rolling hash (windowed hash), adler32 is.