4 ms·
Thanks for the links; the BQN impl looks really interesting. I believe TFA deals with only hash codes and offsets in the hash table proper (keys and values are
by senderista 3y ago
Thanks for the links; the BQN impl looks really interesting. I believe TFA deals with only hash codes and offsets in the hash table proper (keys and values are stored separately in a dynamic array), so fixed-width keys/values still apply. It's true that you can't use keys interchangeably with hash codes for variable-length keys like I do for integer keys, but I don't expect that to affect the relative performance of RH vs. BLP. (I'm curious how they handle colliding hash codes; 32-bit hashes mean you have a ~50% probability of at least one collision at 2^16 keys, which isn't much.)
- mlochbaum 3y agoLooks like full keys are always compared if hash codes test equal, which is what I'd expect. For example: https://github.com/questdb/questdb/blob/master/core/src/main/java/io/questdb/cairo/map/FastMap.java#L357 https://github.com/questdb/questdb/blob/master/core/src/main...
- puzpuzpuz-hn 3y agoThat's correct. In practice, there is an insignificant amount of hash collisions, so false comparisons are extremely rare. And thanks for sharing your experience with RH and the links!