寻找一种实现并发哈希表的算法,该算法不会在每次需要调整其大小时都重新哈希整个表,我发现了以下论文:
Per-bucket concurrent rehashing algorithms
“多级哈希”概念引起了我的注意。文章说:
2.3多级哈希处理
递归哈希的缺点可以通过扩展 具有更复杂控制字段的存储桶,用于指示 细分。因此,任何访问“旧”存储桶的操作都可以 检测是否需要重新哈希,然后将数据直接移入 所有新存储桶都立即可用,如图3所示。 不过,调整大小时递归重新哈希可能是更好的选择 是罕见的事件,并且在 桶。
但是我不明白。什么是rehashed segments
?
论文稍后说:
对于多级哈希,使用信息进行此检查很简单 关于存储在存储桶中的经过重整的段,实际上是最新的 给定铲斗的有效容量。这里的困难是 检测其他线程时正确的根父节点的算法 可以同时重新哈希(本文未讨论)。
再次,rehashed segments
是什么?