Coarse-Grained Transactions Eric Koskinen University of Cambridge - - PowerPoint PPT Presentation

coarse grained transactions
SMART_READER_LITE
LIVE PREVIEW

Coarse-Grained Transactions Eric Koskinen University of Cambridge - - PowerPoint PPT Presentation

Coarse-Grained Transactions Eric Koskinen University of Cambridge 20 January 2010 Joint work with Matthew Parkinson, Maurice Herlihy Wednesday, 20 January 2010 Abstract Data Types global SkipList set; atomic { atomic { set.Add(3); if


slide-1
SLIDE 1

Coarse-Grained Transactions

Eric Koskinen University of Cambridge 20 January 2010 Joint work with Matthew Parkinson, Maurice Herlihy

Wednesday, 20 January 2010

slide-2
SLIDE 2

Abstract Data Types

atomic { set.Add(3); set.Rm(5) } atomic { if set.Has(6) then set.Rm(7) } global SkipList set;

Wednesday, 20 January 2010

slide-3
SLIDE 3

Abstract Data Types

atomic { set.Add(3); set.Rm(5) } atomic { if set.Has(6) then set.Rm(7) } global SkipList set;

ADT Operations

Wednesday, 20 January 2010

slide-4
SLIDE 4

Abstract Data Types

atomic { set.Add(3); set.Rm(5) } atomic { if set.Has(6) then set.Rm(7) } (Add3) (Has6) (Rm5) (Rm7) T1 T2 global SkipList set;

ADT Operations

Wednesday, 20 January 2010

slide-5
SLIDE 5

Abstract Data Types

atomic { set.Add(3); set.Rm(5) } atomic { if set.Has(6) then set.Rm(7) } (cmt) (Add3) (Has6) (Rm5) (Rm7) T1 T2 global SkipList set;

ADT Operations

Wednesday, 20 January 2010

slide-6
SLIDE 6

Abstract Data Types

atomic { set.Add(3); set.Rm(5) } atomic { if set.Has(6) then set.Rm(7) } (cmt) (Add3) (Has6) (Rm5) (Rm7) T1 T2

Abort!

global SkipList set;

ADT Operations

Wednesday, 20 January 2010

slide-7
SLIDE 7

Abstract Data Types

atomic { set.Add(3); set.Rm(5) } atomic { if set.Has(6) then set.Rm(7) } (cmt) (cmt) (Add3) (Has6) (Rm5) (Rm7) T1 T2

Abort!

global SkipList set;

ADT Operations

Wednesday, 20 January 2010

slide-8
SLIDE 8

Abstract Data Types

atomic { set.Add(3); set.Rm(5) } atomic { if set.Has(6) then set.Rm(7) } (cmt) (cmt) (Add3) (Has6) (Rm5) (Rm7) T1 T2

Abort! Abort!

global SkipList set;

ADT Operations

Wednesday, 20 January 2010

slide-9
SLIDE 9

Abstract Data Types

  • Low-level synchronization (r/w conflicts)

impairs performance

  • So how can operations be synchronized?

Wednesday, 20 January 2010

slide-10
SLIDE 10

what if skiplist is linearizable?

Wednesday, 20 January 2010

slide-11
SLIDE 11

Abstract Data Types

atomic { set.Add(3); set.Rm(5) } atomic { if set.Has(6) then set.Rm(7) } (Add3) (Has6) (Rm5) (cmt) (Rm7) (cmt) T1 T2 global SkipList set;

Wednesday, 20 January 2010

slide-12
SLIDE 12

Abstract Data Types

atomic { set.Add(3); set.Rm(5) } atomic { if set.Has(6) then set.Rm(7) } (Add3) (Has6) (Rm5) (cmt) (Rm7) (cmt) T1 T2 global SkipList set;

Wednesday, 20 January 2010

slide-13
SLIDE 13

Abstract Data Types

atomic { set.Add(3); set.Rm(5) } atomic { if set.Has(6) then set.Rm(7) } (Add3) (Has6) (Rm5) (cmt) (Rm7) (cmt) T1 T2 global SkipList set;

Wednesday, 20 January 2010

slide-14
SLIDE 14

Abstract Data Types

atomic { set.Add(3); set.Rm(5) } atomic { if set.Has(6) then set.Rm(7) } (Add3) (Has6) (Rm5) (cmt) (Rm7) (cmt) T1 T2 global SkipList set; (Add3) (Has6) (Rm5) (cmt) (Rm7) (cmt) T1 T2

  • Equiv. Serial History

Wednesday, 20 January 2010

slide-15
SLIDE 15

Abstract Data Types

  • Abstract data types ...

Wednesday, 20 January 2010

slide-16
SLIDE 16

Abstract Data Types

  • Abstract data types ...
  • ... require abstract synchronization:

Wednesday, 20 January 2010

slide-17
SLIDE 17

Abstract Data Types

  • Abstract data types ...
  • ... require abstract synchronization:
  • ... based on method “movement”

Wednesday, 20 January 2010

slide-18
SLIDE 18

Abstract Data Types

  • Abstract data types ...
  • ... require abstract synchronization:
  • ... based on method “movement”
  • Left Movers, Right Movers, Both Movers

Wednesday, 20 January 2010

slide-19
SLIDE 19

Abstract Data Types

set.Rm(5) (Add3) (Has6) (Rm5) (cmt) (Rm7) (cmt) T1 T2 set.Rm(7) set.Rm(5) set.Has(6)

Wednesday, 20 January 2010

slide-20
SLIDE 20

Abstract Data Types

set.Rm(5) (Add3) (Has6) (Rm5) (cmt) (Rm7) (cmt) T1 T2 set.Rm(7) set.Rm(5) set.Has(6)

Wednesday, 20 January 2010

slide-21
SLIDE 21

Abstract Data Types

set.Rm(5) (Add3) (Has6) (Rm5) (cmt) (Rm7) (cmt) T1 T2 set.Rm(7) set.Rm(5) set.Has(6)

Wednesday, 20 January 2010

slide-22
SLIDE 22

Abstract Data Types

set.Rm(5) (Add3) (Has6) (Rm5) (cmt) (Rm7) (cmt) T1 T2 set.Rm(7) set.Rm(5) set.Has(6)

⊲ ⊳

Wednesday, 20 January 2010

slide-23
SLIDE 23

Abstract Data Types

set.Rm(5) (Add3) (Has6) (Rm5) (cmt) (Rm7) (cmt) T1 T2 set.Rm(7) set.Rm(5) set.Has(6)

⊲ ⊳ ⊲ ⊳

Wednesday, 20 January 2010

slide-24
SLIDE 24

Abstract Data Types

set.Rm(5) (Add3) (Has6) (Rm5) (cmt) (Rm7) (cmt) T1 T2 set.Rm(7) set.Rm(5) set.Has(6) set.*(x) set.*(y)

⊲ ⊳ ⊲ ⊳ ⊲ ⊳

Wednesday, 20 January 2010

slide-25
SLIDE 25

Abstract Data Types

set.Rm(5) (Add3) (Has6) (Rm5) (cmt) (Rm7) (cmt) T1 T2

if x≠y

set.Rm(7) set.Rm(5) set.Has(6) set.*(x) set.*(y)

⊲ ⊳ ⊲ ⊳ ⊲ ⊳

Wednesday, 20 January 2010

slide-26
SLIDE 26

Left-movers

  • .m ⊳ p.n

iff

Wednesday, 20 January 2010

slide-27
SLIDE 27

Left-movers

  • .m ⊳ p.n

iff

{σ′′ | ∃σ′.σ

p.n

− − → σ′ ∧ σ′

  • .m

− − → σ′′} ⊆ {σ′′′ | ∃σ′.σ

  • .m

− − → σ′ ∧ σ′

p.n

− − → σ′′′}

∀σ

Wednesday, 20 January 2010

slide-28
SLIDE 28

Left-movers

  • .m ⊳ p.n

iff

Similar for Right-movers

{σ′′ | ∃σ′.σ

p.n

− − → σ′ ∧ σ′

  • .m

− − → σ′′} ⊆ {σ′′′ | ∃σ′.σ

  • .m

− − → σ′ ∧ σ′

p.n

− − → σ′′′}

∀σ

Wednesday, 20 January 2010

slide-29
SLIDE 29

time

inc() dec() dec() 1 1

Left-movers

Wednesday, 20 January 2010

slide-30
SLIDE 30

What Theory? Sept 2009 10

time

inc() dec() dec() 1 1 1 2 11

Left-movers

Wednesday, 20 January 2010

slide-31
SLIDE 31

What Theory? Sept 2009 11

Valid sequence of calls (same return values)

time

inc() dec() dec() 1 1 1 2 11

Left-movers

Wednesday, 20 January 2010

slide-32
SLIDE 32

What Theory? Sept 2009 12

Same final state

time

inc() dec() dec() 1 1 1 2 11

Left-movers

Wednesday, 20 January 2010

slide-33
SLIDE 33

What Theory? Sept 2009 12

Same final state

time

inc() dec()

inc() dec() dec() 1 1 1 2 11

Left-movers

Wednesday, 20 January 2010

slide-34
SLIDE 34

What Theory? Sept 2009 12

Same final state

time

inc() dec()

inc() dec() dec() 1 1 1 2 11

Left-movers

Wednesday, 20 January 2010

slide-35
SLIDE 35

What Theory? Sept 2009 13

time

dec() inc() 1 dec()

Left-movers

1

Wednesday, 20 January 2010

slide-36
SLIDE 36

What Theory? Sept 2009 14

time

1 dec() inc() 1 dec()

  • 1

Left-movers

Wednesday, 20 January 2010

slide-37
SLIDE 37

What Theory? Sept 2009 14

time

1 dec() inc() 1 dec()

  • 1

Left-movers

dec() is NOT a left mover w.r.t inc()

Wednesday, 20 January 2010

slide-38
SLIDE 38

time

If and are adjacent, Ok to move later

Right-movers

Wednesday, 20 January 2010

slide-39
SLIDE 39

time

If and are adjacent, Ok to move later

Right-movers

If and are adjacent, Ok to swap

Both-movers

time

Wednesday, 20 January 2010

slide-40
SLIDE 40

Syntax

s ::= c; s | beg t; s | skip t ::= c; t | x := o.m(a); t | end

Wednesday, 20 January 2010

slide-41
SLIDE 41

Atomic Semantics

Ca = T, σ where T : list s

Wednesday, 20 January 2010

slide-42
SLIDE 42

Atomic Semantics

Ca = T, σ where T : list s s, σ − →A s′, σ′ T1 :: s :: T2, σ − →A T1 :: s′ :: T2, σ′

Wednesday, 20 January 2010

slide-43
SLIDE 43

Atomic Semantics

Ca = T, σ where T : list s s, σ − →A s′, σ′ T1 :: s :: T2, σ − →A T1 :: s′ :: T2, σ′

Statements

σ′ ∈ cσ c; s, σ − →A s, σ′ t, σ ⇓A σ′ beg t; s, σ − →A s, σ′

Wednesday, 20 January 2010

slide-44
SLIDE 44

Atomic Semantics

Ca = T, σ where T : list s s, σ − →A s′, σ′ T1 :: s :: T2, σ − →A T1 :: s′ :: T2, σ′

Transactions

σ′′ ∈ o.m(a)σ t, σ′′ ⇓A σ′

  • .m(a); t, σ ⇓A σ′

end, σ ⇓A σ

Statements

σ′ ∈ cσ c; s, σ − →A s, σ′ t, σ ⇓A σ′ beg t; s, σ − →A s, σ′

Wednesday, 20 January 2010

slide-45
SLIDE 45

Atomic Semantics

Ca = T, σ where T : list s s, σ − →A s′, σ′ T1 :: s :: T2, σ − →A T1 :: s′ :: T2, σ′

  • Theorem. The atomic semantics

produce serial histories.

Transactions

σ′′ ∈ o.m(a)σ t, σ′′ ⇓A σ′

  • .m(a); t, σ ⇓A σ′

end, σ ⇓A σ

Statements

σ′ ∈ cσ c; s, σ − →A s, σ′ t, σ ⇓A σ′ beg t; s, σ − →A s, σ′

Wednesday, 20 January 2010

slide-46
SLIDE 46

Implementation Strategies

Wednesday, 20 January 2010

slide-47
SLIDE 47

Implementation Strategies

Pessimistic Optimistic

Boosting, Open Nested Txns, Lock Inf. RW STM, Intel, TL2, Burkhardt

T1 T2 T3

undos undos undos

add(2) rm(4) add(4)

T1 T2 T3

redos redos redos

merge merge

Wednesday, 20 January 2010

slide-48
SLIDE 48

Implementation Strategies

Pessimistic Optimistic

Boosting, Open Nested Txns, Lock Inf. RW STM, Intel, TL2, Burkhardt

T1 T2 T3

undos undos undos

add(2) rm(4) add(4)

T1 T2 T3

redos redos redos

merge merge

Abort!

Wednesday, 20 January 2010

slide-49
SLIDE 49

Implementation Strategies

Pessimistic Optimistic

Copt = T, σsh, ℓsh

Ti : N⊥ × s × σ × σ × ℓτ Ti : N⊥ × s× list M

Cp = T, σ

Wednesday, 20 January 2010

slide-50
SLIDE 50

Implementation Strategies

Pessimistic Optimistic

transaction identifier code

  • ustanding ops

Copt = T, σsh, ℓsh

Ti : N⊥ × s × σ × σ × ℓτ Ti : N⊥ × s× list M

Cp = T, σ

Wednesday, 20 January 2010

slide-51
SLIDE 51

Implementation Strategies

Pessimistic Optimistic

transaction identifier code

  • ustanding ops

Copt = T, σsh, ℓsh

Ti : N⊥ × s × σ × σ × ℓτ Ti : N⊥ × s× list M

Cp = T, σ

thread-local state previous state replay log

Wednesday, 20 January 2010

slide-52
SLIDE 52

Implementation Strategies

Copt = T, σsh, ℓsh

Ti : N⊥ × s × σ × σ × ℓτ

Semantics Apply

− →P : (Ti, T, σsh) × (Ti, T, σsh) − →O : (Ti, T, σsh, ℓsh) × (Ti, T, σsh, ℓsh)

Commit

Ti : N⊥ × s× list M

Cp = T, σ

Pessimistic Optimistic

Wednesday, 20 January 2010

slide-53
SLIDE 53

Implementation Strategies

Copt = T, σsh, ℓsh

Ti : N⊥ × s × σ × σ × ℓτ

Semantics Apply

{o.m} ⊳ meths(T) τ, x := o.m; t, M, στ, T, σsh − →P ..., T, σsh[o → oσsh.m] − →P : (Ti, T, σsh) × (Ti, T, σsh) − →O : (Ti, T, σsh, ℓsh) × (Ti, T, σsh, ℓsh)

Commit

Ti : N⊥ × s× list M

Cp = T, σ

Pessimistic Optimistic

Wednesday, 20 January 2010

slide-54
SLIDE 54

Implementation Strategies

Copt = T, σsh, ℓsh

Ti : N⊥ × s × σ × σ × ℓτ

Semantics Apply

{o.m} ⊳ meths(T) τ, x := o.m; t, M, στ, T, σsh − →P ..., T, σsh[o → oσsh.m] − →P : (Ti, T, σsh) × (Ti, T, σsh) − →O : (Ti, T, σsh, ℓsh) × (Ti, T, σsh, ℓsh)

Commit

Ti : N⊥ × s× list M

Cp = T, σ

Pessimistic Optimistic

τ, end;s, M, στ, T, σsh − →P τ, s, ∅, στ, T, σsh

Wednesday, 20 January 2010

slide-55
SLIDE 55

Implementation Strategies

Copt = T, σsh, ℓsh

Ti : N⊥ × s × σ × σ × ℓτ

Semantics Apply

{o.m} ⊳ meths(T) τ, x := o.m; t, M, στ, T, σsh − →P ..., T, σsh[o → oσsh.m] − →P : (Ti, T, σsh) × (Ti, T, σsh) − →O : (Ti, T, σsh, ℓsh) × (Ti, T, σsh, ℓsh)

Commit

Ti : N⊥ × s× list M

Cp = T, σ

Pessimistic Optimistic

τ, x := o.m; t, στ, ← − σ τ, ℓτ, T, σsh, ℓsh − →O ..., ℓτ :: (“o.m′′), T, σsh, ℓsh

τ, end;s, M, στ, T, σsh − →P τ, s, ∅, στ, T, σsh

Wednesday, 20 January 2010

slide-56
SLIDE 56

Implementation Strategies

Copt = T, σsh, ℓsh

Ti : N⊥ × s × σ × σ × ℓτ

Semantics Apply

{o.m} ⊳ meths(T) τ, x := o.m; t, M, στ, T, σsh − →P ..., T, σsh[o → oσsh.m] − →P : (Ti, T, σsh) × (Ti, T, σsh) − →O : (Ti, T, σsh, ℓsh) × (Ti, T, σsh, ℓsh)

Commit

Ti : N⊥ × s× list M

Cp = T, σ

Pessimistic Optimistic

τ, x := o.m; t, στ, ← − σ τ, ℓτ, T, σsh, ℓsh − →O ..., ℓτ :: (“o.m′′), T, σsh, ℓsh ∀(τ cmt, ℓτ ′) ∈ ℓsh.τ cmt > τ ⇒ ℓτ ⊲ ℓτ ′ τ, end; s, στ, ← − σ τ, ℓτ, T, σsh, ℓsh − →O ..., T, merge(σsh, ℓτ), ℓsh :: (fresh(τ cmt), ℓτ)

τ, end;s, M, στ, T, σsh − →P τ, s, ∅, στ, T, σsh

Wednesday, 20 January 2010

slide-57
SLIDE 57

Implementation Strategies

Pessimistic Optimistic

T1 T2 T3

a r a

T T T

Abort!

Wednesday, 20 January 2010

slide-58
SLIDE 58

Serializability

Pessimistic Semantics

  • Theorem. Any execution in the

pessimistic semantics is serializable.

Wednesday, 20 January 2010

slide-59
SLIDE 59

Serializability

ǫC·ǫU

Pessimistic Semantics

  • Proof by induction on the trace,

constructing at each step

  • Theorem. Any execution in the

pessimistic semantics is serializable.

Wednesday, 20 January 2010

slide-60
SLIDE 60

Serializability

Pessimistic Semantics

time

beg beg

ǫU ǫC

Wednesday, 20 January 2010

slide-61
SLIDE 61

Serializability

Pessimistic Semantics

time

beg beg cmt

ǫU ǫC

Wednesday, 20 January 2010

slide-62
SLIDE 62

Serializability

Pessimistic Semantics

time

beg beg cmt

ǫU ǫC

Wednesday, 20 January 2010

slide-63
SLIDE 63

Serializability

Pessimistic Semantics

time

beg beg cmt

ǫU ǫC

Wednesday, 20 January 2010

slide-64
SLIDE 64

Serializability

Pessimistic Semantics

time

beg beg cmt

ǫU ǫC

Move Left of Pending

Wednesday, 20 January 2010

slide-65
SLIDE 65

Serializability

  • Theorem. Any execution in the
  • ptimistic semantics is serializable.

Optimistic Semantics

Wednesday, 20 January 2010

slide-66
SLIDE 66

Serializability

  • Theorem. Any execution in the
  • ptimistic semantics is serializable.

Optimistic Semantics

  • Proof by induction on the trace,

discarding uncommitted transactional events

Wednesday, 20 January 2010

slide-67
SLIDE 67

time

Serializability

Optimistic Semantics

beg cmt

ǫS

Wednesday, 20 January 2010

slide-68
SLIDE 68

time

Serializability

Optimistic Semantics

beg cmt cmt

ǫS

Wednesday, 20 January 2010

slide-69
SLIDE 69

time

Serializability

Optimistic Semantics

beg cmt cmt

ǫS

Wednesday, 20 January 2010

slide-70
SLIDE 70

time

Serializability

Optimistic Semantics

beg cmt cmt

ǫS

Wednesday, 20 January 2010

slide-71
SLIDE 71

time

Serializability

Optimistic Semantics

beg cmt cmt

ǫS

Move Right of Committed

Wednesday, 20 January 2010

slide-72
SLIDE 72

Serializability

  • Pessimistic Implementation:

“as if commit happened in the past”

Wednesday, 20 January 2010

slide-73
SLIDE 73

Serializability

  • Pessimistic Implementation:

“as if commit happened in the past”

  • Optimistic Implementation:

“as if commit happened now”

Wednesday, 20 January 2010

slide-74
SLIDE 74

Conclusion

Wednesday, 20 January 2010

slide-75
SLIDE 75

Conclusion

  • Sequential reasoning (left/right-mover) ...

More concurrency! (caveat: Linearizable objects)

Wednesday, 20 January 2010

slide-76
SLIDE 76

Conclusion

  • Sequential reasoning (left/right-mover) ...

More concurrency! (caveat: Linearizable objects)

  • Pessimistic = left-movers!

Optimistic = right-movers!

Wednesday, 20 January 2010

slide-77
SLIDE 77

Conclusion

  • Sequential reasoning (left/right-mover) ...

More concurrency! (caveat: Linearizable objects)

  • Pessimistic = left-movers!

Optimistic = right-movers!

  • Future: automated mover proofs!

Wednesday, 20 January 2010

slide-78
SLIDE 78

Thank You!

Coarse-Grained Transactions

  • E. Koskinen, M. Parkinson, M. Herlihy

Wednesday, 20 January 2010

slide-79
SLIDE 79

References

  • Koskinen, Parkinson, Herlihy. Coarse Grained Txns. POPL’10.
  • Koskinen, Herlihy. Checkpoints and Continuations instead of

Nested Transactions. SPAA’08.

  • Koskinen, Herlihy. Dreadlocks. SPAA’08.
  • Herlihy, Koskinen. Transactional Boosting. PPoPP’08.
  • Abadi et al. AME. POPL’08.
  • Moore, Grossman. AtomsFamily. POPL’08.
  • Lipton. Reduction. CACM 1975.

Wednesday, 20 January 2010

slide-80
SLIDE 80

Applications

Instance Exec. Granul.

Wednesday, 20 January 2010

slide-81
SLIDE 81

Applications

Instance Exec. Granul.

Traditional STM (Intel, TL2) Opt Fine

Wednesday, 20 January 2010

slide-82
SLIDE 82

Applications

Instance Exec. Granul.

Traditional STM (Intel, TL2) Opt Fine Lock Inference (Cherem. PLDI’08) Pess Fine

Wednesday, 20 January 2010

slide-83
SLIDE 83

Applications

Instance Exec. Granul.

Traditional STM (Intel, TL2) Opt Fine Lock Inference (Cherem. PLDI’08) Pess Fine Transactional Boosting (PPoPP’08) Pess Coarse

Wednesday, 20 January 2010

slide-84
SLIDE 84

Applications

Instance Exec. Granul.

Traditional STM (Intel, TL2) Opt Fine Lock Inference (Cherem. PLDI’08) Pess Fine Transactional Boosting (PPoPP’08) Pess Coarse Open Nested Transactions (PPoPP’07) Pess Coarse

Wednesday, 20 January 2010

slide-85
SLIDE 85

Applications

Instance Exec. Granul.

Traditional STM (Intel, TL2) Opt Fine Lock Inference (Cherem. PLDI’08) Pess Fine Transactional Boosting (PPoPP’08) Pess Coarse Open Nested Transactions (PPoPP’07) Pess Coarse Burkhardt and Baldassin (HotPar’09) Opt Coarse

Wednesday, 20 January 2010

slide-86
SLIDE 86

Applications

Instance Exec. Granul.

Traditional STM (Intel, TL2) Opt Fine Lock Inference (Cherem. PLDI’08) Pess Fine Transactional Boosting (PPoPP’08) Pess Coarse Open Nested Transactions (PPoPP’07) Pess Coarse Burkhardt and Baldassin (HotPar’09) Opt Coarse work-in-progress Opt Coarse

Wednesday, 20 January 2010

slide-87
SLIDE 87

Applications

  • Opacity (Guerraoui, Kapalka. PPoPP'08.)

Wednesday, 20 January 2010

slide-88
SLIDE 88

Applications

  • Opacity (Guerraoui, Kapalka. PPoPP'08.)
  • 1. Serializability

Wednesday, 20 January 2010

slide-89
SLIDE 89

Applications

  • Opacity (Guerraoui, Kapalka. PPoPP'08.)
  • 1. Serializability

Wednesday, 20 January 2010

slide-90
SLIDE 90

Applications

  • Opacity (Guerraoui, Kapalka. PPoPP'08.)
  • 1. Serializability
  • 2. Operations performed by an aborted

txn are never visible to other txns

Wednesday, 20 January 2010

slide-91
SLIDE 91

Applications

  • Opacity (Guerraoui, Kapalka. PPoPP'08.)
  • 1. Serializability
  • 2. Operations performed by an aborted

txn are never visible to other txns

✓ ✓

Wednesday, 20 January 2010

slide-92
SLIDE 92

Applications

  • Opacity (Guerraoui, Kapalka. PPoPP'08.)
  • 1. Serializability
  • 2. Operations performed by an aborted

txn are never visible to other txns

  • 3. Every transaction observes a consistent

version of the state

✓ ✓

Wednesday, 20 January 2010

slide-93
SLIDE 93

Applications

  • Opacity (Guerraoui, Kapalka. PPoPP'08.)
  • 1. Serializability
  • 2. Operations performed by an aborted

txn are never visible to other txns

  • 3. Every transaction observes a consistent

version of the state

✓ ✓ ✓

Wednesday, 20 January 2010