An Efficient Wait-free Resizable Hash Table
本文提出了一种有效的无等待可调整大小的哈希表。为了在大的核心数实现高吞吐量,我们的算法是专门设计的,以保留并发哈希的自然并行性,同时提供无等待哈希。对我们的哈希表的广泛评估表明,在常见的情况下,其中的动作是罕见的,我们的实现优于所有现有的无锁哈希表实现,同时提供了更强的进度保证。
2022-04-20 cs.DC
Lock-free dynamic hash tables with open addressing
我们提出了一个有效的无锁算法的并行访问哈希表与开放寻址,这承诺更强大的性能和可靠性比传统的基于锁的实现。“无锁”意味着保证总是至少有一个进程在有限的步骤数内完成其操作。对于单处理器架构,我们的解决方案与顺序哈希表一样有效。在多处理器体系结构上,当所有处理器都具有相当的速度时也是如此。该算法允许处理器具有广泛的不同速度或停止。它可以很容易地使用C类语言实现,并且平均只需要恒定的时间来插入,删除或访问元素。该算法允许哈希表在需要时增长和收缩。无锁算法很难正确设计,即使看起来很简单。在尽可能早的阶段确保设计的正确性是任何负责任的系统开发的主要挑战。鉴于算法的复杂性,我们转向交互式定理证明器PVS进行机械支持。我们采用标准的演绎验证技术来证明我们算法的约200个不变性,并描述了如何使用定理证明器PVS实现这一点。
2004-10-27 cs.DC cs.DS
Defending Hash Tables from Subterfuge with Depth Charge
本文提出Depth Charge算法,通过基于哈希表链深度的资源燃烧机制防御拜占庭攻击者,使防御成本渐近低于攻击成本。
2023-08-08 cs.CR cs.DC cs.DS
DHash: Enabling Dynamic and Efficient Hash Tables
给定一个指定的平均加载因子,哈希表提供了恒定时间查找操作的吸引力。然而,哈希表可能面临严重的哈希冲突,因为恶意攻击、有缺陷的应用程序,甚至传入数据的突发,从而损害了这一实际优势。在本文中,我们提出了DHash,一个哈希表,克服了这一挑战,允许程序员动态地改变其散列函数的飞行,而不影响其他并发操作,如查找,插入和删除。DHash是模块化的,允许程序员选择各种无锁/无等待集算法作为哈希表桶的实现。有了这种灵活性,他们可以在算法的进度保证、性能和工程工作之间进行权衡,并创建最符合他们需求的DHash实现。三种类型的架构的评估表明,DHash显着优于其他实际的替代品在繁重的工作负载。当负载因子为20时,DHash的性能比其他三个最广泛使用的哈希表高出1.4-2.0倍,当负载因子增加到200时,DHash的速度快了2.3-6.2倍。
2020-06-01 cs.DC
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
Hive Hash Table: A Warp-Cooperative, Dynamically Resizable Hash Table for GPUs
Hive 哈希表是一种 warp 协作、动态可调整大小的 GPU 哈希表,通过紧凑桶布局、无锁并发协议和线性哈希调整策略,在 RTX 4090 上实现高达 95% 负载因子和 1.5-2 倍吞吐量提升。
2025-10-16 cs.DC
A High Throughput Parallel Hash Table on FPGA using XOR-based Memory
哈希表是一种基本的数据结构,用于快速搜索和检索数据。它是复杂图分析和AI/ML应用程序的关键组件。最先进的并行哈希表实现或者做出一些简化的假设,例如仅支持哈希表操作的子集,或者采用导致高度依赖于数据的性能的优化,并且在最坏的情况下可以类似于顺序实现。相比之下,在这项工作中,我们开发了一个动态的哈希表,支持所有的哈希表查询-搜索,插入,删除,更新,同时允许我们通过p个处理引擎(PE)在最坏的情况下,即性能是数据不可知的每个时钟周期支持“p”并行查询(p>1)。我们实现了这一点,通过实现新的XOR基于FPGA的多端口块存储器。此外,我们开发了一种技术来优化的哈希表的内存需求,如果插入/更新/删除查询的搜索的比例是事先已知的。我们在最先进的FPGA器件上实现了我们的设计。我们的设计可扩展到16个PE,并支持高达5926 MOPS的吞吐量。它与最先进的哈希表设计FASTHash的吞吐量相匹配,FASTHash只支持搜索和插入操作。与支持相同操作集的最佳FPGA设计相比,我们的哈希表实现了高达12.3倍的加速比。
2021-08-21 cs.DC
A Dynamic Hash Table for the GPU
我们设计并实现了一个完全并发的动态哈希表的GPU与最先进的静态哈希表的性能相当。我们提出了一个经线合作的工作共享策略,减少分支发散,并提供了一个有效的替代传统的方式,每线程(或每经线)的工作分配和处理。通过使用这种策略,我们建立了一个动态的非阻塞并发链表,板列表,支持异步,并发更新(插入和删除),以及搜索查询。我们使用slab list来实现一个带链接的动态哈希表(slab hash)。在NVIDIA Tesla K40 c GPU上,slab hash以高达512 M更新/s的速度执行更新,并以高达937 M查询/s的速度处理搜索查询。我们还设计了一个翘曲同步的动态内存分配器,SlabAlloc,适合的slab哈希的高性能需求。SlabAlloc以600 M分配/s的速率动态分配内存,这比类似场景中的替代方法快37倍。
2018-03-02 cs.DC
Concurrent Deterministic Skiplist and Other Data Structures
Illinois Institute of Technology(伊利诺伊理工学院);Riken Chicago(理化学研究所芝加哥分所)
本文提出了一种并发确定性跳表及其他数据结构的实现,旨在通过减少远程NUMA节点的内存访问来提高内存性能。
2026-08-12 cs.DC cs.DS cs.PF
Boosting Multi-Core Reachability Performance with Shared Hash Tables
本文重点研究了多核可达性的数据结构,这是模型检验算法和其他验证方法的关键组成部分。高效解决方案的基石是访问状态的存储。在相关的工作中,状态空间的静态分区与线程本地存储相结合,并导致合理的加速,但是否有可能改进仍然是开放的。在本文中,我们提出了一种基于无锁哈希表实现的共享状态存储的扩展解决方案。该解决方案专为现代CPU的缓存架构而设计。由于模型检验算法对哈希表操作的要求不严格,因此与无锁哈希表的相关工作相比,它们的设计可以大大简化。尽管如此,这里提出的哈希表的实现具有几十个敏感的性能参数(桶大小、高速缓存线大小、数据布局、探测序列等)。我们分析了它们的影响,并与相关工具进行了比较。我们的实现优于两个国家的最先进的多核模型检查器(SPIN和DiVinE)的大幅利润,同时放置更少的约束的负载均衡和搜索算法。
2010-05-05 cs.DC
Local Thresholding on Distributed Hash Tables
我们提出了一个二叉路由树协议的分布式哈希表覆盖。使用这个协议,每个对等体可以独立地将消息路由到它的父节点和两个动态的后代节点,而不需要任何维护、全局上下文和同步。该协议,然后扩展到支持树的变化通知具有类似的效率。生成的树几乎是完全稠密和平衡的,如果分布式哈希表是对称Chord,则具有O(1)拉伸。我们使用树路由协议,以克服在对等网络系统中的本地阈值算法的实施的主要障碍-他们的要求,无循环路由。直接比较基于流言的算法和相应的局部阈值算法上的多数表决问题表明,后者获得优越的精度使用一小部分的通信开销。
2013-01-14 cs.DC
Hash Table Design for RDMA:Challenges and Opportunities
Nanjing University(南京大学)
本文综述了在RDMA远程内存上部署哈希表面临的网络开销、并发控制和资源限制三大挑战,并总结了现有优化策略与未来方向。
2026-07-15 cs.DC
ReCord: A Distributed Hash Table with Recursive Structure
我们提出了一个简单的分布式哈希表称为ReCord,这是一个广义版本的随机和弦,并提供了改进的权衡现有的P2P系统的性能和拓扑维护。ReCord是可扩展的,可以很容易地实现为一个覆盖网络,并提供了一个很好的节点度和查询延迟之间的权衡。例如,具有$O(\log n)$节点度的$n$节点ReCord具有$Θ(\log n)$跳的预期延迟。或者,它也可以以$O(\frac{\log^2 n}{\log \log n})$节点度的更高代价提供$Θ(\frac{\log n}{\log \log n})$跳延迟。同时,对ReCord的动力学行为进行了仿真研究。
2004-11-01 cs.DC
Data-Parallel Hashing Techniques for GPU Architectures
哈希表是用于有效地存储和访问稀疏数据的最基本的数据结构之一,在从计算机图形到机器学习的领域中广泛使用。本研究调查的国家的最先进的研究数据并行哈希技术,新兴的并行,众核GPU架构。发现影响不同哈希方案性能的关键因素,并用于建议最佳实践和确定进一步研究的领域。
2018-07-11 cs.DC cs.DS
WarpCore: A Library for fast Hash Tables on GPUs
哈希表无处不在。诸如插入和查询的摊销常数时间复杂度以及紧凑的存储器布局等属性使它们成为具有多种应用的通用关联数据结构。在许多领域中出现的快速增长的数据量激发了为现代并行架构设计的加速哈希表的需求。在这项工作中,我们利用现代GPU的快速存储器接口与并行哈希方案,以改善全局内存访问模式,设计WarpCore -一个通用的哈希表数据结构库。独特的设备端操作允许完全在GPU上构建高性能数据处理管道。我们的实现在单个GV 100 GPU上实现了每秒高达16亿次的插入和高达43亿次的检索,从而超越了最先进的解决方案cuDPP、SlabHash和NVIDIA RAPIDS cuDF。对于超过$90\%$的高负载因数,此性能优势变得更加明显。为了克服单个GPU的内存限制,我们在密集的NVLink拓扑上扩展我们的方法,这使我们在DGX服务器上接近最佳的弱扩展。我们进一步展示了WarpCore如何用于加速现实世界的生物信息学应用程序(宏基因组分类),与最先进的基于CPU的解决方案相比,加速比超过两个数量级。WC是用C++/CUDA-C编写的,可在https://github.com/sleeepyjack/warpcore上公开获取。
2020-11-11 cs.DC
Reliable Data Storage in Distributed Hash Tables
分布式哈希表为不稳定的分布式环境提供了弹性查找服务。然而,弹性数据存储需要额外的数据复制和维护算法。这些算法可以对系统的性能和可扩展性产生影响。在本文中,我们描述了这些复制算法的目标和设计空间。我们研究了现有的复制算法,并提出了一个新的分析其可靠性。然后,我们提出了一个新的动态复制算法,可以在不稳定的环境中运行。我们给出了几种可能的副本放置策略,该算法,并显示它们如何影响可靠性和性能。最后通过仿真比较了各种复制算法,定量地显示了它们在带宽利用率、容错能力和性能上的差异。
2005-08-02 cs.DC cs.NI
When Load Rebalancing Does Not Work for Distributed Hash Table
分布式哈希表(Distributed Hash Table,DHT)以其高度的可扩展性和负载均衡的突出特点,成为许多广泛应用的存储系统的基础。最近,基于DHT的系统已经被部署用于物联网(IoT)应用场景。不幸的是,这样的系统可能会在横向扩展和负载重新平衡过程中遇到故障。这种现象与分布式哈希表系统的一般概念相矛盾,特别是关于其可扩展性和负载均衡特性。在本文中,我们研究了基于DHT的系统在向外扩展过程中的故障。我们制定的分布式哈希表的负载重新平衡问题,考虑写工作负载和数据移动的影响。我们发现,每个节点的平均网络带宽和平均写工作负载的强度是决定分布式哈希表负载再平衡可行性的两个关键因素。我们从理论上证明,负载重新平衡是不可行的一个大型的分布式哈希表系统下沉重的写工作负载在一个节点的扩展过程。
2020-12-30 cs.DC
Blockchains Meet Distributed Hash Tables: Decoupling Validation from State Storage
普通用户在为公共区块链设置节点时遇到的第一个障碍是下载节点开始正常运行所需的所有数据所需的时间。事实上,这可能会持续几个小时到几个星期的主要网络。我们的贡献是双重的。首先,我们展示了一种设计,它可以挖掘和验证新的块,只保持一个非常小的状态。其次,我们证明了可以将区块链的状态存储在分布式哈希表中,从而在节点提交的存储和复制因子之间获得广泛的权衡。我们的提案独立于所采用的共识算法,并且能够很好地处理涉及智能合约的交易。
2019-03-07 cs.CR cs.DC
Socially-Aware Distributed Hash Tables for Decentralized Online Social Networks
由于对集中式社交网络中的隐私和可扩展性问题的认识的增加,已经提出了许多分散式在线社交网络(DOSN)。这种分散的网络将处理和存储功能从服务提供商转移到最终用户。DOSN需要服务的个性化实现(即,搜索、信息传播、存储和发布/订阅)。然而,这些服务中的许多服务主要执行社交查询,其中OSN用户对访问他们的朋友的信息感兴趣。在我们的工作中,我们设计了一个社会意识的分布式哈希表(DHT)的有效实施的DOSNs。特别是,我们提出了一个基于八卦的算法,将用户在一个DHT,同时最大限度地提高他们之间的社会意识。通过一组实验,我们表明,我们的方法减少了查找延迟近30%,提高了近10%的通信可靠性,通过可信的联系人。
2015-09-23 cs.DC cs.SI
A Random Structure for Optimum Cache Size Distributed hash table (DHT) Peer-to-Peer design
我们提出了一个新的和易于实现的分布式哈希表(DHT)对等结构,采用随机缓存策略,允许{ \em多对数搜索时间},而只有一个{ \em常数缓存}的大小。我们还表明,一个非常大的类的确定性缓存策略,它涵盖了几乎所有以前提出的分布式哈希表系统,不能实现polylog搜索时间与恒定的缓存大小。通常,新方案是第一个已知的具有以下高度期望的特性的DHT结构:(a)具有恒定高速缓存大小的随机高速缓存策略;(b)$O(log^{2}(N))$的平均搜索时间;(c)$O(log^{3}(N))$的保证搜索时间;(d)具有用于节点删除和添加的恒定开销的真正本地高速缓存动态;(e)从任何初始网络状态向期望结构的自组织;以及(f)允许用于各种权衡的无缝手段,例如,搜索速度或匿名性,代价是更大的缓存大小。
2002-10-14 cs.DC cs.NI
Large-Scale Distributed Learning via Private On-Device Locality-Sensitive Hashing
University of Maryland(马里兰大学)
针对分布式与联邦场景中端侧内存受限及数据隐私问题,提出基于新哈希函数族的私有个性化端侧 LSH 框架,支持压缩权重和串行生成/丢弃哈希表,并在大规模推荐网络训练中表现出竞争力。
2023-06-05 cs.CR cs.DC cs.LG
RACED: Routing in Payment Channel Networks Using Distributed Hash Tables
本文提出基于分布式哈希表的支付通道网络路由协议RACED,在真实交易数据上实现98.74%平均成功率和31.242秒平均寻路时间,并证明其安全性。
2023-11-29 cs.CR cs.DC
An effective single-hop distributed hash table with high lookup performance and low traffic overhead
分布式哈希表(DHT)已经在几个应用中使用,但是大多数DHT选择用多跳来解决查找,以最小化带宽成本,同时牺牲查找延迟。本文提出了D1HT,一个原始的分布式哈希表,它具有对等和自组织的结构,并最大限度地提高查找性能与合理的维护流量,和一个隔离机制,以减少开销所造成的不稳定的同行。我们实施了D1 HT和著名的单跳DHT,并进行了广泛且高度代表性的DHT实验比较,然后进行了补充分析研究。与目前的单跳DHT相比,我们的研究结果表明,D1HT始终具有最低的带宽要求,典型的减少高达一个数量级,D1HT甚至可以用于流行的互联网应用程序与数百万用户。此外,我们运行了第一个延迟实验,将DHT与目录服务器进行比较,结果表明D1HT可以实现与目录服务器相当或更好的延迟,并证实了其更大的可扩展性。总的来说,我们广泛的结果使我们得出结论,D1HT可以为广泛的环境提供非常有效的解决方案,从大型企业网络中心到广泛部署的互联网应用程序。
2014-08-29 cs.DC
Big Atomics
针对现有硬件仅支持小宽度原子操作的局限,提出基于快路径-慢路径的任意k字无锁Big Atomics实现,实验验证其性能优异,且基于其构建的并发哈希表性能优于多种前沿方案。
2025-01-13 cs.DC cs.DS
HierarchicalKV: A GPU Hash Table with Cache Semantics for Continuous Online Embedding Storage
NVIDIA(英伟达);Tencent(腾讯);Vipshop(唯品会);BOSS Zhipin(BOSS直聘);ByteDance(字节跳动);Snap(Snap Inc.)
HierarchicalKV通过引入缓存语义,改进传统GPU哈希表的性能,实现高效的连续在线嵌入存储,其核心机制包括缓存行对齐的桶、内联评分驱动的upsert、基于评分的动态双桶选择以及三组并发,提升了查找吞吐量。
2026-03-17 cs.DB cs.DC cs.IR
A fast MPI-based Distributed Hash-Table as Surrogate Model demonstrated in a coupled reactive transport HPC simulation
针对 HPC 场景,本文提出基于 MPI 共享进程内存的无锁分布式哈希表代理模型,相较显式锁方案具备更好的读写扩展性,并将反应输运模拟加速 14%–42%。
2025-10-21 cs.DC
Learning to Collide: Recommendation System Model Compression with Learned Hash Functions
深度推荐模型的一个关键特征是其嵌入表的巨大内存需求。这些嵌入表通常可以达到数百千兆字节,这增加了硬件要求和培训成本。一种减少模型大小的常用技术是将所有分类变量标识符(id)散列到一个更小的空间中。这种散列减少了必须存储在嵌入表中的唯一表示的数量;从而减小了它的大小。然而,这种方法会在语义不同的id之间引入冲突,从而降低模型质量。我们引入了另一种方法,学习哈希函数,它学习了一个新的映射函数,鼓励语义相似的id之间的冲突。我们从历史数据和嵌入访问模式中获得了这种学习映射。我们在一个生产模型上对这种技术进行了实验,发现由访问频率和学习的低维嵌入相结合的映射是最有效的。我们证明了一个小的改进相对于散列技巧和其他碰撞相关的压缩技术。这是正在进行的工作,探索分类id冲突对推荐模型质量的影响,以及如何控制这些冲突以提高模型性能。
2022-03-28 cs.AI cs.DC cs.IR
RECIPE : Converting Concurrent DRAM Indexes to Persistent-Memory Indexes
我们提出了食谱,一个原则性的方法,用于将并发DRAM索引转换为持久性内存(PM)的崩溃一致性索引。Recipe背后的主要观点是,当PM中使用相同的索引时,可以通过对崩溃一致性的微小更改来转换由某类并发内存索引提供的隔离。我们提出了一组条件,使这类DRAM索引的识别,并采取行动将每个索引转换为持久性。基于这些条件和转换动作,我们将基于B+树、尝试、基数树和哈希表的五种不同的DRAM索引修改为它们的崩溃一致性PM对应物。这种转换所涉及的工作量很小,只需要30-200行代码。我们评估了英特尔DC持久内存上转换后的PM索引,发现它们在多线程工作负载中的性能最高可达手工制作的最先进PM索引的5.2倍。例如,我们构建了P-CLHT,这是CLHT哈希表的PM实现,只修改了30个字节。当运行YCSB工作负载时,P-CLHT的性能比最先进的PM哈希表Cacheline-Conscious Extendible Hashing(CCEH)高2.4倍。
2019-11-08 cs.DB cs.DC cs.DS
Dynamically Sharded Ledgers on a Distributed Hash Table
本文提出ScaleGraph,一种利用分布式哈希表路由和邻近概念实现动态分片的账本,以提升可扩展性并支持机器经济中的微交易,分析表明其存储复杂度为O(t/n),且在腐败节点少时性能优越。
2024-05-23 cs.DC
Performance Analysis of Apriori Algorithm with Different Data Structures on Hadoop Cluster
从海量数据集中挖掘频繁项集一直是数据采掘的一个重要问题。Apriori算法是最流行、最简单的频繁项集挖掘算法。为了提高Apriori的效率和可扩展性,已经提出了许多算法来解决高效数据结构的设计,最小化数据库扫描以及并行和分布式处理。MapReduce是Hadoop集群上处理大数据集的并行分布式技术。为了挖掘大数据集,有必要在这种新的范式上重新设计数据采掘算法。在本文中,我们实现了三种变体的Apriori算法使用数据结构哈希树,trie和哈希表trie,即trie与MapReduce范式上的哈希技术。本文着重研究了这三种数据结构对Hadoop集群上Apriori算法的重要意义,这一点还没有引起足够的重视。在真实数据集和人工合成数据集上进行的实验表明,哈希表trie数据结构在执行时间上远远优于trie和hash树。此外,哈希树的性能变得最差。
2015-11-22 cs.DC
Parallel Algorithms for Adding a Collection of Sparse Matrices
我们开发了一个家庭的SpKAdd操作,增加了一个集合的k稀疏矩阵的并行算法。SpKAdd是许多应用中非常需要的操作,包括分布式存储器稀疏矩阵-矩阵乘法(SpGEMM)、图形的流式累积以及深度学习中梯度更新的算法稀疏化。虽然添加两个稀疏矩阵是Matlab、Python、Intel MKL和各种GraphBLAS库中的常见操作,但这些实现在添加大量稀疏矩阵时性能不佳。我们使用树合并、堆、稀疏累加器、哈希表和滑动哈希表数据结构开发了一系列算法。其中,基于哈希的算法在计算复杂度和I/O复杂度上都达到了理论上的下限,在实践中表现最好。新开发的散列SpKAdd使得分布式内存SpGEMM算法的计算速度比以前的最先进的算法至少快2倍。
2021-12-19 cs.DC
Concurrent Robin Hood Hashing
在本文中,我们将研究在罗宾汉哈希表算法中添加并发所涉及的问题。我们提出了一个非阻塞的无障碍K-CAS罗宾汉算法,它只需要一个字的比较和交换原语,从而使它具有高度的可移植性。该实现保持了原始罗宾汉结构的吸引人的属性,如低预期的探针长度,在高负载因子和良好的高速缓存局部性下有效操作的能力,所有这些都是现代计算机体系结构上的高性能所必需的。我们将我们的数据结构与其他各种无锁和并发算法以及一个简单的硬件事务变体进行比较,并表明我们的实现在许多上下文中表现更好。
2018-11-14 cs.DC
Fast Locality Sensitive Hashing for Beam Search on GPU
Department of Computer Science, University of Southern California(南加州大学计算机科学系);Department of Computer Science and Technology, Tsinghua University(清华大学计算机科学与技术系)
我们提出了一种基于GPU的局部敏感哈希(LSH)算法,以加快序列模型的束搜索。我们利用赢家通吃(WTA)哈希,这是基于隐藏的维度的相对排名顺序,从而弹性的数值扰动。我们的算法设计充分考虑了CUDA支持的GPU的底层架构(算法/架构协同设计):1)并行Cuckoo哈希表用于LSH代码查找(保证O(1)查找时间); 2)候选列表在波束之间共享以最大化并行性; 3)顶部频繁字合并到候选列表中以提高性能。在4个大规模神经机器翻译模型上的实验表明,该算法在softmax模块上可以获得4倍的加速比,在GPU上可以获得2倍的整体加速比,而不会损害BLEU。
2018-06-02 cs.AI cs.CL cs.DC