arXivDaily arXiv每日学术速递 周一至周五更新
北美退伍军人节(Veterans Day),12 日无更新
arXiv cs/0702159cs.DScs.DB
收藏

数据管理应用程序的完美散列

Perfect Hashing for Data Management Applications

Fabiano C. Botelho, Rasmus Pagh, Nivio Ziviani

摘要:

完美散列函数可以潜在地用于压缩与各种数据管理任务相关的数据。尽管人们对如何构造好的完美哈希函数做了大量的工作,但现有的最小完美哈希方法在理论和实践上都存在一定的差距。一方面,对于大型密钥集,存在良好的理论结果,但没有实验证明的实用性。另一方面,理论上分析的时间和空间使用算法假设真正的随机哈希函数是免费的,这是一个不切实际的假设。在本文中,我们试图弥合理论与实践之间的差距,使用一些技术从文献中获得一个新的计划,在理论上是很好的理解,并在同一时间实现了一个数量级的性能增长相比,以前的“实用”的方法。这种改进来自一个新的,理论上最佳的完美的散列方案,大大简化了以前的方法相结合,我们的算法是为了充分利用存储层次结构的事实。我们证明了我们的算法的可扩展性,通过考虑一组超过10亿的URL从万维网的平均长度为64,我们构建了一个最小的完美的哈希函数在一个商品PC在一个多小时。我们的方案产生最小的完美散列函数,每个密钥使用略多于3位。对于在范围$\{0,...,2n-1\}$中的完美散列函数,空间使用下降到每键刚好超过2位(即,比表示密钥的最佳值多一位)。这明显低于先前对于非常大的$n$值所实现的。

英文摘要:

Perfect hash functions can potentially be used to compress data in connection with a variety of data management tasks. Though there has been considerable work on how to construct good perfect hash functions, there is a gap between theory and practice among all previous methods on minimal perfect hashing. On one side, there are good theoretical results without experimentally proven practicality for large key sets. On the other side, there are the theoretically analyzed time and space usage algorithms that assume that truly random hash functions are available for free, which is an unrealistic assumption. In this paper we attempt to bridge this gap between theory and practice, using a number of techniques from the literature to obtain a novel scheme that is theoretically well-understood and at the same time achieves an order-of-magnitude increase in performance compared to previous ``practical'' methods. This improvement comes from a combination of a novel, theoretically optimal perfect hashing scheme that greatly simplifies previous methods, and the fact that our algorithm is designed to make good use of the memory hierarchy. We demonstrate the scalability of our algorithm by considering a set of over one billion URLs from the World Wide Web of average length 64, for which we construct a minimal perfect hash function on a commodity PC in a little more than 1 hour. Our scheme produces minimal perfect hash functions using slightly more than 3 bits per key. For perfect hash functions in the range $\{0,...,2n-1\}$ the space usage drops to just over 2 bits per key (i.e., one bit more than optimal for representing the key). This is significantly below of what has been achieved previously for very large values of $n$.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑