Slide 1

Slide 1 text

Declarative, Secure, Convergent Edge Computation Christopher Meiklejohn Université catholique de Louvain, Belgium 1

Slide 2

Slide 2 text

Internet of Things 2

Slide 3

Slide 3 text

Internet of Things 2 but, more generally…

Slide 4

Slide 4 text

Edge Computation • Logical extremes
 Pushing both computation and data to the logical extremes of the network 3

Slide 5

Slide 5 text

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 text

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 text

Example Application Hospital Refrigerators 4

Slide 8

Slide 8 text

Hospital Refrigerators Typical Topology 5

Slide 9

Slide 9 text

6

Slide 10

Slide 10 text

Internet 7

Slide 11

Slide 11 text

Internet HDFS 8

Slide 12

Slide 12 text

Internet HDFS Hadoop Client Client Internet 9

Slide 13

Slide 13 text

Internet HDFS Spark Client Client Internet 10

Slide 14

Slide 14 text

Hospital Refrigerators Ideal Execution 11

Slide 15

Slide 15 text

Internet HDFS Spark 12

Slide 16

Slide 16 text

Internet HDFS Spark 13

Slide 17

Slide 17 text

Internet HDFS Spark 14

Slide 18

Slide 18 text

Internet HDFS Spark 15

Slide 19

Slide 19 text

Internet HDFS Spark 16

Slide 20

Slide 20 text

Client Internet HDFS Spark 17

Slide 21

Slide 21 text

Problem Connectivity 18

Slide 22

Slide 22 text

Internet HDFS Spark 19

Slide 23

Slide 23 text

Internet HDFS Spark 20

Slide 24

Slide 24 text

Internet HDFS Spark 21

Slide 25

Slide 25 text

Internet HDFS Spark 22

Slide 26

Slide 26 text

Internet HDFS Spark 23

Slide 27

Slide 27 text

Internet HDFS Spark 24

Slide 28

Slide 28 text

Internet HDFS Spark 25

Slide 29

Slide 29 text

Solution Local Decisions 26

Slide 30

Slide 30 text

Internet HDFS Spark 27

Slide 31

Slide 31 text

Internet HDFS Spark 28

Slide 32

Slide 32 text

Internet HDFS Spark 29

Slide 33

Slide 33 text

Internet HDFS Spark 30

Slide 34

Slide 34 text

Internet HDFS Spark 31

Slide 35

Slide 35 text

Local Decisions • Not new for backup (80s-90s)
 Backup communication mechanisms for critical systems; POTS backup for ISDN, etc. 32

Slide 36

Slide 36 text

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 text

Solution Transitive Dissemination 33

Slide 38

Slide 38 text

Internet HDFS Spark 34

Slide 39

Slide 39 text

Internet HDFS Spark 35

Slide 40

Slide 40 text

Internet HDFS Spark 36

Slide 41

Slide 41 text

Internet HDFS Spark 37

Slide 42

Slide 42 text

Internet HDFS Spark 38

Slide 43

Slide 43 text

Internet HDFS Spark Client 39

Slide 44

Slide 44 text

Problem State Transmission 40

Slide 45

Slide 45 text

Internet 41

Slide 46

Slide 46 text

Internet 42

Slide 47

Slide 47 text

Internet 43

Slide 48

Slide 48 text

Internet 44

Slide 49

Slide 49 text

Solution Aggregate Dissemination 45

Slide 50

Slide 50 text

Internet 46

Slide 51

Slide 51 text

Internet 47

Slide 52

Slide 52 text

Internet 48

Slide 53

Slide 53 text

Internet HDFS 49

Slide 54

Slide 54 text

Internet = = HDFS 50

Slide 55

Slide 55 text

Internet ? = = 51

Slide 56

Slide 56 text

Internet ? = = 52

Slide 57

Slide 57 text

Local Computation • Reduce state transmission
 Perform some local computation to reduce transmitted state on the wire 53

Slide 58

Slide 58 text

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 text

Databases Consistency Models 54

Slide 60

Slide 60 text

Databases Strong Consistency 55

Slide 61

Slide 61 text

R1 C1 C2 56

Slide 62

Slide 62 text

R1 C1 C2 57

Slide 63

Slide 63 text

R1 C1 C2 Read 58

Slide 64

Slide 64 text

R1 C1 C2 Read 59

Slide 65

Slide 65 text

R1 C1 C2 60

Slide 66

Slide 66 text

R1 C1 C2 CAS 61

Slide 67

Slide 67 text

R1 C1 C2 62

Slide 68

Slide 68 text

R1 C1 C2 CAS 63

Slide 69

Slide 69 text

I won’t diagram the Paxos protocol 64

Slide 70

Slide 70 text

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

Slide 71

Slide 71 text

Databases Eventual Consistency 66

Slide 72

Slide 72 text

R1 R2 R3 C1 C2 67

Slide 73

Slide 73 text

R1 R2 R3 C1 C2 68

Slide 74

Slide 74 text

R1 R2 R3 C1 C2 Read 69

Slide 75

Slide 75 text

R1 R2 R3 C1 C2 Read 70

Slide 76

Slide 76 text

R1 R2 R3 C1 C2 Write 71

Slide 77

Slide 77 text

R1 R2 R3 C1 C2 Write 72

Slide 78

Slide 78 text

R1 R2 R3 C1 C2 Write C1 73

Slide 79

Slide 79 text

R1 R2 R3 C1 C2 Read 74

Slide 80

Slide 80 text

R1 R2 R3 C1 C2 Write 75

Slide 81

Slide 81 text

Eventual Consistency As The Model 76

Slide 82

Slide 82 text

Clients Own Their Data 77

Slide 83

Slide 83 text

78

Slide 84

Slide 84 text

79

Slide 85

Slide 85 text

80

Slide 86

Slide 86 text

Computations Mergeability & Provenance 81

Slide 87

Slide 87 text

A A B C 82

Slide 88

Slide 88 text

A A B C D’ D’’ F F 83

Slide 89

Slide 89 text

A A B C D’ D’’ D’ D’’ D   F F 84

Slide 90

Slide 90 text

D’’ A A B C D’ D’ D’’ D   D D Merge F F 85

Slide 91

Slide 91 text

Example Application Preliminary Results 86

Slide 92

Slide 92 text

Preliminary Results • Conflict-Free Replicated Data Types
 Distributed data structures designed for convergence 
 [Shapiro et al., 2011] 87

Slide 93

Slide 93 text

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 text

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 text

Conflict-Free 
 Replicated Data Types • Collection of types
 Sets, counters, registers, flags, maps 88

Slide 96

Slide 96 text

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 text

RA RB RC

Slide 98

Slide 98 text

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

Slide 99

Slide 99 text

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

Slide 100

Slide 100 text

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

Slide 101

Slide 101 text

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 text

Lattice Processing • Distributed dataflow
 Declarative, functional programming model 94

Slide 103

Slide 103 text

Lattice Processing • Distributed dataflow
 Declarative, functional programming model • Convergent data structures
 Data abstraction is the CRDT 94

Slide 104

Slide 104 text

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 text

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 text

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 text

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 text

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 text

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 text

Delta-based Dissemination • Delta-state based CRDTs
 Reduces state transmission for clients 100

Slide 111

Slide 111 text

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 text

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 text

No content

Slide 114

Slide 114 text

No content

Slide 115

Slide 115 text

No content

Slide 116

Slide 116 text

No content

Slide 117

Slide 117 text

No content

Slide 118

Slide 118 text

No content

Slide 119

Slide 119 text

No content

Slide 120

Slide 120 text

No content

Slide 121

Slide 121 text

Selective Hearing • Epidemic broadcast protocol
 Runtime system for application state & scope 109

Slide 122

Slide 122 text

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 text

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 text

Membership Overlay

Slide 125

Slide 125 text

Membership Overlay Broadcast Overlay

Slide 126

Slide 126 text

Membership Overlay Broadcast Overlay

Slide 127

Slide 127 text

Membership Overlay Broadcast Overlay Mobile Phone

Slide 128

Slide 128 text

Membership Overlay Broadcast Overlay Mobile Phone Distributed Hash Table

Slide 129

Slide 129 text

Membership Overlay Broadcast Overlay Mobile Phone Distributed Hash Table Lasp Execution

Slide 130

Slide 130 text

What can we build? Advertisement Counter 116

Slide 131

Slide 131 text

Advertisement Counter • Mobile game platform selling advertisement space
 Advertisements are paid according to a minimum number of impressions 117

Slide 132

Slide 132 text

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 text

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 text

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Riot Ads Rovio Ads Product Read 50,000 Remove Increment 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 text

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 1 Rovio Ad Counter 1 Rovio Ad Counter 1 Client 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 text

Ads ovio Ad ounter 1 ovio Ad ounter 2 Riot Ad ounter 1 Riot Ad ounter 2 Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product Read 50,000 Remove Increment Read Union Rovio Ad Counter 1 Ro C Rovio Ad Counter 1 Ro C Rovio Ad Counter 1 Ro C Rovio Ad Counter 1 Ro C Client Side, Sing 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 text

Ads Contracts Ads Contracts Ads With Contracts Riot Ads Rovio Ads Filter Product move 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 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 text

Ads Contracts Ads Contracts Ads With Contracts Filter Product 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 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 text

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 text

Ads Rovio Ad Counter 1 Rovio Ad Counter 2 Riot Ad Counter 1 Riot Ad Counter 2 Contracts Ads Contracts Riot Ads Rovio Ads Fil 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 text

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 text

Advertisement Counter • Completely monotonic
 Disabling advertisements and contracts are all modeled through monotonic state growth 127

Slide 143

Slide 143 text

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 text

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 text

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 text

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 text

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 text

Advertisement Counter • “Servers” as peers to “clients”
 Servers are peers to clients that perform additional computation 131

Slide 149

Slide 149 text

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 text

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 text

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 text

We’ve built up from zero synchronization 132

Slide 153

Slide 153 text

We’ve built up from zero synchronization 132 Instead of working to remove synchronization

Slide 154

Slide 154 text

Challenges Looking Ahead 133

Slide 155

Slide 155 text

Causality State Explosion 134

Slide 156

Slide 156 text

Set Counter

Slide 157

Slide 157 text

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

Slide 158

Slide 158 text

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

Slide 159

Slide 159 text

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

Slide 160

Slide 160 text

Security Computing at the Edge 139

Slide 161

Slide 161 text

140

Slide 162

Slide 162 text

Computations Expressiveness 141

Slide 163

Slide 163 text

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

Slide 164

Slide 164 text

How do I learn more? 143

Slide 165

Slide 165 text

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 text

Three independently successful techniques. 145

Slide 167

Slide 167 text

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

Slide 168

Slide 168 text

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