EXPLOITING LOOPHOLES IN CAP Michael T. Nygard Relevance, Inc. - - PowerPoint PPT Presentation

exploiting loopholes in cap
SMART_READER_LITE
LIVE PREVIEW

EXPLOITING LOOPHOLES IN CAP Michael T. Nygard Relevance, Inc. - - PowerPoint PPT Presentation

EXPLOITING LOOPHOLES IN CAP Michael T. Nygard Relevance, Inc. Thursday, November 8, 12 About CAP a.k.a. Brewers Conjecture a.k.a. Theorem that Shipped 1,000 Launches Thursday, November 8, 12 Brewer's conjecture and the feasibility


slide-1
SLIDE 1

EXPLOITING LOOPHOLES IN CAP

Michael T. Nygard Relevance, Inc.

Thursday, November 8, 12

slide-2
SLIDE 2

About CAP a.k.a. Brewer’s Conjecture a.k.a. Theorem that Shipped 1,000 Launches

Thursday, November 8, 12

slide-3
SLIDE 3

“Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services.” Seth Gilbert and Nancy Lynch.

SIGACT News 33, 2 (June 2002), 51-59. DOI=10.1145/564585.564601 http://doi.acm.org/10.1145/564585.564601

Thursday, November 8, 12

slide-4
SLIDE 4

Thursday, November 8, 12

slide-5
SLIDE 5

Thursday, November 8, 12

slide-6
SLIDE 6

Consistency

Thursday, November 8, 12

slide-7
SLIDE 7

Consistency Availability

Thursday, November 8, 12

slide-8
SLIDE 8

Consistency Availability Partition-Tolerance

Thursday, November 8, 12

slide-9
SLIDE 9

Consistency Availability Partition-Tolerance Choose Two

Thursday, November 8, 12

slide-10
SLIDE 10

BEWARE BAD LOGIC

C ∩ P → ¬A

Thursday, November 8, 12

slide-11
SLIDE 11

BEWARE BAD LOGIC

C ∩ P → ¬A A ∩ P → ¬C

Thursday, November 8, 12

slide-12
SLIDE 12

BEWARE BAD LOGIC

⊭¬C → A C ∩ P → ¬A A ∩ P → ¬C

Thursday, November 8, 12

slide-13
SLIDE 13

Thursday, November 8, 12

slide-14
SLIDE 14

CAP

Thursday, November 8, 12

slide-15
SLIDE 15

CAP Gödel’s Incompleteness Theorem

Thursday, November 8, 12

slide-16
SLIDE 16

CAP Gödel’s Incompleteness Theorem Heisenberg’s Uncertainty Principle

Thursday, November 8, 12

slide-17
SLIDE 17

CAP GIT HUP

Thursday, November 8, 12

slide-18
SLIDE 18

They’re a drag!

Thursday, November 8, 12

slide-19
SLIDE 19

The Network

Thursday, November 8, 12

slide-20
SLIDE 20

Asynchronous Message-passing Network

Thursday, November 8, 12

slide-21
SLIDE 21

Thursday, November 8, 12

slide-22
SLIDE 22

Consistency

Thursday, November 8, 12

slide-23
SLIDE 23

Thursday, November 8, 12

slide-24
SLIDE 24

n2

Thursday, November 8, 12

slide-25
SLIDE 25

n2

→ write 12 ←

Thursday, November 8, 12

slide-26
SLIDE 26

n2

→ write 12 ← ack

Thursday, November 8, 12

slide-27
SLIDE 27

n2

→ write 12 ← ack →

Thursday, November 8, 12

slide-28
SLIDE 28

n2

→ write 12 ← ack → read ←

Thursday, November 8, 12

slide-29
SLIDE 29

n2

→ write 12 ← ack → read ← 12

Thursday, November 8, 12

slide-30
SLIDE 30

n2

→ write 12 ← ack → read ← 12 →

Thursday, November 8, 12

slide-31
SLIDE 31

n2

→ write 12 ← ack → read ← 12 → read ←

Thursday, November 8, 12

slide-32
SLIDE 32

n2

→ write 12 ← ack → read ← 12 → read ← 12

Thursday, November 8, 12

slide-33
SLIDE 33

n2

→ write 12 ← ack → read ← 12 → read ← 12 →

Thursday, November 8, 12

slide-34
SLIDE 34

n2

→ write 12 ← ack → read ← 12 → read ← 12 → write 20 ←

Thursday, November 8, 12

slide-35
SLIDE 35

n2

→ write 12 ← ack → read ← 12 → read ← 12 → write 20 ← ack

Thursday, November 8, 12

slide-36
SLIDE 36

Thursday, November 8, 12

slide-37
SLIDE 37

n2

write 12 read read write 20

Thursday, November 8, 12

slide-38
SLIDE 38

n2

write 12 read read write 20

n11

write 12 read read write 20

Thursday, November 8, 12

slide-39
SLIDE 39

n2

write 12 read read write 20

n11

write 12 read read write 20

n17

write 12 write 9 read write 20

Thursday, November 8, 12

slide-40
SLIDE 40

n2

write 12 read read write 20

n11

write 12 read read write 20

n17

write 12 write 9 read write 20

×

Thursday, November 8, 12

slide-41
SLIDE 41

Atomic Linearizable

Thursday, November 8, 12

slide-42
SLIDE 42

Thursday, November 8, 12

slide-43
SLIDE 43

Availability

Thursday, November 8, 12

slide-44
SLIDE 44

Thursday, November 8, 12

slide-45
SLIDE 45

n2

Thursday, November 8, 12

slide-46
SLIDE 46

n2

→ write 12 ←

Thursday, November 8, 12

slide-47
SLIDE 47

n2

→ write 12 ← ack

Thursday, November 8, 12

slide-48
SLIDE 48

n2

→ write 12 ← ack →

Thursday, November 8, 12

slide-49
SLIDE 49

n2

→ write 12 ← ack → read ←

Thursday, November 8, 12

slide-50
SLIDE 50

n2

→ write 12 ← ack → read ← 12

Thursday, November 8, 12

slide-51
SLIDE 51

n2

→ write 12 ← ack → read ← 12 →

Thursday, November 8, 12

slide-52
SLIDE 52

n2

→ write 12 ← ack → read ← 12 → read

Thursday, November 8, 12

slide-53
SLIDE 53

n2

→ write 12 ← ack → read ← 12 → read

Thursday, November 8, 12

slide-54
SLIDE 54

n2

→ write 12 ← ack → read ← 12 → read →

Thursday, November 8, 12

slide-55
SLIDE 55

n2

→ write 12 ← ack → read ← 12 → read → write 20

Thursday, November 8, 12

slide-56
SLIDE 56

n2

→ write 12 ← ack → read ← 12 → read → write 20

Thursday, November 8, 12

slide-57
SLIDE 57

Thursday, November 8, 12

slide-58
SLIDE 58

Thursday, November 8, 12

slide-59
SLIDE 59

Partitioning

Thursday, November 8, 12

slide-60
SLIDE 60

Thursday, November 8, 12

slide-61
SLIDE 61

Thursday, November 8, 12

slide-62
SLIDE 62

G1 = {n1, n2, n3, n4,

n5, n6, n7, n16, n17, n18, n19, n20}

G2 = {n8, n9, n10, n11,

n12, n13, n14, n15}

Thursday, November 8, 12

slide-63
SLIDE 63

G1 = {n1, n2, n3, n4,

n5, n6, n7, n16, n17, n18, n19, n20}

G2 = {n8, n9, n10, n11,

n12, n13, n14, n15}

Thursday, November 8, 12

slide-64
SLIDE 64

Thursday, November 8, 12

slide-65
SLIDE 65

Theorem

Thursday, November 8, 12

slide-66
SLIDE 66

Shared atomic object Network divided into {G1, G2} All messages between G1 and G2 are lost Asynchronous message-passing network

Thursday, November 8, 12

slide-67
SLIDE 67

Suppose algorithm A meets all 3 of C, A, & P .

Thursday, November 8, 12

slide-68
SLIDE 68

v0 time

write v1

G1

α1

Thursday, November 8, 12

slide-69
SLIDE 69

v0 time

read ←v0

G2

α2

Thursday, November 8, 12

slide-70
SLIDE 70

v0 time

write v1

G1

read ←v0

G2

α = α1 + α2

Thursday, November 8, 12

slide-71
SLIDE 71

Thursday, November 8, 12

slide-72
SLIDE 72

loophole noun

Thursday, November 8, 12

slide-73
SLIDE 73

loophole noun

  • 1. A way of escaping a difficulty, especially an
  • mission or ambiguity in the wording of a

contract or law that provides a means of evading compliance.

Thursday, November 8, 12

slide-74
SLIDE 74

loophole noun

  • 1. A way of escaping a difficulty, especially an
  • mission or ambiguity in the wording of a

contract or law that provides a means of evading compliance.

  • 2. A small hole or slit in a wall, especially one

through which small arms may be fired.

Thursday, November 8, 12

slide-75
SLIDE 75

Loophole 1

Thursday, November 8, 12

slide-76
SLIDE 76

HQ9+

Thursday, November 8, 12

slide-77
SLIDE 77

Thursday, November 8, 12

slide-78
SLIDE 78

H Prints “Hello, World!”

Thursday, November 8, 12

slide-79
SLIDE 79

H Prints “Hello, World!” Q Prints source text

Thursday, November 8, 12

slide-80
SLIDE 80

H Prints “Hello, World!” Q Prints source text 9 Prints lyrics to 99 bottles

Thursday, November 8, 12

slide-81
SLIDE 81

H Prints “Hello, World!” Q Prints source text 9 Prints lyrics to 99 bottles + Increments the register

Thursday, November 8, 12

slide-82
SLIDE 82

Distributed HQ9+

Thursday, November 8, 12

slide-83
SLIDE 83

H Prints “Hello, World!” Q Prints source text 9 Prints lyrics to 99 bottles

Thursday, November 8, 12

slide-84
SLIDE 84

H Prints “Hello, World!” Q Prints source text 9 Prints lyrics to 99 bottles + Increments the distributed register

Thursday, November 8, 12

slide-85
SLIDE 85

Thursday, November 8, 12

slide-86
SLIDE 86

Loophole 2

Thursday, November 8, 12

slide-87
SLIDE 87

Write Once, Immutable Thereafter

Thursday, November 8, 12

slide-88
SLIDE 88

“Reading from immutable data is really fun, easy, and trivially consistent.”

  • - Eric Brewer, about an hour ago

Thursday, November 8, 12

slide-89
SLIDE 89

v0 time

G1 G2

Thursday, November 8, 12

slide-90
SLIDE 90

v0 time

G1 G2

read ←v0 read ←v0 read ←v0 read ←v0

Thursday, November 8, 12

slide-91
SLIDE 91

v0 time

G1 G2

read ←v0 read ←v0 read ←v0 read ←v0 read ←v0 read ←v0 read ←v0

Thursday, November 8, 12

slide-92
SLIDE 92

A = v0

time

read A

←v0

G1

read B

←w0

G2

new C, X

read B

←w0

read C

←X

read A

←v0

B = w0

Thursday, November 8, 12

slide-93
SLIDE 93

A = v0

time

read A

←v0

G1

read B

←w0

G2

new C, X

read B

←w0

read C

←X

read A

←v0

B = w0

Thursday, November 8, 12

slide-94
SLIDE 94

A bit of trickery?

Thursday, November 8, 12

slide-95
SLIDE 95

Loophole 3

Thursday, November 8, 12

slide-96
SLIDE 96

An older definition

  • f consistency

Thursday, November 8, 12

slide-97
SLIDE 97

The data base consists of entities which are related in certain ways. These relationships are best thought of as assertions about the data.

Thursday, November 8, 12

slide-98
SLIDE 98

Examples of such assertions are: “Names is an index for Telephone_numbers.” “The value of Count_of_X gives the number of employees in department X.”

Thursday, November 8, 12

slide-99
SLIDE 99

The data base is said to be consistent if it satisfies all its assertions. In some cases, the data base must become temporarily inconsistent in order to transform it to a new consistent state.

From "Granularity of Locks and Degrees of Consistency in a Shared Data Base", J.N. Gray, R.A. Lorie, G.R. Putzolu, I.L. Traiger, 1976

Thursday, November 8, 12

slide-100
SLIDE 100

The data base is said to be consistent if it satisfies all its assertions. In some cases, the data base must become temporarily inconsistent in order to transform it to a new consistent state.

From "Granularity of Locks and Degrees of Consistency in a Shared Data Base", J.N. Gray, R.A. Lorie, G.R. Putzolu, I.L. Traiger, 1976 From "Granularity of Locks and Degrees of Consistency in a Shared Data Base", J.N. Gray, R.A. Lorie, G.R. Putzolu, I.L. Traiger, 1976

Thursday, November 8, 12

slide-101
SLIDE 101

Consistency is a predicate C on entities and their values. The predicate is generally not known to the system but is embodied in the structure of the transactions.

From "Transactions and Consistency in Distributed Database Systems", I.L. Traiger, J.N. Gray, C.A. Galtieri, and B.G. Lindsay, 1982

Thursday, November 8, 12

slide-102
SLIDE 102

Can this kind of consistency be maintained in a distributed system?

Thursday, November 8, 12

slide-103
SLIDE 103

V = v0 time

G1 G2

read V

←v0 read X ←x1

X = x0

write X, x1 write V, v1

Thursday, November 8, 12

slide-104
SLIDE 104

V = v0 time

G1 G2

read V

←v0 read X ←x1

read V

←v0 write V, v1 write X, x1

read X

←x1

X = x0

write X, x1 write V, v1

Thursday, November 8, 12

slide-105
SLIDE 105

C R D T

Thursday, November 8, 12

slide-106
SLIDE 106

C R D T Commutative Replicated Data Type

Thursday, November 8, 12

slide-107
SLIDE 107

Loophole 4

Thursday, November 8, 12

slide-108
SLIDE 108

Partition A: <Ca, Ga, a1, a2, …, an>

Thursday, November 8, 12

slide-109
SLIDE 109

Partition A: <Ca, Ga, a1, a2, …, an> Ca

Consistency predicate over a1… an

Thursday, November 8, 12

slide-110
SLIDE 110

Partition A: <Ca, Ga, a1, a2, …, an> Ca

Consistency predicate over a1… an

Ga

Subset of nodes in network

Thursday, November 8, 12

slide-111
SLIDE 111

Partition A: <Ca, Ga, a1, a2, …, an> Ca

Consistency predicate over a1… an

Ga

Subset of nodes in network

ai

Value of variable i

Thursday, November 8, 12

slide-112
SLIDE 112

Partition A: <Ca, Ga, a1, a2, …, an> Ca

Consistency predicate over a1… an

Ga

Subset of nodes in network

ai

Value of variable i

Thursday, November 8, 12

slide-113
SLIDE 113

Partition A: <Ca, Ga, a1, a2, …, an>

Thursday, November 8, 12

slide-114
SLIDE 114

Partition A: <Ca, Ga, a1, a2, …, an>

Thursday, November 8, 12

slide-115
SLIDE 115

Partition A: <Ca, Ga, a1, a2, …, an> Partition B: <Cb, Gb, b1, b2, …, bm>

Thursday, November 8, 12

slide-116
SLIDE 116

Ga Gb

WAN

LOHRs LOHRs

Thursday, November 8, 12

slide-117
SLIDE 117

Loophole 5

Thursday, November 8, 12

slide-118
SLIDE 118

Bounded Consistency

Thursday, November 8, 12

slide-119
SLIDE 119

Thursday, November 8, 12

slide-120
SLIDE 120

Core

Thursday, November 8, 12

slide-121
SLIDE 121

Core Nebula

Thursday, November 8, 12

slide-122
SLIDE 122

Thursday, November 8, 12

slide-123
SLIDE 123

RDBMS

Thursday, November 8, 12

slide-124
SLIDE 124

RDBMS Memcached

Thursday, November 8, 12

slide-125
SLIDE 125

Thursday, November 8, 12

slide-126
SLIDE 126

Item Display A & P

Heavy caching

Bid History C & P

Strong consistency

Thursday, November 8, 12

slide-127
SLIDE 127

Loophole 6

Thursday, November 8, 12

slide-128
SLIDE 128

Stop building distributed systems

Thursday, November 8, 12

slide-129
SLIDE 129

Loophole 7

Thursday, November 8, 12

slide-130
SLIDE 130

Get a better network!

Thursday, November 8, 12

slide-131
SLIDE 131

Asynchronous message passing

Thursday, November 8, 12

slide-132
SLIDE 132

Asynchronous message passing That’s UDP!

Thursday, November 8, 12

slide-133
SLIDE 133

Semi-synchronous network

Lost messages are detected after time t (by a missed acknowledgement)

Thursday, November 8, 12

slide-134
SLIDE 134

“Delayed-t Consistency”

A partial ordering P orders all writes, and all reads with respect to writes. The value of every read is the one written by the previous write, where “previous” is under P . The order in P is consistent with the order of read and write requests at each node. If all messages are delivered and an operation θ Φ Φ

Thursday, November 8, 12

slide-135
SLIDE 135

The value of every read is the one written by the previous write, where “previous” is under P . The order in P is consistent with the order of read and write requests at each node. If all messages are delivered and an operation θ completes before Φ begins, then Φ does not precede θ in P . Assume an interval greater than t in which no messages are lost. Further assume that θ begins before the interval and Φ begins after the interval

  • ends. Then Φ does not precede θ in P

.

Thursday, November 8, 12

slide-136
SLIDE 136

“Delayed-t Consistency”

Thursday, November 8, 12

slide-137
SLIDE 137

“Eventual Consistency”

Thursday, November 8, 12

slide-138
SLIDE 138

Loophole 7

Thursday, November 8, 12

slide-139
SLIDE 139

Loophole 7

×

Thursday, November 8, 12

slide-140
SLIDE 140

Loophole 8

Thursday, November 8, 12

slide-141
SLIDE 141

Loophole 8 Use the Force

Thursday, November 8, 12

slide-142
SLIDE 142

Relativistic Quantum Field Theory

Thursday, November 8, 12

slide-143
SLIDE 143

Thursday, November 8, 12

slide-144
SLIDE 144

Thursday, November 8, 12

slide-145
SLIDE 145

Thursday, November 8, 12

slide-146
SLIDE 146

Thursday, November 8, 12

slide-147
SLIDE 147

GPS

Thursday, November 8, 12

slide-148
SLIDE 148

Loophole 9

Thursday, November 8, 12

slide-149
SLIDE 149

Redefine availability

Thursday, November 8, 12

slide-150
SLIDE 150

Normal Operation Partition Detected Query Alter Available Available Available Not available

Thursday, November 8, 12

slide-151
SLIDE 151

ASYMMETRY OF TIME

Send Request

Thursday, November 8, 12

slide-152
SLIDE 152

Send Request

100 ms 200 ms

ASYMMETRY OF TIME

Thursday, November 8, 12

slide-153
SLIDE 153

Send Request

100 ms 200 ms 300 ms 400 ms 500 ms 600 ms

ASYMMETRY OF TIME

Thursday, November 8, 12

slide-154
SLIDE 154

Send Request

100 ms 200 ms 300 ms 400 ms 500 ms 600 ms

Time Out

ASYMMETRY OF TIME

Thursday, November 8, 12

slide-155
SLIDE 155

900 100 200 300 400 500 600 700 800 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Time Elapsed (ms) Confidence of Response before Timeout

Thursday, November 8, 12

slide-156
SLIDE 156

Send Request

100 ms 200 ms 300 ms 400 ms 500 ms 600 ms

Time Out Response Arrives

ASYMMETRY OF TIME

Thursday, November 8, 12

slide-157
SLIDE 157

To the observer, there is no difference between “too slow” and “not there”.

Thursday, November 8, 12

slide-158
SLIDE 158

P A C E L C

Thursday, November 8, 12

slide-159
SLIDE 159

P A C E L C

Thursday, November 8, 12

slide-160
SLIDE 160

Partition? L C A C

Thursday, November 8, 12

slide-161
SLIDE 161

Partition? L C

Yes

A C

Thursday, November 8, 12

slide-162
SLIDE 162

Partition? Availability Consistency L C

Yes vs

A C

Thursday, November 8, 12

slide-163
SLIDE 163

Partition? Availability Consistency

Yes No vs

L C

Thursday, November 8, 12

slide-164
SLIDE 164

Partition? Availability Consistency Latency Consistency

Yes No vs vs

L C

Thursday, November 8, 12

slide-165
SLIDE 165

Loophole 10

Thursday, November 8, 12

slide-166
SLIDE 166

OBSERVABLE CONSISTENCY

Thursday, November 8, 12

slide-167
SLIDE 167

Porky Pig’s Window Shade

If Porky Pig is looking at the window shade, it will be down. If he is looking away from the window shade, it will be up.

Thursday, November 8, 12

slide-168
SLIDE 168

FIRST DIMENSION

X1 = {looking, not looking}

Thursday, November 8, 12

slide-169
SLIDE 169

SECOND DIMENSION

X1 = {looking, not looking} X2 = {shade open, shade closed}

Thursday, November 8, 12

slide-170
SLIDE 170

FORBIDDEN STATES

X1 = {looking, not looking} X2 = {shade open, shade closed}

Thursday, November 8, 12

slide-171
SLIDE 171

Back to “consistency” as a predicate over the state space

Thursday, November 8, 12

slide-172
SLIDE 172

time t11 t12

Thursday, November 8, 12

slide-173
SLIDE 173

Back to CAP

Thursday, November 8, 12

slide-174
SLIDE 174

None of these make CAP “untrue”

Thursday, November 8, 12

slide-175
SLIDE 175

None of these make CAP “untrue” Some of them operate under different assumptions.

Thursday, November 8, 12

slide-176
SLIDE 176

Some of them are totally impractical.

Thursday, November 8, 12

slide-177
SLIDE 177

Some of them are totally impractical. Some of them are in production today.

Thursday, November 8, 12

slide-178
SLIDE 178

Finally, I’ll close with this bit of code:

Thursday, November 8, 12

slide-179
SLIDE 179

Finally, I’ll close with this bit of code: QHH9Q+++

Thursday, November 8, 12

slide-180
SLIDE 180

mtnygard@thinkrelevance.com @mtnygard

Michael T. Nygard Relevance, Inc.

Thursday, November 8, 12