Abort Free SemanticTM by Abort Free SemanticTM by Dependency Aware Scheduling Dependency Aware Scheduling of Transactional Instructions of Transactional Instructions Shlomi Dolev Ben-Gurion University of the Negev Israel WTM 2013 Panagiota Fatourou University of Crete & FORTH-ICS Greece Eleftherios Kosmas University of Crete & FORTH-ICS Greece
16
Embed
Abort Free SemanticTM by Dependency Aware Scheduling of Transactional Instructions Shlomi Dolev Ben-Gurion University of the Negev Israel WTM 2013 Panagiota.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Abort Free SemanticTM by Abort Free SemanticTM by Dependency Aware Scheduling Dependency Aware Scheduling of Transactional Instructionsof Transactional Instructions
Shlomi DolevBen-Gurion University of the Negev
Israel
WTM 2013
Panagiota FatourouUniversity of Crete & FORTH-ICS
Greece
Eleftherios KosmasUniversity of Crete & FORTH-ICS
Greece
WTM 2013S. Dolev & P. Fatourou & E. Kosmas
When two transactions conflict, most TM systems abort one of them to ensure consistency
Ideally: All transactions should commit Parallelism should not be sacrificed
TMs that never abort transactions are highly desirable support of irrevocable transactions avoid the cost of re-executing aborted transactions
Two transactions conflict, if they both access the same t-variable and at least one of these accesses is a
write
Introduction
WTM 2013S. Dolev & P. Fatourou & E. Kosmas
SemanticTM
an opaque TM algorithm
no transaction ever aborts guarantees wait-freedom/local progress for the
execution of transactions
fine-grain parallelism at the transactional instruction level
An execution of a TM algorithm is opaque if it satisfies strict serializability and active
transactions read “consistent” values for t-variables
Our Result
WTM 2013S. Dolev & P. Fatourou & E. Kosmas
Transaction Level Parallelism
p1 p2 pn
2. T1.read(z)
x y z w
1. T1.read(x)
5. T1.write(w)
4. T1.read(w)
3. T1.write(y)
T2.read
T2.write
T2.write
T2.read
Tm.read
Tm.read
Tm.read
T2T1 Tm
WTM 2013S. Dolev & P. Fatourou & E. Kosmas
Transactional Instruction Level Parallelism
p1 p2 pn
2. T1.read
x y z w
1. T1.read
5. T1.write
4.T1.read3. T1.write
dependencies may exist between instructions of the same transaction
T2.read
T2.write
T2.write
T2.read
Tm.read
Tm.read
Tm.read
T2 Tm
WTM 2013S. Dolev & P. Fatourou & E. Kosmas
SemanticTM
p1 p2 pn
T1.read
x y z w
T1.read
T1.write
T1.readT1.write
T2.readT2.write
T2.write
T2.read
Tm.readTm.read
Tm.read
t-var lists
a scheduler places transactional intructions into t-var lists together with their dependencies
transactions are processed by the scheduler the one after the other each process randomly chooses a t-var list and executes its ready instructions no conflicts occur between transactions
p3
For relatively simple transactions the work of the scheduler can be done at compile time.
WTM 2013S. Dolev & P. Fatourou & E. Kosmas
If the execution of a transactional instruction e2 depends on the execution of a transactional instruction e1
there is a dependency between e1 and e2
input dependency for e2
output dependency for e1
A dependency between a read and a write instruction → data dependency a cond and a read (or a write) instruction → control