Declarative, Secure, Convergent Edge Computation Christopher - - PowerPoint PPT Presentation

declarative secure convergent edge computation
SMART_READER_LITE
LIVE PREVIEW

Declarative, Secure, Convergent Edge Computation Christopher - - PowerPoint PPT Presentation

Declarative, Secure, Convergent Edge Computation Christopher Meiklejohn Universit catholique de Louvain, Belgium 1 Internet of Things 2 Internet of Things but, more generally 2 Edge Computation Logical extremes Pushing both


slide-1
SLIDE 1

Declarative, Secure, Convergent Edge Computation

Christopher Meiklejohn Université catholique de Louvain, Belgium

1

slide-2
SLIDE 2

Internet of Things

2

slide-3
SLIDE 3

Internet of Things

2

but, more generally…

slide-4
SLIDE 4

Edge Computation

  • Logical extremes


Pushing both computation and data to the logical extremes of the network

3

slide-5
SLIDE 5

Edge Computation

  • Logical extremes


Pushing both computation and data to the logical extremes of the network

  • Arbitrary computation


Support arbitrary computations regardless of location of data in the network

3

slide-6
SLIDE 6

Edge Computation

  • Logical extremes


Pushing both computation and data to the logical extremes of the network

  • Arbitrary computation


Support arbitrary computations regardless of location of data in the network

  • Self-organizing, resilient


Directed diffusion, Cornell circa-1990; self-organizing systems that coordinate to complete computations

3

slide-7
SLIDE 7

Example Application Hospital Refrigerators

4

slide-8
SLIDE 8

Hospital Refrigerators Typical Topology

5

slide-9
SLIDE 9

6

slide-10
SLIDE 10

Internet

7

slide-11
SLIDE 11

Internet HDFS

8

slide-12
SLIDE 12

Internet HDFS Hadoop Client Client Internet

9

slide-13
SLIDE 13

Internet HDFS Spark Client Client Internet

10

slide-14
SLIDE 14

Hospital Refrigerators Ideal Execution

11

slide-15
SLIDE 15

Internet HDFS Spark

12

slide-16
SLIDE 16

Internet HDFS Spark

13

slide-17
SLIDE 17

Internet HDFS Spark

14

slide-18
SLIDE 18

Internet HDFS Spark

15

slide-19
SLIDE 19

Internet HDFS Spark

16

slide-20
SLIDE 20

Client Internet HDFS Spark

17

slide-21
SLIDE 21

Problem Connectivity

18

slide-22
SLIDE 22

Internet HDFS Spark

19

slide-23
SLIDE 23

Internet HDFS Spark

20

slide-24
SLIDE 24

Internet HDFS Spark

21

slide-25
SLIDE 25

Internet HDFS Spark

22

slide-26
SLIDE 26

Internet HDFS Spark

23

slide-27
SLIDE 27

Internet HDFS Spark

24

slide-28
SLIDE 28

Internet HDFS Spark

25

slide-29
SLIDE 29

Solution Local Decisions

26

slide-30
SLIDE 30

Internet HDFS Spark

27

slide-31
SLIDE 31

Internet HDFS Spark

28

slide-32
SLIDE 32

Internet HDFS Spark

29

slide-33
SLIDE 33

Internet HDFS Spark

30

slide-34
SLIDE 34

Internet HDFS Spark

31

slide-35
SLIDE 35

Local Decisions

  • Not new for backup (80s-90s)


Backup communication mechanisms for critical systems; POTS backup for ISDN, etc.

32

slide-36
SLIDE 36

Local Decisions

  • Not new for backup (80s-90s)


Backup communication mechanisms for critical systems; POTS backup for ISDN, etc.

  • Not new for storage (90s-00s)


EMC’s “phone home” via POTS when disks failed in NAS devices to signal for replacement unit

32

slide-37
SLIDE 37

Solution Transitive Dissemination

33

slide-38
SLIDE 38

Internet HDFS Spark

34

slide-39
SLIDE 39

Internet HDFS Spark

35

slide-40
SLIDE 40

Internet HDFS Spark

36

slide-41
SLIDE 41

Internet HDFS Spark

37

slide-42
SLIDE 42

Internet HDFS Spark

38

slide-43
SLIDE 43

Internet HDFS Spark Client

39

slide-44
SLIDE 44

Problem State Transmission

40

slide-45
SLIDE 45

Internet

41

slide-46
SLIDE 46

Internet

42

slide-47
SLIDE 47

Internet

43

slide-48
SLIDE 48

Internet

44

slide-49
SLIDE 49

Solution Aggregate Dissemination

45

slide-50
SLIDE 50

Internet

46

slide-51
SLIDE 51

Internet

47

slide-52
SLIDE 52

Internet

48

slide-53
SLIDE 53

Internet HDFS

49

slide-54
SLIDE 54

Internet

= =

HDFS

50

slide-55
SLIDE 55

Internet ?

= =

51

slide-56
SLIDE 56

Internet ?

= =

52

slide-57
SLIDE 57

Local Computation

  • Reduce state transmission


Perform some local computation to reduce transmitted state on the wire

53

slide-58
SLIDE 58

Local Computation

  • Reduce state transmission


Perform some local computation to reduce transmitted state on the wire

  • Make local decisions


Make decisions based on results of local computation

53

slide-59
SLIDE 59

Databases Consistency Models

54

slide-60
SLIDE 60

Databases Strong Consistency

55

slide-61
SLIDE 61

R1 C1 C2

56

slide-62
SLIDE 62

R1 C1 C2

57

slide-63
SLIDE 63

R1 C1 C2 Read

58

slide-64
SLIDE 64

R1 C1 C2 Read

59

slide-65
SLIDE 65

R1 C1 C2

60

slide-66
SLIDE 66

R1 C1 C2 CAS

61

slide-67
SLIDE 67

R1 C1 C2

62

slide-68
SLIDE 68

R1 C1 C2 CAS

63

slide-69
SLIDE 69

I won’t diagram the Paxos protocol

64

slide-70
SLIDE 70

R2 C1 C2 Value 2 Value 1 Value 2 R1 R3 Paxos

65

slide-71
SLIDE 71

Databases Eventual Consistency

66

slide-72
SLIDE 72

R1 R2 R3 C1 C2

67

slide-73
SLIDE 73

R1 R2 R3 C1 C2

68

slide-74
SLIDE 74

R1 R2 R3 C1 C2 Read

69

slide-75
SLIDE 75

R1 R2 R3 C1 C2 Read

70

slide-76
SLIDE 76

R1 R2 R3 C1 C2 Write

71

slide-77
SLIDE 77

R1 R2 R3 C1 C2 Write

72

slide-78
SLIDE 78

R1 R2 R3 C1 C2 Write C1

73

slide-79
SLIDE 79

R1 R2 R3 C1 C2 Read

74

slide-80
SLIDE 80

R1 R2 R3 C1 C2 Write

75

slide-81
SLIDE 81

Eventual Consistency As The Model

76

slide-82
SLIDE 82

Clients Own Their Data

77

slide-83
SLIDE 83

78

slide-84
SLIDE 84

79

slide-85
SLIDE 85

80

slide-86
SLIDE 86

Computations

Mergeability & Provenance

81

slide-87
SLIDE 87

A A B C

82

slide-88
SLIDE 88

A A B C D’ D’’

F F

83

slide-89
SLIDE 89

A A B C D’ D’’ D’ D’’ D

≤ ≤

F F

84

slide-90
SLIDE 90

D’’ A A B C D’ D’ D’’ D

≤ ≤

D D

Merge

F F

85

slide-91
SLIDE 91

Example Application Preliminary Results

86

slide-92
SLIDE 92

Preliminary Results

  • Conflict-Free Replicated Data Types


Distributed data structures designed for convergence 
 [Shapiro et al., 2011]

87

slide-93
SLIDE 93

Preliminary Results

  • Conflict-Free Replicated Data Types


Distributed data structures designed for convergence 
 [Shapiro et al., 2011]

  • Lattice Processing


Make decisions based on results of local computation
 [Meiklejohn & Van Roy, 2015]

87

slide-94
SLIDE 94

Preliminary Results

  • Conflict-Free Replicated Data Types


Distributed data structures designed for convergence 
 [Shapiro et al., 2011]

  • Lattice Processing


Make decisions based on results of local computation
 [Meiklejohn & Van Roy, 2015]

  • Selective Hearing


Scalable, epidemic broadcast based runtime system
 [Meiklejohn & Van Roy, 2015/2016]

87

slide-95
SLIDE 95

Conflict-Free 
 Replicated Data Types

  • Collection of types


Sets, counters, registers, flags, maps

88

slide-96
SLIDE 96

Conflict-Free 
 Replicated Data Types

  • Collection of types


Sets, counters, registers, flags, maps

  • Strong Eventual Consistency (SEC)


Objects that receive the same updates, regardless of order, will reach equivalent state

88

slide-97
SLIDE 97

RA RB RC

slide-98
SLIDE 98

RA RB RC {1} (1, {a}, {}) add(1)

slide-99
SLIDE 99

RA RB RC {1} (1, {a}, {}) add(1) {1} (1, {c}, {}) add(1)

slide-100
SLIDE 100

RA RB RC {1} (1, {a}, {}) add(1) {1} (1, {c}, {}) add(1) {} (1, {c}, {c}) remove(1)

slide-101
SLIDE 101

RA RB RC {1} (1, {a}, {}) add(1) {1} (1, {c}, {}) add(1) {} (1, {c}, {c}) remove(1) {1} {1} {1} (1, {a, c}, {c}) (1, {a, c}, {c}) (1, {a, c}, {c})

slide-102
SLIDE 102

Lattice Processing

  • Distributed dataflow


Declarative, functional programming model

94

slide-103
SLIDE 103

Lattice Processing

  • Distributed dataflow


Declarative, functional programming model

  • Convergent data structures


Data abstraction is the CRDT

94

slide-104
SLIDE 104

Lattice Processing

  • Distributed dataflow


Declarative, functional programming model

  • Convergent data structures


Data abstraction is the CRDT

  • Enables composition


Composition preserves SEC

94

slide-105
SLIDE 105

95

%% Create initial set. S1 = declare(set), %% Add elements to initial set and update. update(S1, {add, [1,2,3]}), %% Create second set. S2 = declare(set), %% Apply map operation between S1 and S2. map(S1, fun(X) -> X * 2 end, S2).

slide-106
SLIDE 106

96

%% Create initial set. S1 = declare(set), %% Add elements to initial set and update. update(S1, {add, [1,2,3]}), %% Create second set. S2 = declare(set), %% Apply map operation between S1 and S2. map(S1, fun(X) -> X * 2 end, S2).

slide-107
SLIDE 107

97

%% Create initial set. S1 = declare(set), %% Add elements to initial set and update. update(S1, {add, [1,2,3]}), %% Create second set. S2 = declare(set), %% Apply map operation between S1 and S2. map(S1, fun(X) -> X * 2 end, S2).

slide-108
SLIDE 108

98

%% Create initial set. S1 = declare(set), %% Add elements to initial set and update. update(S1, {add, [1,2,3]}), %% Create second set. S2 = declare(set), %% Apply map operation between S1 and S2. map(S1, fun(X) -> X * 2 end, S2).

slide-109
SLIDE 109

99

%% Create initial set. S1 = declare(set), %% Add elements to initial set and update. update(S1, {add, [1,2,3]}), %% Create second set. S2 = declare(set), %% Apply map operation between S1 and S2. map(S1, fun(X) -> X * 2 end, S2).

slide-110
SLIDE 110

Delta-based Dissemination

  • Delta-state based CRDTs


Reduces state transmission for clients

100

slide-111
SLIDE 111

Delta-based Dissemination

  • Delta-state based CRDTs


Reduces state transmission for clients

  • Operate locally


Objects are mutated locally; deltas buffered locally and periodically gossiped

100

slide-112
SLIDE 112

Delta-based Dissemination

  • Delta-state based CRDTs


Reduces state transmission for clients

  • Operate locally


Objects are mutated locally; deltas buffered locally and periodically gossiped

  • Only fixed number of clients


Clients resort to full state synchronization when they’ve been partitioned too long

100

slide-113
SLIDE 113
slide-114
SLIDE 114
slide-115
SLIDE 115
slide-116
SLIDE 116
slide-117
SLIDE 117
slide-118
SLIDE 118
slide-119
SLIDE 119
slide-120
SLIDE 120
slide-121
SLIDE 121

Selective Hearing

  • Epidemic broadcast protocol


Runtime system for application state & scope

109

slide-122
SLIDE 122

Selective Hearing

  • Epidemic broadcast protocol


Runtime system for application state & scope

  • Peer-to-peer dissemination


Pairwise synchronization between peers without a central coordinator

109

slide-123
SLIDE 123

Selective Hearing

  • Epidemic broadcast protocol


Runtime system for application state & scope

  • Peer-to-peer dissemination


Pairwise synchronization between peers without a central coordinator

  • No ordering guarantees on messages


Programming model can tolerate message reordering and duplication

109

slide-124
SLIDE 124

Membership Overlay

slide-125
SLIDE 125

Membership Overlay Broadcast Overlay

slide-126
SLIDE 126

Membership Overlay Broadcast Overlay

slide-127
SLIDE 127

Membership Overlay Broadcast Overlay Mobile Phone

slide-128
SLIDE 128

Membership Overlay Broadcast Overlay Mobile Phone Distributed Hash Table

slide-129
SLIDE 129

Membership Overlay Broadcast Overlay Mobile Phone Distributed Hash Table Lasp Execution

slide-130
SLIDE 130

What can we build? Advertisement Counter

116

slide-131
SLIDE 131

Advertisement Counter

  • Mobile game platform selling

advertisement space
 Advertisements are paid according to a minimum number of impressions

117

slide-132
SLIDE 132

Advertisement Counter

  • Mobile game platform selling

advertisement space
 Advertisements are paid according to a minimum number of impressions

  • Clients will go offline


Clients have limited connectivity and the system still needs to make progress while clients are offline

117

slide-133
SLIDE 133

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Read ≥ 50,000 Remove Increment Read Union Lasp Operation User-Maintained CRDT Lasp-Maintained CRDT

Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1

Client Side, Single Copy at Client

118

slide-134
SLIDE 134

Ads Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Riot Ads Ads Product Union

119

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Read ≥ 50,000 Remove Increment Read Union Lasp Operation User-Maintained CRDT Lasp-Maintained CRDT Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Client Side, Single Copy at Client
slide-135
SLIDE 135

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Read ≥ 50,000 Remove Increment Union

120

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Read ≥ 50,000 Remove Increment Read Union Lasp Operation User-Maintained CRDT Lasp-Maintained CRDT Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Client Side, Single Copy at Client
slide-136
SLIDE 136

Ads Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Remove Union

121

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Read ≥ 50,000 Remove Increment Read Union Lasp Operation User-Maintained CRDT Lasp-Maintained CRDT Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Client Side, Single Copy at Client
slide-137
SLIDE 137

Ads Contracts Ads Contracts Ads With Contracts Filter Product Read

Rovio Ad Counter 1 Rovio Ad Counter 2 Rovio Ad Counter 1 Rovio Ad Counter 2 Rovio Ad Counter 1 Rovio Ad Counter 2 Rovio Ad Counter 1 Rovio Ad Counter 2

122

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Read ≥ 50,000 Remove Increment Read Union Lasp Operation User-Maintained CRDT Lasp-Maintained CRDT Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Client Side, Single Copy at Client
slide-138
SLIDE 138

Ads Contracts Ads With Contracts Filter Product Read

Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1

Client Side, Single Copy at Client

123

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Read ≥ 50,000 Remove Increment Read Union Lasp Operation User-Maintained CRDT Lasp-Maintained CRDT Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Client Side, Single Copy at Client
slide-139
SLIDE 139

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Read ≥ 50,000 Remove Increment Read Union

Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1

Client Side, Single Copy at Client

124

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Read ≥ 50,000 Remove Increment Read Union Lasp Operation User-Maintained CRDT Lasp-Maintained CRDT Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Client Side, Single Copy at Client
slide-140
SLIDE 140

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Contracts Riot Ads Rovio Ads Product Read ≥ 50,000 Remove Increment Union

125

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Read ≥ 50,000 Remove Increment Read Union Lasp Operation User-Maintained CRDT Lasp-Maintained CRDT Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Client Side, Single Copy at Client
slide-141
SLIDE 141

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Read ≥ 50,000 Remove Increment Read Union

Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1

Client Side, Single Copy at Client

126

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Read ≥ 50,000 Remove Increment Read Union Lasp Operation User-Maintained CRDT Lasp-Maintained CRDT Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Client Side, Single Copy at Client
slide-142
SLIDE 142

Advertisement Counter

  • Completely monotonic


Disabling advertisements and contracts are all modeled through monotonic state growth

127

slide-143
SLIDE 143

Advertisement Counter

  • Completely monotonic


Disabling advertisements and contracts are all modeled through monotonic state growth

  • Arbitrary distribution


Use of convergent data structures allows computational graph to be arbitrarily distributed

127

slide-144
SLIDE 144

Advertisement Counter

  • Completely monotonic


Disabling advertisements and contracts are all modeled through monotonic state growth

  • Arbitrary distribution


Use of convergent data structures allows computational graph to be arbitrarily distributed

  • Divergence


Divergence is a factor of synchronization period

127

slide-145
SLIDE 145

Client3

Lasp Operation User-Maintained CRDT Lasp-Maintained CRDT

Riot Ad Counter 1

Client1 Client2

Rovio Ad Counter 1 Rovio Ad Counter 2 Rovio Ad Counter 1 Rovio Ad Counter 2 Rovio Ad Counter 1 Riot Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 1

Ads With Contracts Ads With Contracts Ads With Contracts

Server

Ads With Contracts

Server Computation!

128

slide-146
SLIDE 146

Client3

Lasp Operation User-Maintained CRDT Lasp-Maintained CRDT

Riot Ad Counter 1

Client1 Client2

Rovio Ad Counter 1 Rovio Ad Counter 2 Rovio Ad Counter 1 Rovio Ad Counter 2 Rovio Ad Counter 1 Riot Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 1

Ads With Contracts Ads With Contracts Ads With Contracts

Server

Ads With Contracts

Server Computation!

129

slide-147
SLIDE 147

Client3

Lasp Operation User-Maintained CRDT Lasp-Maintained CRDT

Riot Ad Counter 1

Client1 Client2

Rovio Ad Counter 1 Rovio Ad Counter 2 Rovio Ad Counter 1 Rovio Ad Counter 2 Rovio Ad Counter 1 Riot Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 1

Ads With Contracts Ads With Contracts Ads With Contracts

Server

Ads With Contracts

Server Computation!

130

slide-148
SLIDE 148

Advertisement Counter

  • “Servers” as peers to “clients”


Servers are peers to clients that perform additional computation

131

slide-149
SLIDE 149

Advertisement Counter

  • “Servers” as peers to “clients”


Servers are peers to clients that perform additional computation

  • Any node can disable an advertisement under this

model given enough information

131

slide-150
SLIDE 150

Advertisement Counter

  • “Servers” as peers to “clients”


Servers are peers to clients that perform additional computation

  • Any node can disable an advertisement under this

model given enough information

  • “Servers” as trusted nodes


Serve as a location for performing “exactly once” side- effects

131

slide-151
SLIDE 151

Advertisement Counter

  • “Servers” as peers to “clients”


Servers are peers to clients that perform additional computation

  • Any node can disable an advertisement under this

model given enough information

  • “Servers” as trusted nodes


Serve as a location for performing “exactly once” side- effects

  • Billing customers must be done at a central point by a

trusted node in the system

131

slide-152
SLIDE 152

We’ve built up from zero synchronization

132

slide-153
SLIDE 153

We’ve built up from zero synchronization

132

Instead of working to remove synchronization

slide-154
SLIDE 154

Challenges Looking Ahead

133

slide-155
SLIDE 155

Causality State Explosion

134

slide-156
SLIDE 156

Set Counter

slide-157
SLIDE 157

Set Counter {1} (1, {c}, {}) 1 {(c, 1)}, {}

slide-158
SLIDE 158

Set Counter {1} (1, {c}, {}) 1 {(c, 1)}, {} {} (1, {c}, {c}) {(c, 1)}, {(c, 1)}

slide-159
SLIDE 159

Set Counter {1} (1, {c}, {}) 1 {(c, 1)}, {} {} (1, {c}, {c}) {(c, 1)}, {(c, 1)} {1} (1, {a, c}, {c}) {1} 1 1 {(c, 1), (a, 1}}, {(c, 1)}

slide-160
SLIDE 160

Security Computing at the Edge

139

slide-161
SLIDE 161

140

slide-162
SLIDE 162

Computations Expressiveness

141

slide-163
SLIDE 163

How restrictive is a programming model where operations must be associative, commutative, and idempotent?

142

slide-164
SLIDE 164

How do I learn more?

143

slide-165
SLIDE 165

Publications

  • “Lasp: A Language for Distributed, Coordination-Free Programming” 


ACM SIGPLAN PPDP 2015

  • “Selective Hearing: An Approach to Distributed, Eventually Consistent Edge

Computation”
 IEEE W-PSDS 2015

  • “The Implementation and Use of a Generic Dataflow Behaviour in Erlang”


ACM SIGPLAN Erlang Workshop ’15

  • “Lasp: A Language for Distributed, Eventually Consistent Computations with CRDTs"


PaPoC 2015

  • “Declarative, Sliding Window Aggregations for Computations at the Edge"


IEEE EdgeCom 2016

144

slide-166
SLIDE 166

Three independently successful techniques.

145

slide-167
SLIDE 167

Can we combine them into a cohesive programming environment for distributed programming?

146

slide-168
SLIDE 168

147

Christopher Meiklejohn @cmeik http://www.lasp-lang.org

Thanks!