RCUArray: An RCU-like Parallel-Safe Distributed Resizable Array
By Louis Jenkins
RCUArray: An RCU-like Parallel-Safe Distributed Resizable Array By - - PowerPoint PPT Presentation
RCUArray: An RCU-like Parallel-Safe Distributed Resizable Array By Louis Jenkins The Problem Parallel-Safe Resizing Not inherently thread-safe to access memory while it is being resized Memory has to be moved from the smaller
By Louis Jenkins
Load Store
Load Store
Load Store
Load Store
Load Store
𝑇 = 𝑐1
P
𝑇 = 𝑐1
P
𝑇′ = 𝑐1
𝑇 = 𝑐1
P 𝑇′ = 𝑐1, 𝑐2
𝑇 = 𝑐1
P 𝑇′ = 𝑐1, 𝑐2
𝑇 = 𝑐1
𝑇′ = 𝑐1, 𝑐2
Reader Reader
Read-Copy-Update
Reader-Writer Locks
Read-Copy-Update
Reader-Writer Locks
Read-Copy-Update
Reader-Writer Locks
Locale #0 Locale #1 Locale #2 Locale #3
𝑇 = 𝑐1 𝑇 = 𝑐1 𝑇 = 𝑐1 𝑇 = 𝑐1
P P P P
Locale #0 Locale #1 Locale #2 Locale #3
𝑇 = 𝑐1 𝑇 = 𝑐1 𝑇 = 𝑐1 𝑇 = 𝑐1
P P P P 𝑐1
Locale #0 Locale #1 Locale #2 Locale #3
𝑇 = 𝑐1 𝑇 = 𝑐1 𝑇 = 𝑐1 𝑇 = 𝑐1
P P P P 𝑐1 Reader Reader Reader Reader
Locale #0 Locale #1 Locale #2 Locale #3
𝑇 = 𝑐1 𝑇 = 𝑐1 𝑇 = 𝑐1 𝑇 = 𝑐1
P P P P 𝑐1 Reader Reader Reader Reader
Locale #0 Locale #1 Locale #2 Locale #3 𝑇′ = 𝑐1, 𝑐2 𝑇′ = 𝑐1, 𝑐2 𝑇′ = 𝑐1, 𝑐2 𝑇′ = 𝑐1, 𝑐2 P P P P 𝑐1 Reader Reader Reader Reader 𝑐2
Locale #0 Locale #1 Locale #2 Locale #3 𝑇′ = 𝑐1, 𝑐2 𝑇′ = 𝑐1, 𝑐2 𝑇′ = 𝑐1, 𝑐2 𝑇′ = 𝑐1, 𝑐2 P P P P 𝑐1 Reader Reader Reader Reader 𝑐2
𝑡 𝑐
1
𝑡 𝑐
1
𝑆
Set of readers 𝑆 begin using snapshot 𝑡
𝑡 𝑐
1
𝑆
Writer acquires Cluster Lock
𝑡 𝑐
1
𝑆
Writer clones 𝑡 to create 𝑡′
𝑡 𝑐
1
𝑆 𝑡 𝑡′ 𝑐1 𝑆
Writer appends block 𝑐2 to 𝑡′
𝑡 𝑡′ 𝑐1 𝑆 𝑐2 𝑡 𝑡′ 𝑐1 𝑆
Writer updates current snapshot to 𝑡′
𝑡 𝑡′ 𝑐1 𝑆 𝑐2 𝑡 𝑡′ 𝑐1 𝑆 𝑐2
Set of readers 𝑆′ begin accessing 𝑡′
𝑡 𝑡′ 𝑐1 𝑆 𝑐2 𝑡 𝑡′ 𝑐1 𝑆 𝑐2 𝑆′
Readers 𝑆 finish using 𝑡
𝑡 𝑡′ 𝑐1 𝑐2 𝑡 𝑡′ 𝑐1 𝑆 𝑐2 𝑆′ 𝑆′
Reclaim 𝑡
𝑡′ 𝑐1 𝑐2 𝑡 𝑡′ 𝑐1 𝑐2 𝑆′ 𝑆′
Writer releases cluster lock
𝑡′ 𝑐1 𝑐2 𝑆′ 𝑡′ 𝑐1 𝑐2 𝑆′
Network Execution 26x faster (32 Nodes) Network Execution 20x faster (32 Nodes)
RCUArray as a Dynamic Heap
blocks