an innovative approach for achieving …sathya_p/aadda/aadda2018 info...an innovative approach for...
TRANSCRIPT
An Innovative Approach for Achieving Composability inConcurrent Systems using Multi-Version Object Based
STMs
Sandeep Kulkarni2 Sweta Kumari1 Sathya Peri1
Archit Somani1
1Department of Computer Science Engineering, IIT Hyderabad2Department of Computer Science, Michigan State University
IIT Hyderbad MV-OSTMs 1 / 37
Outline
1 Introduction to STMs
2 Correctness Criteria of STMs
3 Problem with read-write STM
4 Object Based STMs
5 Motivation towards MV-OSTM
6 Correctness of MV-OSTM
7 Conclusion
8 Future Work
IIT Hyderbad MV-OSTMs 2 / 37
Outline
1 Introduction to STMs
2 Correctness Criteria of STMs
3 Problem with read-write STM
4 Object Based STMs
5 Motivation towards MV-OSTM
6 Correctness of MV-OSTM
7 Conclusion
8 Future Work
IIT Hyderbad MV-OSTMs 3 / 37
Introduction to STMs
Software Transactional Memory
What is a transaction?
Sequence of instructions executing in memory.
Satisfying ACI
What is Software Transactional Memory?
A parallel programming paradigm
Avoids concurrency overheads at programmers level
Execute code optimistically
Methods of STMs :
Read
Write
TryC
IIT Hyderbad MV-OSTMs 4 / 37
Introduction to STMs
Software Transactional Memory
What is a transaction?
Sequence of instructions executing in memory.
Satisfying ACI
What is Software Transactional Memory?
A parallel programming paradigm
Avoids concurrency overheads at programmers level
Execute code optimistically
Methods of STMs :
Read
Write
TryC
IIT Hyderbad MV-OSTMs 4 / 37
Introduction to STMs
Software Transactional Memory
What is a transaction?
Sequence of instructions executing in memory.
Satisfying ACI
What is Software Transactional Memory?
A parallel programming paradigm
Avoids concurrency overheads at programmers level
Execute code optimistically
Methods of STMs :
Read
Write
TryC
IIT Hyderbad MV-OSTMs 4 / 37
Illustration of STMs methods
T2T1
T1’s Local Log T2’s Local Log
Memory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
Write to local Log
T2’s Local Log
Memory
T1’s Local Log
T2T1
Memory
T1’s Local Log T2’s Local Log
T2
Validate T1’s Log
T1
Memory
T2’s Local Log
T2T1
T1’s Log Permanent
Memory
T2’s Local Log
T1 Committed
T1
T1’s Log Permanent T2’s Log Validated
T2
Memory
T1 Committed
T1
T1’s Log Permanent
T2
Memory
T1 Committed T2 Aborted
Figure: Working of STM System
IIT Hyderbad MV-OSTMs 5 / 37
Illustration of STMs methods
T2T1
T1’s Local Log T2’s Local Log
Memory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
Write to local Log
T2’s Local Log
Memory
T1’s Local Log
T2T1
Memory
T1’s Local Log T2’s Local Log
T2
Validate T1’s Log
T1
Memory
T2’s Local Log
T2T1
T1’s Log Permanent
Memory
T2’s Local Log
T1 Committed
T1
T1’s Log Permanent T2’s Log Validated
T2
Memory
T1 Committed
T1
T1’s Log Permanent
T2
Memory
T1 Committed T2 Aborted
Figure: Working of STM System
IIT Hyderbad MV-OSTMs 5 / 37
Illustration of STMs methods
T2T1
T1’s Local Log T2’s Local Log
Memory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
Write to local Log
T2’s Local Log
Memory
T1’s Local Log
T2T1
Memory
T1’s Local Log T2’s Local Log
T2
Validate T1’s Log
T1
Memory
T2’s Local Log
T2T1
T1’s Log Permanent
Memory
T2’s Local Log
T1 Committed
T1
T1’s Log Permanent T2’s Log Validated
T2
Memory
T1 Committed
T1
T1’s Log Permanent
T2
Memory
T1 Committed T2 Aborted
Figure: Working of STM System
IIT Hyderbad MV-OSTMs 5 / 37
Illustration of STMs methods
T2T1
T1’s Local Log T2’s Local Log
Memory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
Write to local Log
T2’s Local Log
Memory
T1’s Local Log
T2T1
Memory
T1’s Local Log T2’s Local Log
T2
Validate T1’s Log
T1
Memory
T2’s Local Log
T2T1
T1’s Log Permanent
Memory
T2’s Local Log
T1 Committed
T1
T1’s Log Permanent T2’s Log Validated
T2
Memory
T1 Committed
T1
T1’s Log Permanent
T2
Memory
T1 Committed T2 Aborted
Figure: Working of STM System
IIT Hyderbad MV-OSTMs 5 / 37
Illustration of STMs methods
T2T1
T1’s Local Log T2’s Local Log
Memory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
Write to local Log
T2’s Local Log
Memory
T1’s Local Log
T2T1
Memory
T1’s Local Log T2’s Local Log
T2
Validate T1’s Log
T1
Memory
T2’s Local Log
T2T1
T1’s Log Permanent
Memory
T2’s Local Log
T1 Committed
T1
T1’s Log Permanent T2’s Log Validated
T2
Memory
T1 Committed
T1
T1’s Log Permanent
T2
Memory
T1 Committed T2 Aborted
Figure: Working of STM System
IIT Hyderbad MV-OSTMs 5 / 37
Illustration of STMs methods
T2T1
T1’s Local Log T2’s Local Log
Memory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
Write to local Log
T2’s Local Log
Memory
T1’s Local Log
T2T1
Memory
T1’s Local Log T2’s Local Log
T2
Validate T1’s Log
T1
Memory
T2’s Local Log
T2T1
T1’s Log Permanent
Memory
T2’s Local Log
T1 Committed
T1
T1’s Log Permanent T2’s Log Validated
T2
Memory
T1 Committed
T1
T1’s Log Permanent
T2
Memory
T1 Committed T2 Aborted
Figure: Working of STM System
IIT Hyderbad MV-OSTMs 5 / 37
Illustration of STMs methods
T2T1
T1’s Local Log T2’s Local Log
Memory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
Write to local Log
T2’s Local Log
Memory
T1’s Local Log
T2T1
Memory
T1’s Local Log T2’s Local Log
T2
Validate T1’s Log
T1
Memory
T2’s Local Log
T2T1
T1’s Log Permanent
Memory
T2’s Local Log
T1 Committed
T1
T1’s Log Permanent T2’s Log Validated
T2
Memory
T1 Committed
T1
T1’s Log Permanent
T2
Memory
T1 Committed T2 Aborted
Figure: Working of STM System
IIT Hyderbad MV-OSTMs 5 / 37
Illustration of STMs methods
T2T1
T1’s Local Log T2’s Local Log
Memory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
Write to local Log
T2’s Local Log
Memory
T1’s Local Log
T2T1
Memory
T1’s Local Log T2’s Local Log
T2
Validate T1’s Log
T1
Memory
T2’s Local Log
T2T1
T1’s Log Permanent
Memory
T2’s Local Log
T1 Committed
T1
T1’s Log Permanent T2’s Log Validated
T2
Memory
T1 Committed
T1
T1’s Log Permanent
T2
Memory
T1 Committed T2 Aborted
Figure: Working of STM System
IIT Hyderbad MV-OSTMs 5 / 37
Illustration of STMs methods
T2T1
T1’s Local Log T2’s Local Log
Memory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
Write to local Log
T2’s Local Log
Memory
T1’s Local Log
T2T1
Memory
T1’s Local Log T2’s Local Log
T2
Validate T1’s Log
T1
Memory
T2’s Local Log
T2T1
T1’s Log Permanent
Memory
T2’s Local Log
T1 Committed
T1
T1’s Log Permanent T2’s Log Validated
T2
Memory
T1 Committed
T1
T1’s Log Permanent
T2
Memory
T1 Committed T2 Aborted
Figure: Working of STM System
IIT Hyderbad MV-OSTMs 5 / 37
Illustration of STMs methods
T2T1
T1’s Local Log T2’s Local Log
Memory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
Write to local Log
T2’s Local Log
Memory
T1’s Local Log
T2T1
Memory
T1’s Local Log T2’s Local Log
T2
Validate T1’s Log
T1
Memory
T2’s Local Log
T2T1
T1’s Log Permanent
Memory
T2’s Local Log
T1 Committed
T1
T1’s Log Permanent T2’s Log Validated
T2
Memory
T1 Committed
T1
T1’s Log Permanent
T2
Memory
T1 Committed T2 Aborted
Figure: Working of STM System
IIT Hyderbad MV-OSTMs 5 / 37
Illustration of STMs methods
T2T1
T1’s Local Log T2’s Local Log
Memory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
Write to local Log
T2’s Local Log
Memory
T1’s Local Log
T2T1
Memory
T1’s Local Log T2’s Local Log
T2
Validate T1’s Log
T1
Memory
T2’s Local Log
T2T1
T1’s Log Permanent
Memory
T2’s Local Log
T1 Committed
T1
T1’s Log Permanent T2’s Log Validated
T2
Memory
T1 Committed
T1
T1’s Log Permanent
T2
Memory
T1 Committed T2 Aborted
Figure: Working of STM System
IIT Hyderbad MV-OSTMs 5 / 37
Illustration of STMs methods
T2T1
T1’s Local Log T2’s Local Log
Memory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T1’s Local Log T2’s Local Log
Memory
Read fromMemory
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
T2’s Local Log
Memory
T1’s Local Log
Write to local Log
T2T1
Write to local Log
T2’s Local Log
Memory
T1’s Local Log
T2T1
Memory
T1’s Local Log T2’s Local Log
T2
Validate T1’s Log
T1
Memory
T2’s Local Log
T2T1
T1’s Log Permanent
Memory
T2’s Local Log
T1 Committed
T1
T1’s Log Permanent T2’s Log Validated
T2
Memory
T1 Committed
T1
T1’s Log Permanent
T2
Memory
T1 Committed T2 Aborted
Figure: Working of STM System
IIT Hyderbad MV-OSTMs 5 / 37
Outline
1 Introduction to STMs
2 Correctness Criteria of STMs
3 Problem with read-write STM
4 Object Based STMs
5 Motivation towards MV-OSTM
6 Correctness of MV-OSTM
7 Conclusion
8 Future Work
Correctness of STM System
Correcness criteria for STMs (Opacity)
A history H is opaque if there exists a serial history S s.t.1 Operations of H and S are same2 S respects real time order ≺RT
H and3 ∀ trans(Ti ) ∈ S are legal in S
IIT Hyderbad MV-OSTMs 7 / 37
Correctness of STM System
Correcness criteria for STMs (Opacity)
A history H is opaque if there exists a serial history S s.t.1 Operations of H and S are same2 S respects real time order ≺RT
H and3 ∀ trans(Ti ) ∈ S are legal in S
IIT Hyderbad MV-OSTMs 7 / 37
Correctness of STM System
Example of opacity
H: r1(x,0)w2(x,10)w2(y,10)C2r1(y,A)A1
w2(x , 10) w2(y , 10)
A1r1(x , 0)
C2
T1
T2
r1(y ,A)
Figure: Opaque History H
A1r1(y ,A)r1(x , 0)T1
w2(x , 10) w2(y , 10)C2
T2
Figure: Equivalent serial history S: T1, T2
IIT Hyderbad MV-OSTMs 8 / 37
Correctness of STM System
Example of opacity
H: r1(x,0)w2(x,10)w2(y,10)C2r1(y,A)A1
w2(x , 10) w2(y , 10)
A1r1(x , 0)
C2
T1
T2
r1(y ,A)
Figure: Opaque History H
A1r1(y ,A)r1(x , 0)T1
w2(x , 10) w2(y , 10)C2
T2
Figure: Equivalent serial history S: T1, T2
IIT Hyderbad MV-OSTMs 8 / 37
Outline
1 Introduction to STMs
2 Correctness Criteria of STMs
3 Problem with read-write STM
4 Object Based STMs
5 Motivation towards MV-OSTM
6 Correctness of MV-OSTM
7 Conclusion
8 Future Work
IIT Hyderbad MV-OSTMs 9 / 37
Problem with read-write STM
k2 k5 k7 k8 k9
Figure: A sample concurrent object
r1(k5) w2(k5) r1(k5)w2(k7)
T2
r2(k2) r2(k5) r1(k8)r1(k2)
T1
r1(k2) r2(k7)
Figure: Tree Structure : conflicts are (r1(k5), w2(k5)) and (w2(k5), r1(k5)
IIT Hyderbad MV-OSTMs 10 / 37
Problem at read-write level
r1(k5) w2(k5) r1(k5)w2(k7)
T2
r2(k2) r2(k5) r2(k7)r1(k2) r1(k8)r1(k2)
T1
Figure: Tree Structure
T2T1
Figure: Cycle (Not Serial)
IIT Hyderbad MV-OSTMs 11 / 37
Problem at read-write level
r1(k5) w2(k5) r1(k5)w2(k7)
T2
r2(k2) r2(k5) r2(k7)r1(k2) r1(k8)r1(k2)
T1
Figure: Tree Structure
T2T1
Figure: Cycle (Not Serial)
IIT Hyderbad MV-OSTMs 11 / 37
Outline
1 Introduction to STMs
2 Correctness Criteria of STMs
3 Problem with read-write STM
4 Object Based STMs
5 Motivation towards MV-OSTM
6 Correctness of MV-OSTM
7 Conclusion
8 Future Work
IIT Hyderbad MV-OSTMs 12 / 37
OSTMIntroduction
Object-based STMs (OSTM) operate on higher level objects ratherthan primitive read & writes which act upon memory locations.
OSTM model can adapted:
OSTM for stacks may export t push, t pop & t peek.OSTM for sets may export t begin(), t insert(), t del(), t lookup() andtryC().
IIT Hyderbad MV-OSTMs 13 / 37
OSTMIntroduction
Object-based STMs (OSTM) operate on higher level objects ratherthan primitive read & writes which act upon memory locations.
OSTM model can adapted:
OSTM for stacks may export t push, t pop & t peek.OSTM for sets may export t begin(), t insert(), t del(), t lookup() andtryC().
IIT Hyderbad MV-OSTMs 13 / 37
OSTMExecution at layer-1
k2 k5 k7 k8 k9
Figure: A sample representing a OSTM object
Layer-1: Lookups & Deletes
Layer-0: Reads
r2(k2) r2(k5) r2(k7) w2(k7) r1(k2)
d2(k7)
T2
c2
r1(k5) r1(k5)w2(k5)
l1(k5) l1(k8)
r1(k2) r1(k8)
T1
& Writes
Figure: Tree Structure : no conflict at Layer-1
IIT Hyderbad MV-OSTMs 14 / 37
OSTMExecution at layer-1
d2(k7)
T2
l1(k5) l1(k8)
T1
Figure: Pruned Tree
l1(k8) d2(k7)
T2
l1(k5)
T1
Figure: Sequential Schedule
T2T1
Figure: Serial History
IIT Hyderbad MV-OSTMs 15 / 37
OSTMExecution at layer-1
d2(k7)
T2
l1(k5) l1(k8)
T1
Figure: Pruned Tree
l1(k8) d2(k7)
T2
l1(k5)
T1
Figure: Sequential Schedule
T2T1
Figure: Serial History
IIT Hyderbad MV-OSTMs 15 / 37
OSTMExecution at layer-1
d2(k7)
T2
l1(k5) l1(k8)
T1
Figure: Pruned Tree
l1(k8) d2(k7)
T2
l1(k5)
T1
Figure: Sequential Schedule
T2T1
Figure: Serial HistoryIIT Hyderbad MV-OSTMs 15 / 37
OSTMProblem with OSTM
T1
T2
A1
C2
Lu1(ht, k2, nil)
Ins2(ht, k2, v2) Del2(ht, k1, nil)
Lu1(ht, k1,Abort)
Figure: Single version OSTM
IIT Hyderbad MV-OSTMs 16 / 37
Outline
1 Introduction to STMs
2 Correctness Criteria of STMs
3 Problem with read-write STM
4 Object Based STMs
5 Motivation towards MV-OSTM
6 Correctness of MV-OSTM
7 Conclusion
8 Future Work
IIT Hyderbad MV-OSTMs 17 / 37
Proposed Algorithm : MV-OSTMAdvantages of multi-version over single version OSTM
T1
T2
A1
C2
Lu1(ht, k2, nil)
Ins2(ht, k2, v2) Del2(ht, k1, nil)
Lu1(ht, k1,Abort)
Figure: Single version OSTM
T1
T2
C2
C1Lu1(ht, k2, nil)
Ins2(ht, k2, v2) Del2(ht, k1, nil)
Lu1(ht, k1, nil)
Figure: Multi-version OSTM (MV-OSTM) : (T1, T2)
IIT Hyderbad MV-OSTMs 18 / 37
Proposed Algorithm : MV-OSTMAdvantages of multi-version over single version OSTM
T1
T2
A1
C2
Lu1(ht, k2, nil)
Ins2(ht, k2, v2) Del2(ht, k1, nil)
Lu1(ht, k1,Abort)
Figure: Single version OSTM
T1
T2
C2
C1Lu1(ht, k2, nil)
Ins2(ht, k2, v2) Del2(ht, k1, nil)
Lu1(ht, k1, nil)
Figure: Multi-version OSTM (MV-OSTM) : (T1, T2)
IIT Hyderbad MV-OSTMs 18 / 37
Proposed Algorithm : MV-OSTMIllustration of data structure
a) Underlying DS
k7 k8 +∞k1−∞ k5
IIT Hyderbad MV-OSTMs 19 / 37
Proposed Algorithm : MV-OSTMIllustration of data structure cont’d..
VL(Version List)
RVL(Return Value List)
b) DS for maintaining Versions
k1
0 v0 rvl1T
201675 2827 30
15 v5 F rvl2 25 v10 F
12 18 23 35
rvl3
IIT Hyderbad MV-OSTMs 20 / 37
Proposed Algorithm : MV-OSTMLookup method
VL(Version List)
RVL(Return Value List)
k1
0 v0 rvl1T
13
201675 2827 30
15 v5 F rvl2 25 v10 F
12 18 23 35
rvl3
Figure: Lookup on key k1 by T13
IIT Hyderbad MV-OSTMs 21 / 37
Proposed Algorithm : MV-OSTMLookup method cont’d..
VL(Version List)
RVL(Return Value List)
k1
0 v0 rvl1T
13
201675 2827 30
15 v5 F rvl2 25 v10 F
12 18 23 35
rvl3
Figure: T13 searching appropriate place in version list of k1
IIT Hyderbad MV-OSTMs 22 / 37
Proposed Algorithm : MV-OSTMLookup method cont’d..
VL(Version List)
RVL(Return Value List)
k1
0 v0 rvl1T
13 201675 2827 30
15 v5 F rvl2 25 v10 F
12 18 23 35
rvl3
Figure: T13 successfully added into rvl1
IIT Hyderbad MV-OSTMs 23 / 37
Proposed Algorithm : MV-OSTMtryC : Insert method
VL(Version List)
RVL(Return Value List)
k1
0 v0 rvl1T
13
40
201675 2827 30
15 v5 F rvl2 25 v10 F
12 18 23 35
rvl3
Figure: Insert a version of key k1 by T40
IIT Hyderbad MV-OSTMs 24 / 37
Proposed Algorithm : MV-OSTMtryC : Insert method cont’d..
VL(Version List)
RVL(Return Value List)
k1
0 v0 rvl1T
13
40
201675 2827 30
15 v5 F rvl2 25 v10 F
12 18 23 35
rvl3
Figure: T40 searching appropriate place in version list of k1
IIT Hyderbad MV-OSTMs 25 / 37
Proposed Algorithm : MV-OSTMtryC : Insert method cont’d..
k1
0 v0 rvl1T
13 201675 2827 30
15 v5 F rvl2
12 18 23 35
40 F rvl3v1525 F rvl3v10
Figure: T40 successfully created a new version of k1
IIT Hyderbad MV-OSTMs 26 / 37
Proposed Algorithm : MV-OSTMtryC : Insert method cont’d..
VL(Version List)
RVL(Return Value List)
k1
0 v0 rvl1T
13
40
201675 2827 30
15 v5 F rvl2 25 v10 F
12 18 23
rvl3
45c
Figure: Insert a version of key k1 by T40
IIT Hyderbad MV-OSTMs 27 / 37
Proposed Algorithm : MV-OSTMtryC : Insert method cont’d..
VL(Version List)
RVL(Return Value List)
k1
0 v0 rvl1T
13
40
201675 2827 30
15 v5 F rvl2 25 v10 F
12 18 23
rvl3
45c
Figure: T40 searching appropriate place in version list of k1
IIT Hyderbad MV-OSTMs 28 / 37
Proposed Algorithm : MV-OSTMtryC : Insert method cont’d..
VL(Version List)
RVL(Return Value List)
k1
0 v0 rvl1T
13
40
201675 2827 30
15 v5 F rvl2 25 v10 F
12 18 23
rvl3
45c
Figure: Abort T40 : T45 committed before T40
IIT Hyderbad MV-OSTMs 29 / 37
Outline
1 Introduction to STMs
2 Correctness Criteria of STMs
3 Problem with read-write STM
4 Object Based STMs
5 Motivation towards MV-OSTM
6 Correctness of MV-OSTM
7 Conclusion
8 Future Work
IIT Hyderbad MV-OSTMs 30 / 37
Correctness of MV-OSTM
Theorem
Any history H generated by MV-OSTM algorithm with a given versionorder �, if OPG (H,�) is acyclic, then H is opaque.
IIT Hyderbad MV-OSTMs 31 / 37
Outline
1 Introduction to STMs
2 Correctness Criteria of STMs
3 Problem with read-write STM
4 Object Based STMs
5 Motivation towards MV-OSTM
6 Correctness of MV-OSTM
7 Conclusion
8 Future Work
IIT Hyderbad MV-OSTMs 32 / 37
Conclusion
MV-OSTM is opaque.
We have proposed a new STM as MV-OSTM which providing thegreater concurrency in terms of the number of aborts with the help ofmultiple versions and composability.
Lookup operation always succeeds.
Delete operation is logically deletes, in that sense it’s lazy.
Transactions are composable [Harris et.al, 2005], [Ziv et.al, 2015].
IIT Hyderbad MV-OSTMs 33 / 37
Conclusion
MV-OSTM is opaque.
We have proposed a new STM as MV-OSTM which providing thegreater concurrency in terms of the number of aborts with the help ofmultiple versions and composability.
Lookup operation always succeeds.
Delete operation is logically deletes, in that sense it’s lazy.
Transactions are composable [Harris et.al, 2005], [Ziv et.al, 2015].
IIT Hyderbad MV-OSTMs 33 / 37
Conclusion
MV-OSTM is opaque.
We have proposed a new STM as MV-OSTM which providing thegreater concurrency in terms of the number of aborts with the help ofmultiple versions and composability.
Lookup operation always succeeds.
Delete operation is logically deletes, in that sense it’s lazy.
Transactions are composable [Harris et.al, 2005], [Ziv et.al, 2015].
IIT Hyderbad MV-OSTMs 33 / 37
Conclusion
MV-OSTM is opaque.
We have proposed a new STM as MV-OSTM which providing thegreater concurrency in terms of the number of aborts with the help ofmultiple versions and composability.
Lookup operation always succeeds.
Delete operation is logically deletes, in that sense it’s lazy.
Transactions are composable [Harris et.al, 2005], [Ziv et.al, 2015].
IIT Hyderbad MV-OSTMs 33 / 37
Conclusion
MV-OSTM is opaque.
We have proposed a new STM as MV-OSTM which providing thegreater concurrency in terms of the number of aborts with the help ofmultiple versions and composability.
Lookup operation always succeeds.
Delete operation is logically deletes, in that sense it’s lazy.
Transactions are composable [Harris et.al, 2005], [Ziv et.al, 2015].
IIT Hyderbad MV-OSTMs 33 / 37
Outline
1 Introduction to STMs
2 Correctness Criteria of STMs
3 Problem with read-write STM
4 Object Based STMs
5 Motivation towards MV-OSTM
6 Correctness of MV-OSTM
7 Conclusion
8 Future Work
IIT Hyderbad MV-OSTMs 34 / 37
ProgressFuture Work
Garbage Collection.
We will extend it for K-version MV-OSTM.
We will implement our proposed protocol and compare theperformance with existing Object-Based STMs [Hassan et.al, 2014].
Nesting : open [Yang et.al, 2007] and close.
IIT Hyderbad MV-OSTMs 35 / 37
ProgressFuture Work
Garbage Collection.
We will extend it for K-version MV-OSTM.
We will implement our proposed protocol and compare theperformance with existing Object-Based STMs [Hassan et.al, 2014].
Nesting : open [Yang et.al, 2007] and close.
IIT Hyderbad MV-OSTMs 35 / 37
ProgressFuture Work
Garbage Collection.
We will extend it for K-version MV-OSTM.
We will implement our proposed protocol and compare theperformance with existing Object-Based STMs [Hassan et.al, 2014].
Nesting : open [Yang et.al, 2007] and close.
IIT Hyderbad MV-OSTMs 35 / 37
ProgressFuture Work
Garbage Collection.
We will extend it for K-version MV-OSTM.
We will implement our proposed protocol and compare theperformance with existing Object-Based STMs [Hassan et.al, 2014].
Nesting : open [Yang et.al, 2007] and close.
IIT Hyderbad MV-OSTMs 35 / 37
References
1 Harris, Tim and Marlow, Simon and Peyton-Jones, Simon and Herlihy, Maurice.Composable memory transactions, Proceedings of the tenth ACM SIGPLAN symposiumon Principles and practice of parallel programming, 2005
2 Gerhard Weikum and Gottfried Vossen. 2001. Transactional Information Systems:Theory, Algorithms, and the Practice of Concurrency Control and Recovery. MorganKaufmann Publishers Inc., San Francisco, CA, USA
3 Ziv, Ofri and Aiken, Alex and Golan-Gueta, Guy and Ramalingam, G and Sagiv, Mooly,Composing concurrency control, Proceedings of the 36th ACM SIGPLAN Conference onProgramming Language Design and Implementation, 2015
4 Kuznetsov, Petr and Peri, Sathya, Non-interference and Local Correctness inTransactional Memory, ICDCN, 2014
5 Hassan, Ahmed and Palmieri, Roberto and Ravindran, Binoy, Optimistic TransactionalBoosting, Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practiceof Parallel Programming, PPoPP ’14
6 Priyanka Kumar, Sathya Peri, and K. Vidyasankar. A TimeStamp Based Multi-versionSTM Algorithm. In ICDCN, pages 212–226, 2014
7 Ni, Yang and Menon, Vijay S. and Adl-Tabatabai, Ali-Reza and Hosking, Antony L. andHudson, Richard L. and Moss, J. Eliot B. and Saha, Bratin and Shpeisman, Tatiana,Open Nesting in Software Transactional Memory, PPoPP ’07
IIT Hyderbad MV-OSTMs 36 / 37
IIT Hyderbad MV-OSTMs 37 / 37