Presentation is loading. Please wait.

Presentation is loading. Please wait.

Customizable Routing with Declarative Queries Boon Thau Loo 1 Collaborators: Joseph M. Hellerstein 1,2, Karthik Lakshminarayanan 1, Raghu Ramakrishnan.

Similar presentations


Presentation on theme: "Customizable Routing with Declarative Queries Boon Thau Loo 1 Collaborators: Joseph M. Hellerstein 1,2, Karthik Lakshminarayanan 1, Raghu Ramakrishnan."— Presentation transcript:

1 Customizable Routing with Declarative Queries Boon Thau Loo 1 Collaborators: Joseph M. Hellerstein 1,2, Karthik Lakshminarayanan 1, Raghu Ramakrishnan 3, Ion Stoica 1 1 University of California, Berkeley, 2 Intel Research Berkeley, 3 University of Wisconsin at Madison

2 Introduction Emerging topic in networking community. Why is customizing routing important? Flexibility: support different application requirements. Evolvability of routing infrastructure. Experimentation with new routing protocols. Some existing solutions: Overlay networks (multicast, RON). Active networks. Recent ideas: Routing as a Service, NIRA. Use of declarative queries to express routes Achieves a sweet-spot between expressiveness and security. Runtime Query Optimization

3 System Model Routing Infrastructure IP routers or overlay nodes Directed graph, each link associated with a set of parameters (loss rate, available bandwidth, delay, etc) General-purpose Query Processor Co-located with each routing infrastructure node. Local routing information accessible by query processor. n1 n2 End-host A End-host B Query is processed in-network. Result of Query: Entire path or establishment of state in routing infrastructure from source to destination. Route Query End-hosts express route request as a declarative query (predicated by source(s), destination(s), duration, etc).

4 The Basics: Program Syntax Datalog: Declarative recursive query language for graph topologies. First Example: Network Reachability R1: path(S,D,P,C) :- link(S,D,C), P=concatPath(link(S,D,C), nil). R2: path(S,D,P,C) :- link(S,Z,C 1 ), path(Z,D,P 2,C 2 ), C=C 1 +C 2, P=concatPath(link(S,Z,C 1 ),P 2 ). Query: path(M,N,P,C) SZD L(S,Z) p(Z,D) p(S,Z), p(S,D)

5 The Basics: Plan Generation R1: reachable(S,D) :- link(S,D) R2: reachable(S,D) :- link(S,Z), reachable(Z,D) Query: reachable(M,N) Ship tuples to table.field R1 R2

6 Query Execution R1: reachable(S,D) :- link(S,D) R2: reachable(S,D) :- link(S,Z), reachable(Z,D) Query: reachable(M,N) 0 th Iteration a c de f g h r(a,b), r(a,c) l(c,e) l(e,f) l(g,f) l(d,f) l(f,h) b i r(a,g), r(a,d), r(b,e) l(h,i) l(a,b), l(a,c) r(c,e) r(e,f) r(f,h) r(d,f) r(h,i) r(g,f) l(a,g), l(a,d), l(b,e)

7 Query Execution a c de f g h r(a,b), r(a,c) r(c,e) r(b,d), r(b,e), r(b,g) r(e,f) l’(a,c)l’(a,b) l’(b,g) l’(d,f) r(g,f) l’(b,d) l’(f,h) r(d,f) l’(b,e) l’(e,f) r(f,h) l’(g,f) b i r(h,i) l’(h,i) l’(c,e) R1: reachable(S,D) :- link(S,D) R2: reachable(S,D) :- link(S,Z), reachable(Z,D) Query: reachable(M,N) 1 st Iteration

8 Query Execution a c de f g h r(a,b), r(a,c), r(a,e), r(a,d), r(a,g) r(c,e), r(c,f) r(b,d), r(b,e), r(b,g), r(b,f) r(e,f), r(e,h) r(g,f), r(g,h) r(d,f), r(d,h) r(f,h), r(f,i) b i r(h,i) l’(b,g) l’(b,d) l’(f,h) l’(d,f), l’(g,f), l’(e,f) l’(h,i) l’(b,e), l’(c,e) l’(a,c) l’(a,b) R1: reachable(S,D) :- link(S,D) R2: reachable(S,D) :- link(S,Z), reachable(Z,D) Query: reachable(M,N) 2 nd Iteration

9 Path or Distance Vector Resembles Path and Distance Vector Protocols Computation begins with initial reachable set and shipping it to all neighbors. (DV1) Neighbors update reachable set with its own neighborhood set, and forward resulting reachable set to neighbors. (DV2) DV1: path(S,D,D,C) :- link(S,D,C) DV2: path(S,D,Z,C) :- link(S,Z,C 1 ), path(Z,D,W,C 2 ), C=C 1 +C 2 DV3: shortestLength(S,D,min ) :- path(S,D,Z,C) DV4: nextHop(S,D,Z,C) :- nextHop(S,D,Z,C), shortestLength(S,D,C) Query: nextHop(S,D,Z,C)

10 DV with Split Horizon DV1: path(S,D,D,C) :- link(S,D,C) DV2: path(S,D,Z,C) :- link(S,Z,C 1 ), path(Z,D,W,C 2 ), C=C 1 +C 2, W<>S DV3: shortestLength(S,D,min ) :- path(S,D,Z,C) DV4: nextHop(S,D,Z,C) :- nextHop(S,D,Z,C), shortestLength(S,D,C) Query: nextHop(S,D,Z,C)

11 Challenges Expressiveness Efficiency Stability and Robustness Security

12 Expressiveness Best-Path routing Shortest Path Shortest-k-paths Least-loaded path Disjoint-Paths greedy routing Disjoint-k-paths (edge and node disjoint) Dynamic Source Routing (DSR) Policy Decision: Paths that include/exclude certain nodes. Do not carry/trust traffic from certain nodes.

13 Single-Query Optimizations Limited Sources and/or Destinations: Magic Sets Rewrite Few Sources and Destinations: Left-Right Recursion Rewrite + Magic Sets R1: reachable(S,D) :- magicSource(S), link(S,D) R2: reachable(S,D) :- reachable(S,Z), link(Z,D) R3: magicSource(b) R4: magicSource(e) Query: reachable(M,N) Pruning unnecessary paths: Aggregate Selections

14 Initial Simulation Results Optimal query plan is affected by the number of nodes participating in the same query. Right-linear recursion is optimal for all-pairs. Left-linear recursion lowers communication overhead for few sources and destinations. Benefits of sharing depends on the percentage of destination nodes in queries. Other factors include: Presence of different queries with correlated metrics. Network Topology

15 Thank You!! For more details: Customizable Routing with Declarative Queries. Boon Thau Loo, Joseph M. Hellerstein, Ion Stoica. HotNets-III. Routing as a Service. Karthik Lakshminarayanan, Ion Stoica, Scott Shenker. UCB Technical Report No. UCB/CSD- 04-1327, Jan 2004. Analyzing P2P Overlays with Recursive Queries. Boon Thau Loo, Ryan Huebsch, Joseph M. Hellerstein, Timothy Roscoe, Ion Stoica. Intel Research Technical Report, IRB-TR-03-045, Nov 2003.


Download ppt "Customizable Routing with Declarative Queries Boon Thau Loo 1 Collaborators: Joseph M. Hellerstein 1,2, Karthik Lakshminarayanan 1, Raghu Ramakrishnan."

Similar presentations


Ads by Google