我正在构建一个简单的版本化键值存储,我需要这个能力 通过指定(密钥,版本)对来访问记录。更新版本存储 指向其先前版本的指针(ak,它们将索引存储到hashmap中)。
为了保持记录的大小,我将密钥,版本对散列为Long, 然后我将其存储,并用作索引。
我当前使用的实现是附加密钥和版本(密钥 限制为字母字母),并使用本机hashcode()函数。 在每次放置之前,我测试碰撞(ak,是否已存在条目,如果是, 它有相同的密钥,ID对),我经常观察它们。这是现实的吗? 我的空间大约有一百万个条目。我最初的假设是,这导致碰撞非常罕见。但是我错了。
你有一个替代解决方案(一个可以将散列保持为64位,2 ^ 64远大于1m)。我希望尽可能避免SHA / MD5的大小开销
键是随机生成的长度为16个字符的字符串 版本很长,将涵盖0到100000
的范围