Date post: | 14-Apr-2017 |
Category: |
Technology |
Upload: | amr-abed |
View: | 703 times |
Download: | 0 times |
RingSTMPresented by: Amr Abed
Title“RingSTM: Scalable Transactions with a Single Atomic Instruction”
AuthorsMichael F. Spear, Maged M. Michael, and Christoph von Praun
Published inThe 20th annual symposium on Parallelism in algorithms and architectures (SPAA)
Year2008
About the paper
MotivationSystem OverviewHow it worksEvaluation
Outline
MotivationSystem OverviewHow it worksEvaluation
Outline
Motivation
Orec-based STMLocation-based metadataTX writing to W locations
O(W) CAS operationsCommitting R/W TX
O(R+W) overhead All validation done in CS
Ring STMTX-based metadataTX writing to W locations
No CAS operationsCommitting R/W TX
Single CAS operationBloom filters used for validation
MotivationSystem OverviewHow it worksEvaluation
Outline
Transaction
Write Buffer
StartTimestamp
Write FilterRead Filter
The Ring
41
42
43
40
44
46
39
45
WritingComplete
index
Ring Entry
CommitTimestamp
Write Filter
Status
0 0 0 0 0 0 0 0 0 0 0 0 0 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Bloom Filter
1 0 0 1 0 0 1 0 0 0 0 0 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Bloom Filter
Hash Functions
A
171013
Inserting A
1 0 0 1 0 0 1 0 0 0 0 0 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Bloom Filter
Hash Functions
B
27912
Inserting B
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Bloom Filter
Hash Functions
A
171013
Searching for A
Positive
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Bloom Filter
Hash Functions
C
371012
Searching for C
Negativ
e
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Bloom Filter
Hash Functions
D
271012
Searching for D
False Positive
MotivationSystem OverviewHow it worksEvaluation
Outline
Start
index
New Transaction
41
42
43
40
44
46
39
45 WritingComplete
Write Buffer
Start Time43
Write FilterRead Filter
1 0 0 1 0 0 1 0 0 0 0 0 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 1 0 0 1 0 0 0 1 0 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
On Write
Hash Functions
Address
171012
Write filter
Add address to Write set
1 0 0 1 0 0 1 0 0 0 0 0 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 1 0 0 1 0 0 0 1 0 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
On Write
Hash Functions
Address
171012
Write filter
Write Buffer
Value
Address
Add <address, value> to Write buffer
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
On Read
Hash Functions
Address
171013
Address is in Write set
Write filter
On Read
Get value from write buffer
Write Buffer
Value
Address
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Hash Functions
Address
171013
Write filter
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
On Read
Hash Functions
Address
371012
Address is not in Write Set
Write filter
On Read
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Hash Functions
Address
371012
Get value from memory
Write filter
Memory
Value
Address
1 1 0 1 1 0 1 0 0 0 1 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 0 0 1 1 0 1 0 0 0 0 1 1 00015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
On Read
Hash Functions
Address
371012
Add address to read set
Read filter
Write Buffer
Start Time43
Write FilterRead Filter
index
On Read
41
42
43
40
44
46
39
45Read Filter
Start Time44
Check for conflicts
Write Buffer
Start Time43
Write FilterRead Filter
index
On Commit
41
42
43
40
44
46
39
45
47
Add new entry, and update index
Write Buffer
Start Time43
Write FilterRead Filter
index
On Commit
41
42
43
40
44
46
47
45
Write Filter
Check for conflicting writers
On Commit
Memory
Address
WriteBuffer
Address
If no conflicts, write to memory
index
On Commit
41
42
43
40
44
46
47
45 4445
46
47
Set status to complete
MotivationSystem OverviewHow it worksEvaluation
Outline
Results
Results
Results
Use of Bloom filter accelerates validation Single RMW operation to commit Trade-off between size of Bloom filter and
false conflicts Ring size is a bottleneck for large number of
threads
Summary
Thank you