Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each...
Transcript of Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each...
![Page 1: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/1.jpg)
Write-Optimized and High-Performance
Hashing Index Scheme for Persistent Memory
Pengfei Zuo, Yu Hua, Jie Wu
Huazhong University of Science and Technology, China
OSDI 2018
![Page 2: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/2.jpg)
Persistent Memory (PM)
➢ Non-volatile memory as PM is expected to replace
or complement DRAM as main memory
– Non-volatility, low power, large capacity
PCM ReRAM DRAM
Read (ns) 20-70 20-50 10
Write (ns) 150-220 70-140 10
Non-volatility √ √ ×
Standby Power ~0 ~0 High
Density (Gb/cm2) 13.5 24.5 9.1
PCM
ReRAM
K. Suzuki and S. Swanson. “A Survey of Trends in Non-Volatile Memory Technologies: 2000-2014”, IMW 2015.
C. Xu et al. “Overcoming the Challenges of Crossbar Resistive Memory Architectures”, HPCA, 2015.
2
![Page 3: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/3.jpg)
Index Structures in DRAM vs PM
➢ Index structures are critical for memory&storage systems
➢ Traditional indexing techniques originally designed for
DRAM become inefficient in PM
– Hardware limitations of NVM
• Limited cell endurance
• Asymmetric read/write latency and energy
• Write optimization matters
– The requirement of data consistency
• Data are persistently stored in PM
• Crash consistency on system failures
Pers
ist
CPU
3
![Page 4: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/4.jpg)
Tree-based vs Hashing Index Structures
➢ Tree-based index structures– Pros: good for range query
– Cons: O(log(n)) time complexity
for point query
– Ones for PM have been widely
studied
• CDDS B-tree [FAST’11]
• NV-Tree [FAST’15]
• wB+-Tree [VLDB’15]
• FP-Tree [SIGMOD’16]
• WORT [FAST’17]
• FAST&FAIR [FAST’18]
4
![Page 5: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/5.jpg)
Tree-based vs Hashing Index Structures
➢ Tree-based index structures– Pros: good for range query
– Cons: O(log(n)) time complexity
for point query
– Ones for PM have been widely
studied
• CDDS B-tree [FAST’11]
• NV-Tree [FAST’15]
• wB+-Tree [VLDB’15]
• FP-Tree [SIGMOD’16]
• WORT [FAST’17]
• FAST&FAIR [FAST’18]
➢ Hashing index structures– Pros: constant time complexity for
point query
– Cons: do not support range query
– Widely used in main memory
• Main memory databases
• In-memory key-value stores, e.g.,
Memcached and Redis
– When maintained in PM, multiple
non-trivial challenges exist
• Rarely touched by existing work
5
![Page 6: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/6.jpg)
Challenges of Hashing Indexes for PM
① High overhead for consistency guarantee
– Ordering memory writes
• Cache line flush and memory fence instructions
– Avoiding partial updates for non-atomic writes
• Logging or copy-on-write (CoW) mechanisms
CPU Memory Bus
Volatile caches Non-volatile memory
8-byte width
6
![Page 7: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/7.jpg)
Challenges of Hashing Indexes for PM
① High overhead for consistency guarantee
② Performance degradation for reducing writes
– Hashing schemes for DRAM usually cause many extra
writes for dealing with hash collisions [INFLOW’15, MSST’17]
– Write-friendly hashing schemes reduce writes but at the
cost of decreasing access performance
• PCM-friendly hash table (PFHT) [INFLOW’15]
• Path hashing [MSST’17]
7
![Page 8: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/8.jpg)
Challenges of Hashing Indexes for PM
① High overhead for consistency guarantee
② Performance degradation for reducing writes
③ Cost inefficiency for resizing hash table
− Double the table size and iteratively rehash all items
− Take O(N) time to complete
− N insertions with cache line flushes & memory fences
8
Old Hash Table New Hash Table
Rehash all items
![Page 9: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/9.jpg)
Existing Hashing Index Schemes for PM
Bucketized
Cuckoo (BCH)
PFHT1 Path
Hashing2
Memory efficiency √ √ √
Search √ -- --
Deletion √ -- --
Insertion × -- --
NVM writes × √ √
Resizing × × ×
Consistency × × ×
[1] B. Debnath et al. “Revisiting hash table design for phase change memory”, INFLOW, 2015.
[2] P. Zuo and Y. Hua. “A write-friendly hashing scheme for non-volatile memory systems”, MSST, 2017.
(“×”: bad, “√”: good , “--”: moderate)
9
![Page 10: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/10.jpg)
Existing Hashing Index Schemes for PM
Bucketized
Cuckoo (BCH)
PFHT1 Path
Hashing2
Level
Hashing
Memory efficiency √ √ √ √
Search √ -- -- √
Deletion √ -- -- √
Insertion × -- -- √
NVM writes × √ √ √
Resizing × × × √
Consistency × × × √
[1] B. Debnath et al. “Revisiting hash table design for phase change memory”, INFLOW, 2015.
[2] P. Zuo and Y. Hua. “A write-friendly hashing scheme for non-volatile memory systems”, MSST, 2017.
(“×”: bad, “√”: good , “--”: moderate)
10
![Page 11: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/11.jpg)
Level Hashing
x0 1 2 3 4 5 N-1N-2N-3N-4
TL:
BL:
One movement
One movement
Write-optimized & High-performance Hash Table Structure
Cost-efficient
In-place Resizing Scheme
Low-overhead Consistency
Guarantee Scheme
Resizing
support
Consistency
support
11
![Page 12: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/12.jpg)
Write-optimized Hash Table Structure
① Multiple slots per bucket
② Two hash locations for each key
③ Sharing-based two-level structure
④ At most one movement for each
successful insertion
12
![Page 13: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/13.jpg)
Write-optimized Hash Table Structure
① Multiple slots per bucket
② Two hash locations for each key
③ Sharing-based two-level structure
④ At most one movement for each
successful insertion
x
0 1 2 3 4 5 N-1N-2N-3N-4
TL:
2.2%0%
20%
40%
60%
80%
100%
D1 D1+D2 D1+D2+D3 All
Ma
xim
um
Lo
ad
F
acto
r
13
![Page 14: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/14.jpg)
Write-optimized Hash Table Structure
① Multiple slots per bucket
② Two hash locations for each key
③ Sharing-based two-level structure
④ At most one movement for each
successful insertion
x
0 1 2 3 4 5 N-1N-2N-3N-4
TL:
2.2%
47.6%
0%
20%
40%
60%
80%
100%
D1 D1+D2 D1+D2+D3 All
Ma
xim
um
Lo
ad
F
acto
r
14
![Page 15: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/15.jpg)
Write-optimized Hash Table Structure
① Multiple slots per bucket
② Two hash locations for each key
③ Sharing-based two-level structure
④ At most one movement for each
successful insertion
x
0 1 2 3 4 5 N-1N-2N-3N-4
TL:
BL:
2.2%
47.6%
82.5%
0%
20%
40%
60%
80%
100%
D1 D1+D2 D1+D2+D3 All
Ma
xim
um
Lo
ad
F
acto
r
15
![Page 16: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/16.jpg)
Write-optimized Hash Table Structure
① Multiple slots per bucket
② Two hash locations for each key
③ Sharing-based two-level structure
④ At most one movement for each
successful insertion
x
0 1 2 3 4 5 N-1N-2N-3N-4
TL:
BL:
One movement
One movement
2.2%
47.6%
82.5% 91.1%
0%
20%
40%
60%
80%
100%
D1 D1+D2 D1+D2+D3 All
Ma
xim
um
Lo
ad
F
acto
r
16
![Page 17: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/17.jpg)
Write-optimized Hash Table Structure
x
0 1 2 3 4 5 N-1N-2N-3N-4
TL:
BL:
One movement
One movement
➢ Write-optimized: only 1.2% of insertions incur one movement
➢ High-performance: constant-scale time complexity for all operations
➢ Memory-efficient: achieve high load factor by evenly distributing items
17
![Page 18: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/18.jpg)
Cost-efficient In-place Resizing
➢ Put a new level on top of the old hash table and
only rehash items in the old bottom level
TL:
BL:
0 1 2 3 N-1N-2
18
![Page 19: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/19.jpg)
Cost-efficient In-place Resizing
➢ Put a new level on top of the old hash table and
only rehash items in the old bottom level
2 3 4 5 6 7 2N-22N-32N-40 1 2N-1
TL:
TL:
BL:
19
![Page 20: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/20.jpg)
Cost-efficient In-place Resizing
➢ Put a new level on top of the old hash table and
only rehash items in the old bottom level
2 3 4 5 6 7 2N-22N-32N-40 1 2N-1
TL:
BL:
IL:
(the interim level )20
![Page 21: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/21.jpg)
Cost-efficient In-place Resizing
➢ Put a new level on top of the old hash table and
only rehash items in the old bottom level
2 3 4 5 6 7 2N-22N-32N-40 1 2N-1
TL:
BL:
IL:
(the interim level )
Rehashing
21
![Page 22: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/22.jpg)
Cost-efficient In-place Resizing
➢ Put a new level on top of the old hash table and
only rehash items in the old bottom level
2 3 4 5 6 7 2N-22N-32N-40 1 2N-1
TL:
BL:
22
![Page 23: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/23.jpg)
Cost-efficient In-place Resizing
➢ Put a new level on top of the old hash table and
only rehash items in the old bottom level– The new hash table is exactly double size of the old one
– Only 1/3 buckets (i.e., the old bottom level) are rehashed
2 3 4 5 6 7 2N-22N-32N-40 1 2N-1
TL:
BL:
23
![Page 24: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/24.jpg)
Low-overhead Consistency Guarantee
➢ A token associated with each slot in the open-
addressing hash tables
– Indicate whether the slot is empty
– A token is 1 bit, e.g., “1” for non-empty, “0” for empty
KV1KV00011
Tokens
A bucket:
Slots 24
![Page 25: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/25.jpg)
Low-overhead Consistency Guarantee
➢ A token associated with each slot in the open-
addressing hash tables
– Indicate whether the slot is empty
– A token is 1 bit, e.g., “1” for non-empty, “0” for empty
➢ Modifying the token area only needs an atomic write
– Leveraging the token to perform log-free operations
KV1KV00011
Tokens Slots
A bucket:
25
![Page 26: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/26.jpg)
Log-free Deletion
➢ Delete an existing item
KV1KV00011
Delete
26
![Page 27: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/27.jpg)
Log-free Deletion
➢ Delete an existing item
KV1KV00011
Delete
KV1KV00001
Modify the token in an
atomic write
27
![Page 28: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/28.jpg)
Log-free Deletion
➢ Delete an existing item
KV1KV00011
Delete
KV1KV00001
Modify the token in an
atomic write
➢ Log-free insertion and log-free resizing
– Please find them in our paper28
![Page 29: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/29.jpg)
Consistency Guarantee for Update
➢ If directly update an existing
key-value item in place
– Inconsistency on system failures
KV1KV00011
Update
29
![Page 30: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/30.jpg)
Consistency Guarantee for Update
➢ If directly update an existing
key-value item in place
– Inconsistency on system failures
➢ A straightforward solution is
to use logging KV1KV00011
Update
Expensive!
30
![Page 31: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/31.jpg)
Opportunistic Log-free Update
➢ Our scheme: check whether there is an empty slot in the bucket
storing the old item
– Yes: log-free update
– No: using logging KV1KV00011
KV1’KV1KV00011
KV1’KV1KV00101
Update
① Write KV1’ in an empty slot
②Modify the two tokens in
an atomic write
31
![Page 32: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/32.jpg)
Opportunistic Log-free Update
➢ Our scheme: check whether there is an empty slot in the bucket
storing the old item
– Yes: log-free update
– No: using logging KV1KV00011
KV1’KV1KV00011
KV1’KV1KV00101
Update
① Write KV1’ in an empty slot
②Modify the two tokens in
an atomic write0%
20%
40%
60%
80%
100%
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Lo
g-f
ree
Pro
ba
bili
ty
Load Factor
4 slots/bucket
8 slots/bucket
16 slots/bucket
32
![Page 33: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/33.jpg)
Performance Evaluation
➢ Both in DRAM and simulated PM platforms
– Quartz (Hewlett Packard)
• A DRAM-based performance emulator for PM
➢ Comparisons– Bucketized cuckoo hashing (BCH) [NSDI’13]
– PCM-friendly hash table (PFHT) [INFLOW’15]
– Path hashing [MSST’17]
– In PM, implement their persistent versions using our
proposed log-free consistency guarantee schemes
33
![Page 34: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/34.jpg)
Insertion Latency
➢ Level hashing has the best insertion performance in both DRAM and NVM
600
6000
0.4 0.5 0.6 0.7 0.8 0.9
Inse
rtio
nL
ate
ncy (
ns)
Load Factor
BCH PFHT
Path Level
DRAM NVM read/write latency: 200/600
2400
24000
0.4 0.5 0.6 0.7 0.8 0.9
Inse
rtio
nL
ate
ncy (
ns)
Load Factor
BCH PFHT
Path Level
34
![Page 35: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/35.jpg)
Update Latency
➢ Opportunistic log-free update scheme reduces the update latency by 15%∼52%, i.e., speeding up the updates by 1.2×− 2.1×
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Up
da
te L
ate
ncy (
ns)
Load Factor
BCH PFHT
Path Level
Level w/o Opp
35
![Page 36: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/36.jpg)
Search Latency
➢ The search latency of level hashing is close to that of BCH, which is much
lower than PFHT and path hashing
0
500
1000
1500
2000
Negative Search
0.8 0.80.6
Se
arc
h L
ate
ncy (
ns)
BCH
PFHT
Path
Level
0.6
Positive Search
36
![Page 37: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/37.jpg)
Resizing Time
➢ Level hashing reduces the resizing time by about 76%, i.e., speeding up
the resizing by 4.3×
0
50
100
150
200
250
NVM-200ns/600nsDRAM
The R
esiz
ing T
ime (
s)
BCH
PFHT
Path
Level-Trad
Level
37
![Page 38: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/38.jpg)
Concurrent Throughput
➢ Concurrent level hashing:
Support multiple-reader multiple-
writer concurrency via simply
using fine-grained locking
➢ Concurrent level hashing has
1.6×− 2.1× higher throughput
than libcuckoo1, due to locking
fewer slots for insertions90/10 70/30 50/50 30/70 10/900
3
6
9
12
15
18
Th
rou
gh
pu
t (M
re
qs/s
)
Libcu-2 Level-2 Libcu-4 Level-4
Libcu-8 Level-8 Libcu-16 Level-16
Search/Insertion Ratio (%)
[1] X. Li et al.. “Algorithmic improvements for fast concurrent cuckoo hashing”, Eurosys, 2014. 38
![Page 39: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/39.jpg)
Conclusion
➢ Traditional indexing techniques originally designed for
DRAM become inefficient in PM
➢ We propose level hashing, a write-optimized and high-
performance hashing index scheme for PM
– Write-optimized hash table structure
– Cost-efficient in-place resizing
– Log-free consistency guarantee
➢ 1.4×−3.0× speedup for insertion, 1.2×−2.1× speedup
for update, and over 4.3× speedup for resizing
39
![Page 40: Write-Optimized and High-Performance Hashing Index Scheme for ... · A token associated with each slot in the open-addressing hash tables –Indicate whether the slot is empty –A](https://reader033.fdocuments.in/reader033/viewer/2022042912/5f472c6f2be4ea31f15694e5/html5/thumbnails/40.jpg)
Thanks! Q&A(Poster #10)
Open-source code: https://github.com/Pfzuo/Level-Hashing