IcebergHT: High Performance Hash Tables Through Stability and Low Associativity

IcebergHT: High Performance Hash Tables Through Stability and Low Associativity
复制标题

DOI:
10.1145/3588727
复制
发表时间:
2023-05
期刊:
Proceedings of the ACM on Management of Data
影响因子:
--
通讯作者:
P. Pandey;M. A. Bender;Alex Conway;Martín Farach-Colton;William Kuszmaul;Guido Tagliavini;Robert C. Johnson
P. Pandey;M. A. Bender;Alex Conway;Martín Farach-Colton;William Kuszmaul;Guido Tagliavini;Robert C. Johnson
中科院分区:
其他
文献类型:
--
作者:
P. Pandey;M. A. Bender;Alex Conway;Martín Farach-Colton;William Kuszmaul;Guido Tagliavini;Robert C. Johnson

文献摘要

被引文献

相似文献

现代的HASH表设计和PMEM努力最大程度地减少速度,而速度最重要的因素。写信,因为在PMEM上写信比阅读更昂贵。如果没有移动项目,则所有操作的访问权限是稳定的。只有几个内存位置,并且稳定性可确​​保插入很少的缓存线。基于稳定性和低关联性的设计原理,冰上效率(PMEM)的碰撞效果(PMEM)。 )稳定,(3)支持较低的关联性,现有的标签可以修改插入过程中的许多缓存线(例如,杜鹃哈希(Cuckoo Hashing)探测)或浪费空间(例如链接)证明冰山在DRAM和PMEM中都具有出色的性能。 CLHT和查询更快的冰期空间为20%。 Iceberght的表现优于最先进的哈希表libcuckoo and clht几乎2×插入,同时提供了良好的查询吞吐量和更好的空间效率。
Modern hash table designs for DRAM and PMEM strive to minimize space while maximizing speed. The most important factor in speed is the number of cache lines accessed during updates and queries. On PMEM, there is an additional consideration, which is to minimize the number of writes, because on PMEM writes are more expensive than reads. This paper proposes two design objectives, stability and low-associativity, that enable us to build hash tables that minimize cache-line accesses for all operations. A hash table is stable if it does not move items around, and a hash table has low associativity if there are only a few locations where an item can be stored. Low associativity ensures that queries need to examine only a few memory locations, and stability ensures that insertions write to very few cache lines. Stability also simplifies concurrency and, on PMEM, crash safety. We present IcebergHT, a fast, concurrent, space-efficient, and crash-safe (for PMEM) hash table based on the design principles of stability and low associativity. IcebergHT combines in-memory metadata with a new hashing technique, iceberg hashing, that is (1) space efficient, (2) stable, and (3) supports low associativity. In contrast, existing hash-tables either modify numerous cache lines during insertions (e.g. cuckoo hashing), access numerous cache lines during queries (e.g. linear probing), or waste space (e.g. chaining). Moreover, the combination of (1)-(3) yields several emergent benefits: IcebergHT scales better than other hash tables, has excellent performance, and supports crash-safety on PMEM. Our benchmarks show that IcebergHT has excellent performance both in DRAM and PMEM. In PMEM, IcebergHT insertions are 50% to 3× faster than state-of-the-art PMEM hash tables, such as Dash and CLHT, and queries are 20% to 2× faster. IcebergHT space overhead is 17%, whereas Dash and CLHT have space overheads of 2× and 3×, respectively. IcebergHT also scaled linearly throughout our experiments and is crash safe. In DRAM, IcebergHT outperforms state-of-the-art hash tables libcuckoo and CLHT by almost 2× on insertions while offering good query throughput and much better space efficiency.