Design Considerations for P99-optimized Hash Tables by Steve Heller

ScyllaDB 0 views 15 slides Oct 17, 2025
Slide 1
Slide 1 of 15
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
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...


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
Tags