6 ms·
Assuming that the underlying implementations of the Item interface will use some form of hash algorithm to determine the return value of the Key method, how doe
by _ak 11y ago
Assuming that the underlying implementations of the Item interface will use some form of hash algorithm to determine the return value of the Key method, how does this deal with hash collisions of two distinct items?
- judofyr 11y agoIt doesn't. It's not a hash, it's the actual key.
- hit9 11y agoYep.
- hit9 11y agoFor this case, conflicts can be solved via the traditional separate chaining strategy, to open a list on the Item. This htree was originally implemented as the indexing container to store key-value poisition informations for the bitcask storage engine. And string keys are not stored in the htree to save more memory. Collisions of two string keys are distinguished by checking the disk.
- hit9 11y agoAnd the origin string keys are stored in the htree item only if there is collision. So the string key distinguishing checks are at most once.
- songgao 11y agoThe Item interface requires a uint32 typed key, meaning that if you need a hash function to derive the key, you are responsible for resolving the collisions :D