O(1) Expected Insertion for Random Walk d-ary Cuckoo Hashing up to the Load Threshold
Carnegie Mellon University(卡内基梅隆大学)
本文提出了一种在负载阈值内实现随机游走 d-ary 鸽巢 hashing 的 O(1) 插入算法,通过理论分析证明了插入时间的期望为常数。
2026-10-14 cs.DS math.CO
Insertion Time of Random Walk Cuckoo Hashing below the Peeling Threshold
大多数哈希表的插入时间为$O(1)$,可能符合预期和/或摊销。虽然插入到cuckoo哈希表中在实践中似乎确实需要$O(1)$预期的时间,但只有在最简单的实际相关情况下才能证明多对数保证。由于布谷鸟散列广泛用于实现紧凑字典和Bloom过滤器替代方案,缩小这一差距是理论家的一个重要问题。在本文中,我们表明,随机游走插入到布谷鸟哈希表$O(1)$预期摊销时间时,任何数量的$k \geq 3$的哈希函数被使用,负载因子低于相应的剥离阈值(例如,$\approx 0.81$为$k = 3$)。据我们所知,这是第一个对$k \in \{3,\dots,9\}$有效的cuckoo hashing的常数时间插入有意义的保证。除了本身的用处之外,我们希望我们的以键为中心的分析方法可以成为通往真正最终目标的垫脚石:对于低于负载阈值的所有负载因子,$O(1)$时间插入(例如,对于$k = 3$,$\approx 0.91$)。
2022-04-25 cs.DS
Explicit and Efficient Hash Families Suffice for Cuckoo Hashing with a Stash
结果表明,对于Kirsch,Mitzenmacher和Wieder(2008)提出的具有隐藏的布谷鸟散列,可以使用非常简单的散列函数族,保持良好的性能保证:对于隐藏大小$s$,隐藏的概率为$O(1/n^{s+1})$,评估时间为$O(s)$。Kirsch等人和Kutzelnigg(2010)(分别为$Θ(\log n)$ -明智的独立性为标准的布谷鸟散列)的新方法,甚至工程与2明智的独立散列家庭作为积木。构建和分析都建立在Dietzfelbinger和Woelfel(2003)的工作基础上。分析,这也可以适用于完全随机的情况下,利用图计数参数,是比以前的证明简单得多。作为副产品,获得了用于模拟均匀散列的算法。虽然它需要的空间大约是最节省空间的解决方案的两倍,但由于其简单而直接的结构而具有吸引力。
2012-04-19 cs.DS
Cuckoo Hashing in Cryptography: Optimal Parameters, Robustness and Applications
本文提出使用更多哈希函数的布谷鸟哈希构造,显著降低查询开销并证明最优性,同时引入鲁棒布谷鸟哈希应对恶意输入,并应用于改进批量码和PIR构造。
2023-06-20 cs.CR cs.DS
Maximum Bipartite Matching Size And Application to Cuckoo Hashing
Cuckoo hashing with a stash是一种具有高内存利用率的健壮的多选择散列方案,可用于许多网络设备应用程序。不幸的是,对于超过0.5的内存负载,对其性能知之甚少。在本文中,我们分析其平均性能在这样的负载。我们解决这个问题,通过重铸的问题作为一个给定的随机二分图的预期最大匹配大小的分析。我们提供任何有限系统的精确结果,并推导出渐近结果的内存大小的增加。我们进一步考虑这个问题的其他变体,并最终评估我们的模型在互联网骨干网上的表现。更一般地说,我们的结果给出了一个严格的下限的大小所需的任何多项选择哈希方案的隐藏。
2011-08-09 cs.DS cs.NI
SicHash -- Small Irregular Cuckoo Tables for Perfect Hashing
完美散列函数(Perfect Hash Function,PHF)是一种在给定输入集上没有冲突的散列函数。PHF可以用于阵列中数据的空间有效存储,或者用于确定集合中每个对象的紧凑表示。在本文中,我们提出了PHF构造算法SicHash -用于完美哈希的小不规则布谷鸟表。在其核心,SicHash使用一种已知的技术:它将对象放在布谷鸟哈希表中,然后将每个对象的最终哈希函数选择存储在检索数据结构中。我们将这个想法与不规则的布谷鸟散列相结合,其中每个对象都有不同数量的散列函数。此外,我们使用许多小表,我们超载超过其渐近最大负载因子。最节省空间的竞争对手通常使用蛮力方法来确定PHF。SicHash提供了一种更直接的构造算法,很少需要重新计算部分。我们的实现提高了最先进的空间利用率与建设时间方面的各种配置。同时,它提供了非常快速的查询。
2022-11-08 cs.DS
Generalized Cuckoo Hashing with a Stash, Revisited
Cuckoo hashing是一种常见的哈希技术,在最坏的情况下保证恒定时间的查找。Kirsch、Mitzenmacher和Wieder在SICOMP 2010上提出了增加储藏,作为降低故障概率的一种方式(即,有效的布谷鸟分配不存在的概率)。此后,它已成为密码学等领域的标准技术,这些领域通常需要可以忽略的失败概率。我们专注于Cuckoo哈希的扩展,允许每个桶有多个项目,这提高了负载因子。Kirsch \emph{et al.}也在存在藏匿物的情况下分析了该延伸。特别是,假设$d$是每个桶的项目数,$s$是存储大小,Kirsch \emph{et al.}表明,对于恒定的$d$和$s$,失败概率是$\mathcal{O}(n^{(s+1)(1-d)})$。在本文中,我们首先报告了一个错误的分析基尔希\emph{et al.}显示一个反例,导致一个渐进较大的失败概率$Ω(n^{-d-s-1})$。然后给出了(几乎)任意$d$和$s$的失效概率的一般分析和上界,而不是常数,这对密码学中的应用是有用的。最后,我们从一般分析中推导出一个紧界$Θ(n^{-d-s})$的故障概率,常数$d$和$s$。
2022-12-31 cs.DS
Fully De-Amortized Cuckoo Hashing for Cache-Oblivious Dictionaries and Multimaps
字典(或映射)是一种要求所有键都是唯一的键值存储,而多映射是一种允许多个值与同一个键相关联的键值存储。我们为字典和多重映射设计基于哈希的索引方案,以实现最坏情况下的查找和更新的最佳性能,数据结构需要哈希操作的概率很小或可以忽略不计,这取决于我们是否在外部存储器(I/O)模型或随机存取机(RAM)模型的一个众所周知的版本中工作。我们的构造的主要特征之一是它们是\emph{fully de-amortized},这意味着它们的性能边界保持不变,而无需使用某些性能参数来调整它们的构造,例如故障概率指数中的常数因子,或者在外部存储器模型的情况下,块或高速缓存行的大小以及内部存储器的大小(即,我们的外部存储器算法是高速缓存不经意的)。我们的解决方案是基于一个完全de-amortized实现布谷鸟散列,这可能是独立的利益。该哈希方案使用两个布谷鸟哈希表,一个“嵌套”在另一个内部,其中一个作为主要结构,另一个作为辅助支持队列/存储结构,其相对于传统辅助结构是超大的,但仍然向我们的方案增加了可忽略不计的存储。这种辅助结构使得cuckoo hashing的成功概率非常高,这在加密或数据密集型应用中非常有用。
2011-07-21 cs.DS
A cuckoo hashing variant with improved memory utilization and insertion time
Cuckoo hashing [4]是一种多选择哈希方案,其中每个项目可以放置在多个位置,并且通过将项目移动到其替代位置来解决冲突。在双向布谷鸟哈希的经典实现中,内存被划分为连续的不相交的固定大小的桶。每个项目被散列到两个桶中,并且可以存储在这些桶中的任何位置。参考文献[2]分析了一种变化,其中桶是连续和重叠的。但是,许多系统从辅存中检索相同大小的块(称为页)中的数据。获取页面是一个相对昂贵的过程;但是一旦获取了页面,就可以更快地访问其内容。我们利用这个属性的内存检索,提出了一个变种的布谷鸟哈希纳入以下约束:每个桶必须完全包含在一个页面,但桶不一定是连续的。实验结果表明,这种修改提高了内存利用率,减少了插入一个项目所需的迭代次数。如果每个项目被散列到两个容量为2的桶,页面大小为8,并且每个桶完全包含在单个页面中,则内存利用率在经典的连续不相交桶变体中等于89.71%,在连续重叠桶变体中等于93.78%,并且在我们的新的非连续桶变体中增加到97.46%。当内存利用率为92%时,我们使用广度优先搜索来查找空闲位置,插入新项所需的迭代次数从连续重叠桶变体中的545次大幅减少到我们新的非连续桶变体中的52次。除了经验的结果,我们提出了一个理论上的下限的内存利用率的变化作为页面大小的函数。
2011-11-15 cs.DS
Backyard Cuckoo Hashing: Constant Worst-Case Operations with a Succinct Representation
动态字典的性能主要由其更新时间、查找时间和空间消耗来衡量。在更新时间和查找时间方面,存在以高概率保证最坏情况下的恒定时间操作的已知构造,并且在空间消耗方面,存在使用基本上最优空间的已知构造。然而,尽管对动态字典的第一次分析可以追溯到45年前(当Knuth在1963年分析线性探测时),但这些性能方面之间的权衡仍然没有完全理解。在本文中,我们解决了两个基本的开放问题:-我们构建了第一个动态字典,享有最好的两个世界:它存储n个元素使用(1+ 1)n内存字,并保证在最坏的情况下,高概率的恒定时间操作。具体地,对于任何Ω = Ω((\log \log n / \log n)^{1/2})并且对于多项式多运算的任何序列,在初始化阶段的随机性上具有高概率,所有运算在与Ω无关的恒定时间内执行。该构造是布谷鸟散列的两级变体,增加了一个处理大部分元素的“后院”,以及一个用于消除对重复的依赖的去摊销的完美散列方案。- 我们提出了上述构造的一个变体,它只使用(1+o(1))B个比特,其中B是表示从大小为u的论域中取的大小为n的集合的信息论下限,并保证在最坏情况下具有高概率的恒定时间操作,如前所述。这个问题甚至在摊销设置中也是公开的。我们构建的主要成分之一是基于置换的cuckoo hashing变体,它在处理相当小的宇宙时显着改善了cuckoo hashing的空间消耗。
2010-08-16 cs.DS
Tight Thresholds for Cuckoo Hashing via XORSAT
我们解决了离线cuckoo hashing的严格阈值问题。这个问题可以表述如下:我们有n个键要被散列到m个桶中,每个桶都能容纳一个键。每个键具有k>= 3个(不同的)相关联的桶,这些桶是随机地均匀选择的,并且独立于其他键的选择。如果每个键都可以放入其中一个桶中,则可以成功构建哈希表。我们寻求阈值alpha_k,使得当n趋于无穷大时,如果对于某个alpha <alpha_k,n/m <= alpha,则哈希表可以以高概率成功构建,并且如果对于某个alpha> alpha_k,n/m>= alpha,则哈希表不能以高概率成功构建。在这里,我们考虑的是问题的离线版本,其中所有的键和哈希值都是给定的,因此这个问题相当于以前的多选择哈希模型。我们发现所有k> 2的值的阈值,表明他们实际上是相同的随机k-XORSAT问题的先前已知的阈值。然后,我们扩展这些结果的设置键可以有不同数量的选择,并提供证据的形式的算法的猜想扩展这一结果的布谷鸟哈希表存储多个键在一个桶。
2010-12-21 cs.DS
Efficient $d$-ary Cuckoo Hashing at High Load Factors by Bubbling Up
本文提出冒泡上浮杜鹃哈希,在高负载因子下用接近最优的哈希函数数量同时实现快速插入和 O(1) 正查询时间。
2025-01-04 cs.DS math.CO
Fast Concurrent Cuckoo Kick-Out Eviction Schemes for High-Density Tables
Cuckoo hashing保证了恒定时间的查找,而不管表的密度如何,这使得它成为高密度表的可行候选者。然而,Cuckoo hashing插入在高表密度下表现不佳。在本文中,我们通过引入新的踢出驱逐算法来缓解这个问题。实验上,我们的算法减少了高达10倍的因素,每次插入高密度表查看箱的数量。我们还介绍了一个乐观的并发方案,事务多作家布谷鸟哈希表(不使用硬件事务内存)。对于轻删除工作负载,我们的kick-out算法避免了插入之间的所有竞争,并显着降低了事务中止频率。使用称为声明标志的新同步机制,将此结果扩展到任意工作负载。
2016-05-17 cs.DC cs.DS
Load Thresholds for Cuckoo Hashing with Overlapping Blocks
Dietzfelbinger和Weidling [DW 07]提出了一种布谷鸟散列的自然变体,其中每个$cn$对象在大小为$\ell$的线性(或循环)散列表中被分配大小为$k = 2$的间隔,并且两个起始点都是独立且均匀随机选择的。每个对象必须在其间隔内放置到表格单元格中,但每个单元格只能容纳一个对象。实验表明,该方案优于其中间隔以$\ell$的倍数对齐的块的变体。特别地,负载阈值更高,即可以以高概率实现的负载$c$。例如,Lehman和Panigrahy [LP 09]根据经验观察到$\ell = 2$的阈值约为$96.5\%$,而使用块的阈值约为$89.7\%$。他们设法确定了大$\ell$的阈值的渐近性,但精确的值无法进行严格的分析。我们建立了一种方法来确定这些负载阈值的所有$\ell \geq 2$,事实上,一般$k \geq 2$。例如,对于$k = \ell = 2$,我们得到$\approx 96.4995\%$。我们采用的关键工具是Leconte,Lelarge和Massoulié [LLM13]提出的一个有见地的一般定理,该定理将统计物理学的方法应用于超图可定向性的世界。实际上,我们的图族的可定向性阈值由某些图限制的置信传播方程确定。作为旁注,我们提供了实验证据,表明可以使用Khosla [Kho13]的算法的改编版本在线性时间内构建放置,负载接近阈值。
2019-12-17 cs.DS
Compact Parallel Hash Tables on the GPU
本文研究GPU上紧凑哈希表设计,提出紧凑桶式布谷鸟哈希和紧凑冰山哈希两种方案,并通过CUDA实现与基准测试证明紧凑性可显著提升查找和插入吞吐量,同时保持动态操作性能。
2024-06-13 cs.DS
Fast Insertion for Bucketized Cuckoo Hashing
Carnegie Mellon University(卡内基梅隆大学)
研究布谷鸟哈希的快速插入问题,提出新插入过程,能将哈希表填充到接近最优阈值的负载因子,有poly(ε^-1)插入时间界和强摊销保证,传统算法无法匹配,且查询算法能大概率猜出键所在桶,提升查询效率。
2026-07-28 cs.DS
A Faster Algorithm for Cuckoo Insertion and Bipartite Matching in Large Graphs
哈希表在计算机科学中无处不在,用于有效地访问大型数据集。然而,总是需要提供紧凑的存储器利用率而不显著降低查找性能的方法。Cuckoo hashing是一种创建哈希表的有效技术,具有高空间利用率,并提供有保证的恒定访问时间。我们将获得$n$位置和$m$项。每个项目必须放置在由$k$随机哈希函数选择的$k\ge2$位置之一。通过允许单个项目有多个选择,布谷鸟哈希类似于多选择分配方案。此外,它还支持在可能的位置中动态更改项目的位置。我们提出并分析了一种在\emph{linear time}中以高概率和期望运行的布谷鸟哈希插入算法。以前的工作总分配时间分析广度优先搜索,它被证明是线性的,只有在\emph{expectation}。我们的算法发现一个分配(概率为1),只要它存在。相比之下,另一种已知的插入方法,称为\emph{random walk insertion},即使对于可解实例也可以无限地运行。我们还提出了实验结果比较我们的算法与随机游走方法的性能,也为情况下,每个位置可以容纳一个以上的项目。作为推论,我们得到了在一类特殊的稀疏随机二部图中寻找完美匹配的线性时间算法(具有高概率和期望)。我们支持这一点,通过在现实世界的大型数据集上进行实验,在一般的大型二分图中找到最大匹配。我们报告了一个数量级的改善,在运行时间相比,\emph{Hopkraft-Karp}匹配算法。
2019-07-16 cs.DS
Dynamic Space Efficient Hashing
我们考虑空间有效的哈希表,它可以动态地增长和收缩,并且总是高度空间有效的,即,它们的空间消耗总是接近下限,即使在增长时并且在考虑仅临时需要的存储时也是如此。传统上使用的哈希表都不具有此属性。我们展示了如何已知的方法,如线性探测和桶布谷鸟散列可以适应这种情况下,将它们细分为许多子表或使用虚拟内存超量。然而,这些相当直接的解决方案由于以小增量频繁重新分配而遭受缓慢的摊销插入时间。我们的主要结果是DySECT({ \bf Dy} dynamic { \bf S}pace { \bf E} efficient { \bf C}uckoo { \bf T}able),它避免了这些问题。DySECT由许多子表组成,这些子表的大小会增加一倍。由此产生的子表大小的不均匀性被桶布谷鸟散列中可用的灵活性所均衡,其中每个元素可以进入多个桶,每个桶包含多个单元格。实验结果表明,DySECT系统工作良好,负载率可达98%.性能比次佳解决方案高出2.7倍。
2017-05-02 cs.DS
Analysing the Performance of GPU Hash Tables for State Space Exploration
在过去的几年中,通用图形处理器(GPU)已被用于显着加速许多应用程序。GPU最近带来显著加速的领域之一是模型检验。在模型检验中,状态空间,即,大的有向图,探索,以验证模型是否满足所需的属性。GPUexplore是一个基于GPU的模型检查器,它使用一个哈希表来有效地跟踪已经探索过的状态。由于在这种探索期间发现并存储了大量的状态,因此哈希表应该能够快速地并发处理许多插入和查询。在本文中,我们实验比较了两种不同的哈希表优化的GPU,一个是GPU探索哈希表,另一个使用布谷鸟哈希。我们使用从模型检验实验中获得的随机和非随机数据来比较两种哈希表的性能,以分析两种哈希表用于状态空间探索的适用性。我们得出的结论是,对于随机数据,Cuckoo哈希比GPU explore哈希快三倍,对于非随机数据,Cuckoo哈希快五到九倍。这表明在不久的将来进一步加速GPU探索的巨大潜力。
2017-12-27 cs.DC cs.DS
Revisiting Consistent Hashing with Bounded Loads
动态负载均衡是分布式缓存的核心。这里,目标是以提供负载均衡的方式将对象(负载)分配给服务器(计算节点),同时动态地调整服务器的添加或移除。一个基本要求是,添加或删除小型服务器不应该要求我们重新计算整个分配。一个流行且被广泛采用的解决方案是二十年历史的一致性哈希(CH)。最近,提供了一个优雅的扩展来说明服务器边界。在本文中,我们确定,现有的方法CH及其变种遭受级联溢出,导致不良的负载均衡。这种级联效应导致哈希过程的性能随着负载的增加而降低。为了克服级联效应,我们提出了一个简单的解决方案,CH的基础上快速minwise哈希的最新进展。我们表明,理论和经验,我们提出的解决方案是显着优于负载均衡,在许多意义上是最佳的。在AOL搜索数据集和印第安纳大学点击数据集与真实的用户活动,我们提出的解决方案减少了几个数量级的缓存未命中。
2020-06-16 cs.DS
Benchmarking Hashing Algorithms for Load Balancing in a Distributed Database Environment
现代高负载应用程序使用多个数据库实例存储数据。这样的架构需要数据一致性,并且确保数据在节点之间的均匀分布非常重要。负载均衡用于实现这些目标。哈希是几乎所有负载均衡系统的支柱。自从经典的一致性哈希算法被引入以来,许多算法都是为了这个目的而设计的。负载均衡器的目的之一是确保存储集群的可伸缩性。在节点添加或删除过程中,尽可能少地传输数据记录对于整个系统的性能至关重要。负载平衡器哈希算法对此过程的影响最大。在本文中,我们实验评估几个哈希算法用于负载均衡,进行模拟和真实的系统实验。为了评估算法的性能,我们已经开发了一个基准套件的基础上Unidata MDM~--一个可扩展的工具包,各种主数据管理(MDM)的应用程序。为了评估,我们采用了三个标准--均匀性的生产分布,移动记录的数量,和计算速度。根据我们的实验结果,我们创建了一个表,其中每个算法都根据上述标准进行了评估。
2022-11-01 cs.DB cs.DC cs.DS
Optimizing Quotient Filters using Graveyard Hashing
本文提出墓碑过滤器,一种结合墓碑哈希的商过滤器变体,以抵消主聚簇影响,在高负载因子下实现有竞争力的插入与查询性能,并探讨了基于负载因子的重分配改进方案。
2025-02-28 cs.DS
Linear Hashing Is Optimal
该研究证明F₂上随机矩阵实现的n球n箱线性哈希的期望最大负载达O(log n / log log n),匹配完全随机函数性能,解决了长期开放问题,并给出了更一般的尾概率上界。
2025-05-20 cs.CC cs.DS
Efficient Hashing with Lookups in two Memory Accesses
散列的研究与球和仓的分析密切相关。众所周知,如果我们将一个球随机地散列到两个箱子中并将其放置在两个箱子中较小的箱子中,而不是使用单个散列函数,那么这将大大降低箱子上的最大负载。这导致了双向散列的概念,其中最大的桶包含具有高概率的$O(\log\log n)$球。哈希查找现在将在项目哈希到的两个桶中进行搜索。由于一个项目可以放在两个桶中的一个,我们可以在最初放置项目后移动它以减少最大负载。我们表明,通过在插入过程中执行移动,最大负载2可以保持在线,具有很高的概率,同时支持散列更新操作。事实上,利用$n$桶,即使每个桶预分配两个项目的空间,如在硬件实现中可能期望的,也可以存储多于$n$的项目,从而给出高存储器利用率。我们还分析了在插入过程中执行的移动次数和桶上的最大负载之间的权衡。通过执行最多$h$移动,我们可以保持$O(\frac{\log \log n}{h \log(\log\log n/h)})$的最大负载。因此,即使只走一步,我们也比不走一步得到更好的边界。
2004-07-09 cs.DS
Multi-probe consistent hashing
我们描述了一个一致的散列算法,它执行多个查找每个关键的节点的哈希表。除了哈希表之外,它不需要额外的存储空间,并且每个键只需要1 + 1/2次查找,就可以实现1 + 1/2的峰值平均负载比。
2015-05-01 cs.DS
Balanced Allocations and Double Hashing
双哈希最近在使用多个哈希函数的方案中发现了更常见的用法。在双散列中,对于项目$x$,生成两个散列值$f(x)$和$g(x)$,然后使用$k=0,1,2,...$的组合$(f(x) +k g(x)) \bmod n$,以从初始的两个散列值生成多个散列值。我们首先进行实证研究表明,令人惊讶的是,双重哈希和完全随机哈希之间的性能差异似乎可以忽略不计的标准平衡分配范式,其中每个项目被放置在最少的$d$的选择,以及几个相关的变种。然后,我们提供理论结果,解释在这种情况下的双重哈希的行为。
2014-01-29 cs.DC cs.DM cs.DS
Consistent Hashing with Bounded Loads
由于各种原因,在动态设置中为客户端到服务器的平衡分配设计算法是一个具有挑战性的问题。服务器和客户端都可以周期性地从系统中添加和/或移除,并且分配算法的主要目标是:分配的一致性,以及添加或移除服务器或客户端后的移动次数。我们动态设置最流行的解决方案是一致性哈希。然而,一致性哈希的负载平衡并不比客户端到服务器的随机分配更好,因此使用每个$n$,我们预计许多服务器将因$Θ(\log n/ \log\log n)$客户端而过载。在本文中,与$n$客户端和$n$服务器,我们得到一个保证的最大负载为2,而每次更新只移动一个预期的常量客户端。我们采用任意用户指定的平衡参数$c=1+ε>1$。在系统中使用$m$球和$n$箱时,我们不希望负载高于$\lceil cm/n\rceil$。同时,我们希望绑定在添加或删除球或服务器时必须移动的球的预期数量。与一般的下界相比,没有容量限制,我们表明,在我们的算法中,当一个球或箱被插入或删除,球的预期数量,必须移动的增加只有一个乘法因子$O({1\over ε^2})$的$ε\le 1$(定理4)和一个因子$1+O(\frac{\log c}c)$的$ε\ge 1$(定理3)。从技术上讲,后一个界限最难证明。这意味着我们对于超常数$c$只需要付出微不足道的额外移动成本。我们也得到了相同的界限,为更简单的问题,而不是一个用户指定的平衡参数有一个固定的箱容量$C$…
2017-07-27 cs.DS
A Note on Second-Order Expected Maximum-Load Bounds for Binary Linear Hashing
Technion(以色列理工学院)
本文研究了二进制线性哈希在二进制线性映射下的二次最大负载界限,证明了其在第二阶最大负载尺度上几乎与完全独立哈希匹配,并给出了一个固定桶的精确尾部界限。
2026-05-18 cs.DS
Cascade hash tables: a series of multilevel double hashing schemes with O(1) worst case lookup time
本文提出了一系列多级双散列方案,称为级联哈希表。它们使用多级哈希表。在每个表中,我们使用常见的双哈希方案。较高级别的哈希表用作较低级别的哈希表的故障保护。通过该策略,可以有效地减少哈希插入中的冲突。因此,它获得了一个恒定的最坏情况下的查找时间与一个相对较高的负载因子(70%-85%)在随机实验。对级联哈希表的不同参数进行了测试。
2015-06-25 cs.AI cs.DS
Lower Bounds for Linear Hashing via Arithmetic Kakeya
New York University(纽约大学);Cornell University(康奈尔大学);Max Planck Institute for Informatics(马克斯·普朗克 informatics 研究所);Carnegie Mellon University(卡内基梅隆大学);Redwood Research(红杉研究)
该研究针对线性哈希的最大负载问题,通过两次归约结合算术Kakeya构造,证明了键空间为n^(1+o(1))时的指数级下界,还给出了上界的替代路径及Kakeya猜想的关联结论。
2026-08-26 cs.DS
Linear Probing Revisited: Tombstones Mark the Death of Primary Clustering
线性探测于1954年首次引入,是计算机科学中最古老的数据结构之一,由于其无与伦比的数据局部性,它仍然是实践中最快的哈希表之一。然而,人们普遍认为并教导,线性探测不应在高负载因子下使用;这是因为主聚类效应导致在负载因子$1 - 1 /x$下的插入花费预期的时间$Θ(x^2)$(而不是理想的$Θ(x)$)。主聚类的危险,首先由Knuth在1963年发现,已经被教导给几代计算机科学家,并影响了许多广泛使用的哈希表的设计。我们表明,主要集群是不是一个定局。我们证明,小的设计决策,在如何删除实施插入的渐近性能有显着的影响,因此,即使一个哈希表连续运行在一个负载因子$1 - Θ(1/x)$,每次操作的预期摊销成本是$\tilde{O}(x)$。这是因为由删除创建的墓碑实际上会导致对抗主聚类的反聚类效应。我们还提出了一种新的线性探测(我们称之为墓地哈希),完全消除了主集群上的\emph{any}操作序列:如果,当一个操作被执行,当前的负载因子是$1 - 1/x$的一些$x$,那么操作的预期成本是$O(x)$。一个推论是,在数据块大小为$B$的外部内存模型中,墓地哈希提供了以下显著的保证:在任何满足$x = o(B)$的负载因子$1 - 1/x$,墓地哈希实现了每次操作的$1 + o(1)$预期块传输。过去的外部存储器哈希表只能在块大小$B$至少为$Ω(x^2)$时提供$1 + o(1)$保证。
2021-07-02 cs.DS math.CO
CavityRank: Zero-Extra-Byte Residual Routing for Cuckoo Filters
Zhejiang University of Technology(浙江工业大学)
CavityRank 为布谷鸟过滤器设计的零额外字节残差路由,通过利用压缩桶资源编码秩,在插入性能上优于随机踢出与深度10 BFS,缩小了预言机残差间隙,处于实用设计区间。
2026-08-17 cs.DS
Peeling Close to the Orientability Threshold: Spatial Coupling in Hashing-Based Data Structures
在多选数据结构中,$m$键的集合$S$中的每个元素$x$通过散列函数与具有容量$\ell \geq 1$的桶的随机集合$e(x) \subseteq [n]$相关联。此设置由超图$H = ([n],\{e(x) \mid x \in S\})$捕获。将每个键容纳在相关联的桶中相当于找到$\ell$ -$H$的方向,该方向将关联顶点分配给每个超边,使得每个顶点被分配至多$\ell$超边。若$H$的每个子超图的最小度至多为$\ell$,则可找到一个$\ell$ -定向图,称$H$为$\ell$ -可剥图.可剥离性在可逆Bloom查找表中具有核心作用,并且可以加快检索数据结构、完美散列函数和布谷鸟散列表的构造。许多超图在$\ell$ -可定向性和$\ell$ -可剥离性方面表现出尖锐的密度阈值,即当密度$c = \frac{m}{n}$增长超过临界值时,这些属性的概率从几乎$1$下降到几乎$0$。在完全随机的$k$ -均匀超图中,$\ell$-可定向性的阈值$c_{k,\ell}^*$显著超过$\ell$ -可剥离性的阈值.本文对任意的$k \geq 2$和$\ell \geq 1$,对任意的$(k,\ell) \neq (2,1)$和任意的$z > 0$,构造了一类新的具有独立同分布的随机$k$ -一致超图.随机超边,使得$\ell$ -可剥离性和$\ell$ -可定向性阈值都接近$c…
2020-11-02 cs.DS
Robin Hood Hashing really has constant average search cost and variance in full tables
30年前,针对开寻址哈希表引入了罗宾汉冲突解决策略,并找到了其搜索成本分布的递归方程。虽然这种递归不能用解析法求解,但它允许数值计算,值得注意的是,这表明当表满时,搜索成本的方差接近$1.883$的值。此外,通过使用非标准的均值中心搜索算法,这将意味着即使在完整的表中也可以在预期的恒定时间内执行搜索。尽管提出这些意见已有一段时间,但在证明这些意见方面没有取得任何进展。在本文中,我们介绍了一种技术,而不是解决一个相关的微分方程的递归方程的棘手性。虽然这并没有提供一个精确的解决方案,但它足以证明方差的界,从而证明罗宾汉的方差是由负载因子任意接近1的一个小常数限制的。作为推论,这证明了均值中心搜索算法在预期的恒定时间内运行。我们还使用这种技术来研究罗宾汉哈希表的性能下的一个长序列的插入和删除,删除是通过标记为删除的元素。我们证明,在这种情况下,方差是有界的$1/(1-α)+O(1)$,其中$α$是负载因子。为了对这些哈希表的行为进行建模,我们使用了一种统一的方法,该方法也可以应用于研究先来先服务和后来先服务的冲突解决规则,包括删除和不删除。
2016-05-13 cs.DS
Iceberg Hashing: Optimizing Many Hash-Table Criteria at Once
本文提出Iceberg hashing,一种同时优化空间、缓存效率和失败概率等多个核心属性的稳定哈希表,并引入waterfall addressing等通用技术改进动态调整大小。
2023-10-22 cs.DS
DxHash: A Scalable Consistent Hash Based on the Pseudo-Random Sequence
本文提出基于伪随机序列的可扩展一致性哈希算法DxHash及加权变体,在负载均衡、最小扰动等六项指标上全面优于现有方案,百万节点集群50%故障率下仍达每秒1330万次查询。
2023-11-18 cs.DS cs.NI
Tight Bounds for Classical Open Addressing
本研究提出rainbow hashing经典开放寻址哈希表,证明其时间-负载因子权衡最优,且扩展动态调整大小无额外时间成本,解决了此前三类操作同时达o(ε⁻¹)时间界的开放问题。
2024-09-17 cs.DS
Non-Minimal $k$-Perfect Hashing: Tight Lower Bounds and an Application to Fast Static Hash Tables
Karlsruhe Institute of Technology(卡尔斯鲁厄理工学院)
研究非最小k完美哈希,给出其在加速静态哈希表方面的应用。通过理论分析确定k - PHF紧密空间下界,实践中基于PtrHash开发并调优k - PHF用于静态哈希表,实现大小略超下界,在查询速度上有显著提升。
2026-08-28 cs.DS
Probabilistic behavior of hash tables
本文推广了Goldreich和Ron关于估计散列函数碰撞概率的一个结果。他们的估计有一个多项式尾部。我们证明了当负载因子大于某个常数时,估计量具有高斯尾。作为一个应用程序,我们找到了一个估计的上界的平均搜索时间在哈希与链接,对于一个特定的用户(我们允许整体的密钥分布是不同的密钥分布的特定用户)。估计量具有高斯尾。
2003-03-21 cs.DB cs.DS