Local Linearizability Ana Sokolova joint work with: Andreas Haas - - PowerPoint PPT Presentation

local linearizability
SMART_READER_LITE
LIVE PREVIEW

Local Linearizability Ana Sokolova joint work with: Andreas Haas - - PowerPoint PPT Presentation

Local Linearizability Ana Sokolova joint work with: Andreas Haas Tom Henzinger Andreas Holzer Christoph Kirsch Michael Lippautz Hannes Payer Ali Sezgin Helmut Veith Rigorous methods for engineering of and reasoning about reactive


slide-1
SLIDE 1

Local Linearizability

Ana Sokolova joint work with: Christoph Kirsch Tom Henzinger Andreas Holzer Ali Sezgin Helmut Veith Hannes Payer Michael Lippautz Andreas Haas

slide-2
SLIDE 2

Rigorous methods for engineering of and reasoning about reactive systems

Ana Sokolova CiiT 2018

slide-3
SLIDE 3

Rigorous methods for engineering of and reasoning about reactive systems

Ana Sokolova

concurrent

CiiT 2018

slide-4
SLIDE 4

Background big picture

Ana Sokolova CiiT 2018

slide-5
SLIDE 5

Computer Science

Background big picture

Ana Sokolova CiiT 2018

slide-6
SLIDE 6

Computer Science

Background big picture

Theoretical Computer Science

Ana Sokolova CiiT 2018

slide-7
SLIDE 7

Computer Science

Background big picture

Theoretical Computer Science Concurrency

Ana Sokolova CiiT 2018

slide-8
SLIDE 8

Computer Science

Background big picture

Theoretical Computer Science Concurrency Formal Methods

Ana Sokolova CiiT 2018

slide-9
SLIDE 9

Computer Science

Background big picture

Theoretical Computer Science Concurrency Formal Methods Algebra and Coalgebra

Ana Sokolova CiiT 2018

slide-10
SLIDE 10

Computer Science

Background big picture

Theoretical Computer Science Concurrency Formal Methods Algebra and Coalgebra

Ana Sokolova

Probabilistic Systems

CiiT 2018

slide-11
SLIDE 11

Computer Science

Background big picture

Theoretical Computer Science Concurrency Formal Methods Algebra and Coalgebra Security

Ana Sokolova

Probabilistic Systems

CiiT 2018

slide-12
SLIDE 12

Computer Science

Background big picture

Theoretical Computer Science Real-Time Systems Concurrency Formal Methods Algebra and Coalgebra Security

Ana Sokolova

Probabilistic Systems

CiiT 2018

slide-13
SLIDE 13

Computer Science

Background big picture

Theoretical Computer Science Memory Management Systems Real-Time Systems Concurrency Formal Methods Algebra and Coalgebra Security

Ana Sokolova

Probabilistic Systems

CiiT 2018

slide-14
SLIDE 14

Computer Science

Background big picture

Theoretical Computer Science Memory Management Systems Real-Time Systems Concurrency Formal Methods Data Structures Algebra and Coalgebra Security

Ana Sokolova

Probabilistic Systems

CiiT 2018

slide-15
SLIDE 15

Computer Science

Background big picture

Theoretical Computer Science Memory Management Systems Real-Time Systems Concurrency Formal Methods Data Structures Algebra and Coalgebra Security

Ana Sokolova

Probabilistic Systems Q U A N T I T I E S

CiiT 2018

slide-16
SLIDE 16

Computer Science

Theoretical Computer Science Memory Management Systems Real-Time Systems Concurrency Formal Methods Data Structures Algebra and Coalgebra Security

Ana Sokolova

Probabilistic Systems Q U A N T I T I E S

Current favourites

CiiT 2018

slide-17
SLIDE 17

Local Linearizability

Ana Sokolova joint work with: Christoph Kirsch Tom Henzinger Andreas Holzer Ali Sezgin Helmut Veith Hannes Payer Michael Lippautz Andreas Haas

slide-18
SLIDE 18

Concurrent Data Structures: Semantics and Relaxations

Ana Sokolova CiiT 2018

slide-19
SLIDE 19

Concurrent Data Structures Correctness and Performance

Ana Sokolova CiiT 2018

slide-20
SLIDE 20

Concurrent Data Structures Correctness and Performance

Ana Sokolova CiiT 2018

structure and power

slide-21
SLIDE 21

Semantics of concurrent data structures

Ana Sokolova CiiT 2018

slide-22
SLIDE 22

Semantics of concurrent data structures

Ana Sokolova

e.g. pools, queues, stacks

CiiT 2018

slide-23
SLIDE 23

Semantics of concurrent data structures

Ana Sokolova

e.g. pools, queues, stacks

t1:

enq(2) deq(1) enq(1) deq(2)

t2:

CiiT 2018

slide-24
SLIDE 24

Semantics of concurrent data structures

  • Sequential specification = set of legal sequences
  • Consistency condition = e.g. linearizability /

sequential consistency

Ana Sokolova

e.g. pools, queues, stacks

t1:

enq(2) deq(1) enq(1) deq(2)

t2:

CiiT 2018

slide-25
SLIDE 25

Semantics of concurrent data structures

  • Sequential specification = set of legal sequences
  • Consistency condition = e.g. linearizability /

sequential consistency

Ana Sokolova

e.g. pools, queues, stacks e.g. queue legal sequence enq(1)enq(2)deq(1)deq(2)

t1:

enq(2) deq(1) enq(1) deq(2)

t2:

CiiT 2018

slide-26
SLIDE 26

Semantics of concurrent data structures

  • Sequential specification = set of legal sequences
  • Consistency condition = e.g. linearizability /

sequential consistency

Ana Sokolova

e.g. pools, queues, stacks e.g. queue legal sequence enq(1)enq(2)deq(1)deq(2)

e.g. the concurrent history above is a linearizable queue concurrent history t1:

enq(2) deq(1) enq(1) deq(2)

t2:

CiiT 2018

slide-27
SLIDE 27

Consistency conditions

Ana Sokolova

Linearizability Sequential Consistency

[Herlihy,Wing ’90] [Lamport’79]

CiiT 2018

slide-28
SLIDE 28

Consistency conditions

Ana Sokolova

Linearizability Sequential Consistency

there exists a legal sequence that preserves precedence

[Herlihy,Wing ’90] [Lamport’79]

CiiT 2018

slide-29
SLIDE 29

Consistency conditions

Ana Sokolova

Linearizability Sequential Consistency

there exists a legal sequence that preserves precedence

t1:

enq(2) deq(1) enq(1) deq(2)

t2: [Herlihy,Wing ’90] [Lamport’79]

CiiT 2018

slide-30
SLIDE 30

Consistency conditions

Ana Sokolova

Linearizability Sequential Consistency

there exists a legal sequence that preserves precedence

t1:

enq(2) deq(1) enq(1) deq(2)

t2: [Herlihy,Wing ’90] [Lamport’79]

CiiT 2018

slide-31
SLIDE 31

Consistency conditions

Ana Sokolova

Linearizability Sequential Consistency

there exists a legal sequence that preserves precedence

t1:

enq(2) deq(1) enq(1) deq(2)

t2:

1 2 3 4

[Herlihy,Wing ’90] [Lamport’79]

CiiT 2018

slide-32
SLIDE 32

Consistency conditions

Ana Sokolova

Linearizability Sequential Consistency

there exists a legal sequence that preserves precedence

t1:

enq(2) deq(1) enq(1) deq(2)

t2:

1 2 3 4

there exists a legal sequence that preserves per-thread precedence (program order)

[Herlihy,Wing ’90] [Lamport’79]

CiiT 2018

slide-33
SLIDE 33

t1:

enq(1) deq(2) deq(1)

t2:

enq(2)

Consistency conditions

Ana Sokolova

Linearizability Sequential Consistency

there exists a legal sequence that preserves precedence

t1:

enq(2) deq(1) enq(1) deq(2)

t2:

1 2 3 4

there exists a legal sequence that preserves per-thread precedence (program order)

[Herlihy,Wing ’90] [Lamport’79]

CiiT 2018

slide-34
SLIDE 34

t1:

enq(1) deq(2) deq(1)

t2:

enq(2)

Consistency conditions

Ana Sokolova

Linearizability Sequential Consistency

there exists a legal sequence that preserves precedence

t1:

enq(2) deq(1) enq(1) deq(2)

t2:

1 2 3 4

there exists a legal sequence that preserves per-thread precedence (program order)

[Herlihy,Wing ’90] [Lamport’79]

CiiT 2018

slide-35
SLIDE 35

t1:

enq(1) deq(2) deq(1)

t2:

enq(2)

Consistency conditions

Ana Sokolova

Linearizability Sequential Consistency

there exists a legal sequence that preserves precedence

t1:

enq(2) deq(1) enq(1) deq(2)

t2:

1 2 3 4

there exists a legal sequence that preserves per-thread precedence (program order)

1 2 3 4

[Herlihy,Wing ’90] [Lamport’79]

CiiT 2018

slide-36
SLIDE 36

Performance and scalability

Ana Sokolova

throughput # of threads / cores

:-))) :-) :-( :-\

CiiT 2018

slide-37
SLIDE 37

Relaxations allow trading correctness for performance

Ana Sokolova CiiT 2018

slide-38
SLIDE 38

Relaxations allow trading correctness for performance

Ana Sokolova

provide the potential for better-performing implementations

CiiT 2018

slide-39
SLIDE 39

Relaxing the Semantics

Ana Sokolova CiiT 2018

slide-40
SLIDE 40

Relaxing the Semantics

  • Sequential specification = set of legal sequences
  • Consistency condition = e.g. linearizability /

sequential consistency

Ana Sokolova CiiT 2018

slide-41
SLIDE 41

Relaxing the Semantics

  • Sequential specification = set of legal sequences
  • Consistency condition = e.g. linearizability /

sequential consistency

Ana Sokolova

Quantitative relaxations Henzinger, Kirsch, Payer, Sezgin,S. POPL13

CiiT 2018

slide-42
SLIDE 42

Relaxing the Semantics

  • Sequential specification = set of legal sequences
  • Consistency condition = e.g. linearizability /

sequential consistency

Ana Sokolova

Quantitative relaxations Henzinger, Kirsch, Payer, Sezgin,S. POPL13 not “sequentially correct”

CiiT 2018

slide-43
SLIDE 43

Relaxing the Semantics

  • Sequential specification = set of legal sequences
  • Consistency condition = e.g. linearizability /

sequential consistency

Ana Sokolova

Quantitative relaxations Henzinger, Kirsch, Payer, Sezgin,S. POPL13 Local linearizability in this talk not “sequentially correct”

CiiT 2018

slide-44
SLIDE 44

Relaxing the Semantics

  • Sequential specification = set of legal sequences
  • Consistency condition = e.g. linearizability /

sequential consistency

Ana Sokolova

Quantitative relaxations Henzinger, Kirsch, Payer, Sezgin,S. POPL13 Local linearizability in this talk for queues only (feel free to ask for more) not “sequentially correct”

CiiT 2018

slide-45
SLIDE 45

Relaxing the Semantics

  • Sequential specification = set of legal sequences
  • Consistency condition = e.g. linearizability /

sequential consistency

Ana Sokolova

Quantitative relaxations Henzinger, Kirsch, Payer, Sezgin,S. POPL13 Local linearizability in this talk for queues only (feel free to ask for more) not “sequentially correct” too weak

CiiT 2018

slide-46
SLIDE 46

Relaxing the Consistency Condition

Ana Sokolova CiiT 2018

slide-47
SLIDE 47

Relaxing the Consistency Condition

Ana Sokolova

Local Linearizability (CONCUR16)

CiiT 2018

slide-48
SLIDE 48

Local Linearizability main idea

Ana Sokolova CiiT 2018

slide-49
SLIDE 49

Local Linearizability main idea

  • Partition a history into a set of local histories
  • Require linearizability per local history

Ana Sokolova CiiT 2018

slide-50
SLIDE 50

Local Linearizability main idea

  • Partition a history into a set of local histories
  • Require linearizability per local history

Ana Sokolova

Already present in some shared-memory consistency conditions (not in our form of choice)

CiiT 2018

slide-51
SLIDE 51

Local Linearizability main idea

  • Partition a history into a set of local histories
  • Require linearizability per local history

Ana Sokolova

Already present in some shared-memory consistency conditions (not in our form of choice) Local sequential consistency… is also possible

CiiT 2018

slide-52
SLIDE 52

Local Linearizability main idea

  • Partition a history into a set of local histories
  • Require linearizability per local history

Ana Sokolova

Already present in some shared-memory consistency conditions (not in our form of choice) Local sequential consistency… is also possible no global witness

CiiT 2018

slide-53
SLIDE 53

Local Linearizability (queue) example

Ana Sokolova

t1:

enq(1) deq(1) enq(2) deq(2)

t2:

CiiT 2018

slide-54
SLIDE 54

Local Linearizability (queue) example

Ana Sokolova

t1:

enq(1) deq(1) enq(2) deq(2)

t2:

(sequential) history not linearizable

CiiT 2018

slide-55
SLIDE 55

Local Linearizability (queue) example

Ana Sokolova

t1:

enq(1) deq(1) enq(2) deq(2)

t2:

(sequential) history not linearizable

CiiT 2018

slide-56
SLIDE 56

Local Linearizability (queue) example

Ana Sokolova

t1:

enq(1) deq(1) enq(2) deq(2)

t2:

(sequential) history not linearizable t1-induced history, linearizable

CiiT 2018

slide-57
SLIDE 57

Local Linearizability (queue) example

Ana Sokolova

t1:

enq(1) deq(1) enq(2) deq(2)

t2:

(sequential) history not linearizable t1-induced history, linearizable

CiiT 2018

slide-58
SLIDE 58

Local Linearizability (queue) example

Ana Sokolova

t1:

enq(1) deq(1) enq(2) deq(2)

t2:

(sequential) history not linearizable t1-induced history, linearizable t2-induced history, linearizable

CiiT 2018

slide-59
SLIDE 59

Local Linearizability (queue) example

Ana Sokolova

t1:

enq(1) deq(1) enq(2) deq(2)

t2:

(sequential) history not linearizable t1-induced history, linearizable t2-induced history, linearizable locally linearizable

CiiT 2018

slide-60
SLIDE 60

Local Linearizability (queue) definition

Ana Sokolova CiiT 2018

slide-61
SLIDE 61

Local Linearizability (queue) definition

Ana Sokolova

Queue signature ∑ = {enq(x) | x ∈ V} ∪ {deq(x) | x ∈ V} ∪ {deq(empty)}

CiiT 2018

slide-62
SLIDE 62

Local Linearizability (queue) definition

Ana Sokolova

Queue signature ∑ = {enq(x) | x ∈ V} ∪ {deq(x) | x ∈ V} ∪ {deq(empty)} For a history h with a thread T, we put IT = {enq(x)T ∈ h | x ∈ V} OT = {deq(x)T’ ∈ h | enq(x)T ∈ IT} ∪ {deq(empty)}

CiiT 2018

slide-63
SLIDE 63

Local Linearizability (queue) definition

Ana Sokolova

Queue signature ∑ = {enq(x) | x ∈ V} ∪ {deq(x) | x ∈ V} ∪ {deq(empty)} For a history h with a thread T, we put IT = {enq(x)T ∈ h | x ∈ V} OT = {deq(x)T’ ∈ h | enq(x)T ∈ IT} ∪ {deq(empty)}

in-methods of thread T are enqueues performed by thread T

CiiT 2018

slide-64
SLIDE 64

Local Linearizability (queue) definition

Ana Sokolova

Queue signature ∑ = {enq(x) | x ∈ V} ∪ {deq(x) | x ∈ V} ∪ {deq(empty)} For a history h with a thread T, we put IT = {enq(x)T ∈ h | x ∈ V} OT = {deq(x)T’ ∈ h | enq(x)T ∈ IT} ∪ {deq(empty)}

in-methods of thread T are enqueues performed by thread T

  • ut-methods of thread T

are dequeues (performed by any thread) corresponding to enqueues that are in-methods

CiiT 2018

slide-65
SLIDE 65

Local Linearizability (queue) definition

Ana Sokolova

Queue signature ∑ = {enq(x) | x ∈ V} ∪ {deq(x) | x ∈ V} ∪ {deq(empty)} For a history h with a thread T, we put IT = {enq(x)T ∈ h | x ∈ V} OT = {deq(x)T’ ∈ h | enq(x)T ∈ IT} ∪ {deq(empty)}

in-methods of thread T are enqueues performed by thread T

  • ut-methods of thread T

are dequeues (performed by any thread) corresponding to enqueues that are in-methods

h is locally linearizable iff every thread-induced history hT= h | (IT ∪ OT) is linearizable.

CiiT 2018

slide-66
SLIDE 66

Generalizations of Local Linearizability

Ana Sokolova CiiT 2018

slide-67
SLIDE 67

Generalizations of Local Linearizability

Ana Sokolova

Signature ∑

CiiT 2018

slide-68
SLIDE 68

Generalizations of Local Linearizability

Ana Sokolova

Signature ∑ For a history h with n threads, choose Inh(i) Outh(i)

CiiT 2018

slide-69
SLIDE 69

Generalizations of Local Linearizability

Ana Sokolova

Signature ∑ For a history h with n threads, choose Inh(i) Outh(i)

in-methods of thread i, methods that go in hi

CiiT 2018

slide-70
SLIDE 70

Generalizations of Local Linearizability

Ana Sokolova

Signature ∑ For a history h with n threads, choose Inh(i) Outh(i)

in-methods of thread i, methods that go in hi

  • ut-methods of thread i,

dependent methods

  • n the methods in Inh(i)

(performed by any thread)

CiiT 2018

slide-71
SLIDE 71

Generalizations of Local Linearizability

Ana Sokolova

Signature ∑ For a history h with n threads, choose Inh(i) Outh(i)

in-methods of thread i, methods that go in hi

  • ut-methods of thread i,

dependent methods

  • n the methods in Inh(i)

(performed by any thread)

h is locally linearizable iff every thread-induced history hi = h | (Inh(i) ∪ Outh(i)) is linearizable.

CiiT 2018

slide-72
SLIDE 72

Generalizations of Local Linearizability

Ana Sokolova

Signature ∑ For a history h with n threads, choose Inh(i) Outh(i)

in-methods of thread i, methods that go in hi

  • ut-methods of thread i,

dependent methods

  • n the methods in Inh(i)

(performed by any thread)

h is locally linearizable iff every thread-induced history hi = h | (Inh(i) ∪ Outh(i)) is linearizable.

by increasing the in-methods, LL gradually moves to linearizability

CiiT 2018

slide-73
SLIDE 73

Where do we stand?

Ana Sokolova

In general

Linearizability Sequential Consistency Local Linearizability

CiiT 2018

slide-74
SLIDE 74

Where do we stand?

Ana Sokolova

For queues (and most container-type data structures)

Linearizability Sequential Consistency Local Linearizability

CiiT 2018

slide-75
SLIDE 75

Properties

Ana Sokolova CiiT 2018

slide-76
SLIDE 76

Properties

Ana Sokolova

Local linearizability is compositional

CiiT 2018

slide-77
SLIDE 77

Properties

Ana Sokolova

Local linearizability is compositional like linearizability unlike sequential consistency

CiiT 2018

slide-78
SLIDE 78

Properties

Ana Sokolova

Local linearizability is compositional

h (over multiple objects) is locally linearizable iff each per-object subhistory of h is locally linearizable

like linearizability unlike sequential consistency

CiiT 2018

slide-79
SLIDE 79

Properties

Ana Sokolova

Local linearizability is compositional

h (over multiple objects) is locally linearizable iff each per-object subhistory of h is locally linearizable

like linearizability unlike sequential consistency Local linearizability is modular / “decompositional”

CiiT 2018

slide-80
SLIDE 80

Properties

Ana Sokolova

Local linearizability is compositional

h (over multiple objects) is locally linearizable iff each per-object subhistory of h is locally linearizable

like linearizability unlike sequential consistency Local linearizability is modular / “decompositional” uses decomposition into smaller histories, by definition

CiiT 2018

slide-81
SLIDE 81

Properties

Ana Sokolova

Local linearizability is compositional

h (over multiple objects) is locally linearizable iff each per-object subhistory of h is locally linearizable

like linearizability unlike sequential consistency Local linearizability is modular / “decompositional” uses decomposition into smaller histories, by definition may allow for modular verification

CiiT 2018

slide-82
SLIDE 82

Verification (queue)

Ana Sokolova

Queue sequential specification (axiomatic)

s is a legal queue sequence iff

  • 1. s is a legal pool sequence, and
  • 2. enq(x) <s enq(y) ⋀ deq(y) ∈ s ⇒ deq(x) ∈ s ⋀ deq(x) <s deq(y)

CiiT 2018

slide-83
SLIDE 83

Verification (queue)

Ana Sokolova

Queue sequential specification (axiomatic)

s is a legal queue sequence iff

  • 1. s is a legal pool sequence, and
  • 2. enq(x) <s enq(y) ⋀ deq(y) ∈ s ⇒ deq(x) ∈ s ⋀ deq(x) <s deq(y)

Queue linearizability (axiomatic)

h is queue linearizable iff

  • 1. h is pool linearizable, and
  • 2. enq(x) <h enq(y) ⋀ deq(y) ∈ h ⇒ deq(x) ∈ h ⋀ deq(y) ≮h deq(x)

Henzinger, Sezgin, Vafeiadis CONCUR13

CiiT 2018

slide-84
SLIDE 84

Verification (queue)

Ana Sokolova

Queue sequential specification (axiomatic)

s is a legal queue sequence iff

  • 1. s is a legal pool sequence, and
  • 2. enq(x) <s enq(y) ⋀ deq(y) ∈ s ⇒ deq(x) ∈ s ⋀ deq(x) <s deq(y)

Queue linearizability (axiomatic)

h is queue linearizable iff

  • 1. h is pool linearizable, and
  • 2. enq(x) <h enq(y) ⋀ deq(y) ∈ h ⇒ deq(x) ∈ h ⋀ deq(y) ≮h deq(x)

Henzinger, Sezgin, Vafeiadis CONCUR13 precedence order

CiiT 2018

slide-85
SLIDE 85

Verification (queue)

Ana Sokolova

Queue sequential specification (axiomatic)

s is a legal queue sequence iff

  • 1. s is a legal pool sequence, and
  • 2. enq(x) <s enq(y) ⋀ deq(y) ∈ s ⇒ deq(x) ∈ s ⋀ deq(x) <s deq(y)

Queue local linearizability (axiomatic)

h is queue locally linearizable iff

  • 1. h is pool locally linearizable, and
  • 2. enq(x) <hi enq(y) ⋀ deq(y) ∈ h ⇒ deq(x) ∈ h ⋀ deq(y) ≮h deq(x)

CiiT 2018

slide-86
SLIDE 86

Verification (queue)

Ana Sokolova

Queue sequential specification (axiomatic)

s is a legal queue sequence iff

  • 1. s is a legal pool sequence, and
  • 2. enq(x) <s enq(y) ⋀ deq(y) ∈ s ⇒ deq(x) ∈ s ⋀ deq(x) <s deq(y)

Queue local linearizability (axiomatic)

h is queue locally linearizable iff

  • 1. h is pool locally linearizable, and
  • 2. enq(x) <hi enq(y) ⋀ deq(y) ∈ h ⇒ deq(x) ∈ h ⋀ deq(y) ≮h deq(x)

thread-local precedence order

CiiT 2018

slide-87
SLIDE 87

Generic Implementations

Ana Sokolova CiiT 2018

slide-88
SLIDE 88

Generic Implementations

Ana Sokolova

Your favorite linearizable data structure implementation

CiiT 2018

slide-89
SLIDE 89

Generic Implementations

Ana Sokolova

Your favorite linearizable data structure implementation

Φ

CiiT 2018

slide-90
SLIDE 90

Generic Implementations

Ana Sokolova

Your favorite linearizable data structure implementation

Φ

turns into a locally linearizable implementation by:

CiiT 2018

slide-91
SLIDE 91

Generic Implementations

Ana Sokolova

Your favorite linearizable data structure implementation

Φ

turns into a locally linearizable implementation by:

t2 t1 tn …

Φ Φ Φ

CiiT 2018

slide-92
SLIDE 92

Generic Implementations

Ana Sokolova

Your favorite linearizable data structure implementation

Φ

turns into a locally linearizable implementation by: segment of possibly dynamic size (n)

t2 t1 tn …

Φ Φ Φ

CiiT 2018

slide-93
SLIDE 93

Generic Implementations

Ana Sokolova

Your favorite linearizable data structure implementation

Φ

turns into a locally linearizable implementation by: segment of possibly dynamic size (n)

t2 t1 tn …

Φ Φ Φ

local inserts / global (randomly distributed) removes

CiiT 2018

slide-94
SLIDE 94

Generic Implementations

Ana Sokolova

Your favorite linearizable data structure implementation

Φ

turns into a locally linearizable implementation by: segment of possibly dynamic size (n)

t2 t1 tn …

Φ Φ Φ

local inserts / global (randomly distributed) removes LLD Φ (locally linearizable)

CiiT 2018

slide-95
SLIDE 95

Generic Implementations

Ana Sokolova

Your favorite linearizable data structure implementation

Φ

turns into a locally linearizable implementation by: segment of possibly dynamic size (n)

t2 t1 tn …

Φ Φ Φ

local inserts / global (randomly distributed) removes LLD Φ (locally linearizable) LL+D Φ (also pool linearizable)

CiiT 2018

slide-96
SLIDE 96

Performance

Ana Sokolova

2 4 6 8 10 12 14 16 18 20 22 24 26 2 10 20 30 40 50 60 70 80 million operations per sec (more is better) number of threads MS LCRQ k-FIFO LL+D MS LLD LCRQ LLD k-FIFO 1-RA DQ

(a) Queues, LL queues, and “queue-like” pools

CiiT 2018

slide-97
SLIDE 97

Performance

Ana Sokolova

2 4 6 8 10 12 14 16 18 20 22 24 26 2 10 20 30 40 50 60 70 80 million operations per sec (more is better) number of threads MS LCRQ k-FIFO LL+D MS LLD LCRQ LLD k-FIFO 1-RA DQ

(a) Queues, LL queues, and “queue-like” pools

LL+D MS queue performs significantly better than MS queue

CiiT 2018

slide-98
SLIDE 98

Performance

Ana Sokolova

2 4 6 8 10 12 14 16 18 20 22 24 26 2 10 20 30 40 50 60 70 80 million operations per sec (more is better) number of threads MS LCRQ k-FIFO LL+D MS LLD LCRQ LLD k-FIFO 1-RA DQ

(a) Queues, LL queues, and “queue-like” pools

LLD Φ performs significantly better than Φ

CiiT 2018

slide-99
SLIDE 99

Performance

Ana Sokolova

2 4 6 8 10 12 14 16 18 20 22 24 26 2 10 20 30 40 50 60 70 80 million operations per sec (more is better) number of threads MS LCRQ k-FIFO LL+D MS LLD LCRQ LLD k-FIFO 1-RA DQ

(a) Queues, LL queues, and “queue-like” pools

LL+D MS queue performs better than the best known pools

CiiT 2018

slide-100
SLIDE 100

Local Linearizability

Ana Sokolova joint work with: Christoph Kirsch Tom Henzinger Andreas Holzer Ali Sezgin Helmut Veith Hannes Payer Michael Lippautz Andreas Haas

Thank You!

slide-101
SLIDE 101

Local Linearizability

Ana Sokolova joint work with: Christoph Kirsch Tom Henzinger Andreas Holzer Ali Sezgin Helmut Veith Hannes Payer Michael Lippautz Andreas Haas

Thank You!

slide-102
SLIDE 102

Andreas Haas Andreas Holzer Michael Lippautz Ali Sezgin Christoph Kirsch Hannes Payer Helmut Veith Tom Henzinger