a declarative approach to distributed...
TRANSCRIPT
![Page 1: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/1.jpg)
A Declarative Approach to Distributed Computing:
Specification, Execution & Analysis
Jiefei Ma, Franck Le, David Wood
Alessandra Russo, Jorge Lobo
Imperial College, IBM, ICREA-Univeristat Pomeu Fabra
![Page 2: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/2.jpg)
Path-vector Routing Table
2
a b c d
Destination SPath
b [b]
c [c]
d [c,d]
![Page 3: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/3.jpg)
Distance-vector Routing Table
3
a b c d 1 1 1
3
Destination Next Hop
b b
c b
d b
![Page 4: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/4.jpg)
Path-vector Routing Table
4
a b c d
Destination SPath
b [b]
c [c]
d [c,d]
path(S,D,[S,D],1) :- link(S,D). path(S,D,[S|P],C+1) :- link(S,Z), path(Z,D,C), S=/=D, S not in P. bestCost(S,D,min<C>) :- path(S,D,P,C). routeTable(S,D,SPath) :- bestCost(S,D,C), path(S,D,SPath,C).
![Page 5: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/5.jpg)
Declarative Networking
5
a b c d
Destination SPath
b [b]
c [c]
d [c,d]
path(@S,D,[S,D],1) :- link(@S,D). path(@S,D,[S|P],C+1) :- link(@S,Z), path(@Z,D,C), S=/=D, S not in P.
![Page 6: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/6.jpg)
Declarative Networking
6
a b c d
Destination SPath
b [b]
c [c]
d [c,d]
path(@S,D,[S,D],1) :- link(@S,D). path(@S,D,[S|P],C+1) :- link(@S,Z), path(@Z,D,C), S=/=D, S not in P. Copying the program in each node, doing a bottom-up computation and placing the ground atoms in the right location, the network eventually computes all the paths.
![Page 7: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/7.jpg)
Declarative Networking
7
a b c d
Destination Path
b [b]
c [c]
d [c,d]
linkr(@Z,S) :- link(@S,Z). path(@S,D,[S,D],1) :- link(@S,D). path(@S,D,[S|P],C+1) :- linkr(@Z,S), path(@Z,D,C), S=/=D, S not in P.
By re-writing the rules, implementations may decide where
rule bodies are evaluated
![Page 8: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/8.jpg)
Declarative Networking
8
a b c d
Destination SPath
b [b]
c [c]
d [c,d]
The distributed evaluation of these rules is more complicated – How long
should a node wait before it can compute the aggregation?
bestCost(@S,D,min<C>) :- path(@S,D,P,C). routeTable(@S,D,P) :- bestCost(@S,D,C), path(@S,D,P,C).
![Page 9: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/9.jpg)
Declarative Networking
9
a b c d
Destination SPath
b [b]
c [c]
d [c,d]
And, in general, changes of state needed to be captured when there
are changes in the topology are captured outside logic
![Page 10: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/10.jpg)
10
Our Approach: Distributed State Machine
Application node
D. State Machine
Application node
D. State Machine
Application node
D. State Machine
Application node
D. State Machine
Application node
D. State Machine
Application node
D. State Machine
Application node
D. State Machine
Application node
D. State Machine
![Page 11: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/11.jpg)
11
Application code
Transition function F
An Application Node
Data (State)
Messages Messages
An I/O automaton defined using a dialect of C+ in which •States: are sets of fluents •Messages and Application Input: are two disjoint sets of actions called communication and input actions respectively
And F is defined using static, dynamic and communication laws
input
![Page 12: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/12.jpg)
12
A Voting Algorithm Example
•Each node has an initial opinion of either good (blue) or bad (red) •Nodes communicate their opinions to their neighbors •Node switches opinion if the majority of nodes in the neighborhood are of the opposite opinion •And informs of the change to the neighbors •Repeat
![Page 13: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/13.jpg)
13
Voting DSM(i) Schema caused neighbour_opinion(X, O) after send_vote(O, X, i).
caused neighbour_opinion(X, OldO) after
neighbour_opinion(X, OldO), not send_vote(AnyO, X, i).
caused num_bad( #count<X> ) if neighbour_opinion(X, bad).
caused num_good( #count<X> ) if neighbour_colour(X, good).
caused my_opinion( bad) if
num_bad( B), num_good( G), B >= G.
caused my_opinion( good) if
num_bad( B), num_good( G), B < G.
sent send_vote(O, i, X) if
my_opinion(O) , neighbour(X),
after my_opinion( OldO), O != OldO.
![Page 14: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/14.jpg)
14
Connecting DSMs • I/O automaton composition: a
composition is realized by identifying actions in different automata with the same name as the same action, and compositions are allowed if the automata are compatible.
• A collection of automata is compatible iff all the set of output actions are pair-wise disjoint
![Page 15: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/15.jpg)
15
Voting DSM(i) Schema caused neighbour_opinion(X, O) after receive_vote(O, X, i).
caused neighbour_opinion(X, OldO) after
neighbour_opinion(X, OldO), not receive_vote(AnyO, X, i).
caused num_bad( #count<X> ) if neighbour_opinion(X, bad).
caused num_good( #count<X> ) if neighbour_colour(X, good).
caused my_opinion( bad) if
num_bad( B), num_good( G), B >= G.
caused my_opinion( good) if
num_bad( B), num_good( G), B < G.
sent send_vote(O, i, X) if
my_opinion(O) , neighbour(X),
after my_opinion( OldO), O != OldO.
![Page 16: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/16.jpg)
16
Connecting DSMs Encoding of synchronous reliable communication:
sent receive_vote(V,X,S) after send_vote(V,S,X).
Encoding of unreliable communication:
inertial values(Val).
initially values(succeds), values(fails).
caused comm(#chooce<Val>) if values(Val).
sent receive_vote(V,X,i) if comm(succeeds)
after send_vote(V,i,X).
![Page 17: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/17.jpg)
17
Specification, Execution and Framework
Declarative Protocol Specification
Deployment,
Execution
Setup environment, e.g., DSM
Flawed specification results in slow, non-
functional or insecure network
Protocol Model
Communication Model
Initial Network
Configuration Queries
Theorem Prover
Simple and direct translation between
declarative specification and Datalog+Time (representing the semantics of the
protocol)
abstraction
Synchronous or Asynchronous? Reliable?
Fair?
Network topology? (Configuration/Security)
policies?
Convergent? Devoid of forwarding loops?
Discover multi-paths?
Query answers as logic models, in which
execution traces can be extracted.
Logic
Program
![Page 18: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/18.jpg)
Synchronous Sample Statistics
18
For Voting Example
![Page 19: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/19.jpg)
19
![Page 20: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/20.jpg)
Final Remarks
• There are many distributed algorithms that can be implemented under this computational model besides routing protocols
• We would like to scale the analysis at least one order of magnitude
• We have not done analysis with topology changes …
• We need better aximatizations for fairness • We don’t have an axiomatization of “open”
broadcast • …
20
![Page 21: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/21.jpg)
21
The Team
Alessandra Russo
Imperial College
Jiefei Ma
Imperial College
David Wood
IBM
Franck Le
IBM
![Page 22: A Declarative Approach to Distributed Computingpeace.eas.asu.edu/iclp13/presentations/A_Declarative... · 2013-09-09 · Declarative Protocol Specification Deployment, Execution Setup](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f328f8b4724ba741029c20b/html5/thumbnails/22.jpg)
The End