Design Considerations for P99-optimized Hash Tables by Steve Heller
ScyllaDB
0 views
15 slides
Oct 17, 2025
Slide 1 of 15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
About This Presentation
Hash tables are a classic data structure but struggle in P99-optimized applications, especially with variable-length records. Open addressing works well for fixed-length data, while chaining (as used in Redis) adds latency and pointer overhead. This talk presents an alternative: organizing hash tabl...
Hash tables are a classic data structure but struggle in P99-optimized applications, especially with variable-length records. Open addressing works well for fixed-length data, while chaining (as used in Redis) adds latency and pointer overhead. This talk presents an alternative: organizing hash tables as blocks that pack variable-length records together, reducing random memory accesses and cache inefficiencies. We’ll explore how block-based design with robin-hood hashing can deliver lower, more predictable latency.
Size: 1.6 MB
Language: en
Added: Oct 17, 2025
Slides: 15 pages
Slide Content
A ScyllaDB Community
Design Considerations for
P99-optimized Hash Tables
Steve Heller
President and Chief
Consultant
Chrysalis
Software Corp.
Steve Heller
Chief Consultant at Chrysalis Software Corp.
■I wrote a program to email out thousands of copies of my
resume to answer job ads. In 2001.
■The first 99% of the latency reduction takes the first 99%
of the time. The other 1% takes the other 99% of the time.
■I’ve been to Antarctica.
■Where is this mythical “away from work”? Chrysalis
Software
Corp.
Previous state of the art
A hash table with buckets and separate chaining
Hash_table_5_0_1_1_1_1_1_LL.svg,
created by JorgeStolfi, licensed under
https://creativecommons.org/licenses/by-sa/3.0/
A hash table with open addressing and linear probing
By Jorge Stolfi - Own work, CC BY-SA 3.0,
https://commons.wikimedia.org/w/index.php?curid=6400669
The variable-length-native hash table
Short records stored in the tranche data structure used by the
variable-length-native hash table
Short records and overflow records stored in the
variable-length-native hash table
Performance
Redis vs. VLNHT Average Get time
Horizontal axis unit: 100 million records
Redis vs. VLNHT: P99 Get time
Horizontal axis unit: 100 million records
Redis vs. VLNHT Memory usage
Horizontal axis unit: 100 million records
VLNHT get times up to 10 billion records, sync save
Horizontal axis unit: 100 million records
VLNHT get times up to 10 billion records, async save
Horizontal axis unit: 100 million records
Thank you! Let’s connect.
Steve Heller [email protected]
ChrysalisSoftwareCorporation.com