中文

Efficient Hashing with Lookups in two Memory Accesses

数据结构与算法 2007-05-23 v1

摘要

The study of hashing is closely related to the analysis of balls and bins. It is well-known that instead of using a single hash function if we randomly hash a ball into two bins and place it in the smaller of the two, then this dramatically lowers the maximum load on bins. This leads to the concept of two-way hashing where the largest bucket contains O(loglogn)O(\log\log n) balls with high probability. The hash look up will now search in both the buckets an item hashes to. Since an item may be placed in one of two buckets, we could potentially move an item after it has been initially placed to reduce maximum load. with a maximum load of We show that by performing moves during inserts, a maximum load of 2 can be maintained on-line, with high probability, while supporting hash update operations. In fact, with nn buckets, even if the space for two items are pre-allocated per bucket, as may be desirable in hardware implementations, more than nn items can be stored giving a high memory utilization. We also analyze the trade-off between the number of moves performed during inserts and the maximum load on a bucket. By performing at most hh moves, we can maintain a maximum load of O(loglognhlog(loglogn/h))O(\frac{\log \log n}{h \log(\log\log n/h)}). So, even by performing one move, we achieve a better bound than by performing no moves at all.

关键词

引用

@article{arxiv.cs/0407023,
  title  = {Efficient Hashing with Lookups in two Memory Accesses},
  author = {Rina Panigrahy},
  journal= {arXiv preprint arXiv:cs/0407023},
  year   = {2007}
}

备注

Submitted to SODA05