The Design and Implementation of Declarative Networks Boon Thau Loo University of Pennsylvania,...

Post on 01-Apr-2015

212 views 0 download

Tags:

transcript

The Design and Implementation of Declarative Networks

Boon Thau LooUniversity of Pennsylvania, University of California-Berkeley*

*This dissertation was completed as a graduate student at the University of California- Berkeley

Declarative Networking

A declarative framework for networks: Network protocols are declaratively specified

using a database query language Distributed query engine executes

specifications to implement network protocols

Success of database research: 70’s – today: Database research has

revolutionized data management Today: Similar opportunity to revolutionize the

Internet architecture

Motivation

Internet faces many challenges today: Unwanted, harmful traffic Complexity/fragility in Internet routing Proliferation of new applications and

services

Efforts at improving the Internet: Evolutionary: App-level “Overlay” networks Revolutionary: Clean-slate designs

NSF GENI initiative, FIND programOpportunity: Software tools that can

significantly accelerate network innovation

Opportunity: Software tools that can significantly accelerate network

innovation

A Declarative Network

Distributed recursive query

Traditional Networks Declarative NetworksNetwork State Distributed

databaseNetwork protocol Recursive Query Execution

Network messages Distributed Dataflow

DataflowDataflow

messages

Dataflow

Dataflow

Dataflow

Dataflow messagesmessages

The Case for Declarative Networking

Ease of programming: Compact and high-level representation of protocols Orders of magnitude reduction in code size

Declarative Chord DHT is 48 lines instead of 10,000. Easy customization

Safety: Queries are “sandboxed” within query processor Potential for static analysis of safety

What about efficiency? No fundamental overhead when executing standard

routing protocols Application of well-studied query optimizations Note: Same question was asked of relational databases in

the 70’s.

Main Contributions of Dissertation

Declarative Routing [SIGCOMM ’05]: Extensible Routers: balance of flexibility,

efficiency and safety

Declarative Overlays [SOSP ’05]: Rapid prototyping of new overlay networks

Database Fundamentals [SIGMOD ‘06]: Network specific query language and semantics Distributed recursive query execution strategies Query optimizations, classical and new

A Breadth of Use Cases

Example implementations to date: Textbook routing protocols Chord DHT Narada mesh for end-system multicast Distributed Gnutella/Web crawlers Pastry DHT Replication protocols Lamport/Chandy snapshots Paxos distributed consensus Overlays for host mobility Sensor network protocols

P2 declarative networking system http://p2.cs.berkeley.edu

Outline

BackgroundThe Connection: Routing as a Query Execution Model Path-Vector Protocol Example

Query specification protocol implementation

Query ProcessingBeyond routing: Declarative Overlays Ongoing work @ Penn

Traditional Router

Neighbor Table Forwarding TableRouting

Infrastructure

Packets

Packets

Traditional Router

Control PlaneForwarding Plane

Routing Protocol

Neighbor Table

updates

Forwarding Table

updates

Declarative RouterTraditional Router

Declarative Router

Neighbor Table Forwarding Table

Input Tables

Declarative Queries

Control PlaneForwarding Plane

Output Tables

Routing Infrastructure

Packets

Packets

Query EngineRouting Protocol

Neighbor Table

updates

Forwarding Table

updates

All-Pairs Reachability

R2: reachable(S,D) link(S,Z), reachable(Z,D)

R1: reachable(S,D) link(S,D)

Input: link(source, destination)Output: reachable(source, destination)

“For all nodes S,D, If there is a link from S to D, then S can reach D”.

link(a,b) – “there is a link from node a to node b”

reachable(a,b) – “node a can reach node b”

All-Pairs Reachability

R2: reachable(S,D) link(S,Z), reachable(Z,D)

R1: reachable(S,D) link(S,D)

Input: link(source, destination)Output: reachable(source, destination)

“For all nodes S,D and Z, If there is a link from S to Z, AND Z can reach D, then S can reach D”.

Towards Network Datalog

Specify tuple placement Value-based partitioning of tables

Tuples to be combined are co-located Rule rewrite ensures body is always single-site

All communication is among neighbors No multihop routing during basic rule

execution Link-restricted rules: Enforced via simple

syntactic restrictions

All-Pairs Reachability

R1: reachable(@S,D) link(@S,D)

R2: reachable(@S,D) link(@S,Z), reachable(@Z,D)

Network Datalog

Query: reachable(@M,N)

@S

D

@a

b

@a

c

@a

d

reachableOutput

table:

Input table:

Query: reachable(@a,N)

@S

D

@c b

@c d

link@

SD

@b

c

@b

a

link@

SD

@a

b

link @

SD

@d

c

link

b dca

@S

D

@b

a

@b

c

@b

d

reachable @

SD

@c a

@c b

@c d

reachable @

SD

@d

a

@d

b

@d

c

reachable

Location Specifier “@S”

Query: reachable(@a,N)

Path Vector in Network Datalog

Input: link(@source, destination)Query output: path(@source, destination, pathVector)

R1: path(@S,D,P) link(@S,D), P=(S,D).

R2: link(@Z,S), path(@S,D,P)

P=SP2. path(@Z,D,P2),

Query: path(@S,D,P)

Add S to front of P2

R1: path(@S,D,P) link(@S,D), P=(S,D).

R2: path(@S,D,P) link(@Z,S), path(@Z,D,P2), P=SP2.

@S

D P @S

D P

@c d [c,d]

Query Execution

@S

D P @S

D P

Query: path(@a,d,P)

Neighbor table:

@S

D

@c b

@c d

link@S D

@b c

@b a

link@

SD

@a

b

link @S D

@d c

link

b dca

path path path

Forwarding table:

@S

D P @S

D P @S

D P

@c d [c,d]

Query Execution

Forwarding table:

@S

D P

@b

d [b,c,d]

b dca

path(@b,d,[b,c,d])

R1: path(@S,D,P) link(@S,D), P=(S,D).

R2: path(@S,D,P) link(@Z,S), path(@Z,D,P2), P=SP2.

Query: path(@a,d,P)

Neighbor table:

@S

D

@c b

@c d

link@S D

@b c

@b a

link@

SD

@a

b

link @S D

@d c

link

path path path@S

D P

@a

d [a,b,c,d]

path(@a,d,[a,b,c,d])

Communication patterns are identical to those in the actual path vector

protocol

Communication patterns are identical to those in the actual path vector

protocol

Matching variable Z = “Join”

Other Routing Examples

Best-Path RoutingDistance VectorDynamic Source Routing (Wireless)Policy DecisionsQoS-based RoutingLink-stateMulticast Overlays (Single-Source & CBT)

Outline

BackgroundThe Connection: Routing as a QueryQuery ProcessingBeyond routing: Declarative Overlays Sampling of ongoing work

Recursive Query Evaluation

Semi-naïve evaluation: Iterations (rounds) of synchronous computation Results from iteration ith used in (i+1)th

Path Table

87

3-hop

109

21

1-hop3

65 2-hop4

Link Table Network

510

021

3

4

6

8

7

Problem: Unpredictable delays and failures

9

Pipelined Semi-naïve (PSN)Fully-asynchronous evaluation:

Computed tuples in any iteration pipelined to next iteration

Natural for network protocols

Path Table

41

7

Link Table Network

25836910

510

021

3

4

6

8

79

Relaxation of semi-naïve

Relaxation of semi-naïve

Pipelined Evaluation

Challenges: Does PSN produce the correct answer? Is PSN bandwidth efficient?

I.e. does it make the minimum number of inferences?

Proofs for

Basic technique: local timestamps

p(x,z) :- p1(x,y), p2(y,z), …, pn(y,z), q(z,w)

recursive w.r.t. p

lookup

lookup

Dem

ux

link

Local Tables

path ...

UD

P

Tx

Round

Robin

Queue

CC

T

x

Queue

UD

P

Rx

CC

R

x

Execution Plan Strands

Messages

Network In

Messages

Network Out

Single NodeNodes in execution plan (“operators”):

Network operators (send/recv, cc, retry, rate limitation) Relational operators (selects, projects, joins, aggregates) Flow operators (mux, demux, queues)

Localization RewriteRules may have body predicates at different locations:

R2: path(@S,D,P) link(@S,Z), path(@Z,D,P2), P=SP2.

R2b: path(@S,D,P) linkD(S,@Z), path(@Z,D,P2), P=SP2.

R2a: linkD(S,@D) link(@S,D)

Matching variable Z = “Join”

Rewritten rules:

Matching variable Z = “Join”

Localized Rule Compilation

Execution Plan

path Joinpath.Z = linkD.Z

linkD

Projectpath(S,D,P) Send to

path.S

R2b: path(@S,D,P) linkD(S,@Z), path(@Z,D,P2), P=SP2.

Netw

ork

In

Netw

ork

Ou

t

linkD

JoinlinkD.Z =

path.Z

path

Projectpath(S,D,P) Send to

path.S

Optimizations

Traditional: evaluate in the NW context Aggregate Selections Magic Sets rewrite Predicate Reordering

New: motivated by NW context Multi-query optimizations:

Query Results caching Opportunistic message sharing

Cost-based optimizations Neighborhood density function Hybrid rewrites

PV/DV (Wired) DSR (Wireless)

Hybridized protocols: Zone

Routing Protocol

Beyond Routing: Declarative Overlays

Language extensions to support events and soft-state predicatesChord Routing, including:

Multiple successors Stabilization Optimized finger

maintenance Failure detection

48 rules11 table definitionsMIT-Chord: x100 more codeAnother example:

Narada mesh in 22 rules 10 pt font

Outline

BackgroundThe Connection: Routing as a QueryQuery ProcessingBeyond routing: Declarative Overlays Ongoing work @ Penn

Ongoing Work @ PennDeclarative secure networking

Difficult to design/implement/reason about secure networks Network Datalog + logic-based security languages [NetDB ’07] Authenticated path vector protocol, DNSSEC, secure DHTs,… Moving forward:

Exploit fine-grained control over networks and security policies

Data-centric querying and routing in heterogeneous networks

Internet: Wired infrastructure with wireless clouds at the edges

Flexible network support for mobility [ACM MobiArch ’07] Declarative queries for addressing and naming mobile hosts Session-aware customizable QoS routing

Moving forward: Declarative wireless ad-hoc networks Cost-based query optimizations to adapt protocols

SummaryDeclarative networking: Declarative Routing:

Extensible routing infrastructure Declarative Overlays

Rapid prototyping overlay networks Database fundamentals

Query language New distributed query execution strategies and

optimizations Semantics in dynamic networks

P2 declarative networking system (http://p2.cs.berkeley.edu)

Many Thanks…

Advisors: Joseph M. Hellerstein, Ion StoicaCollaborators:

UC Berkeley: Tyson Condie, Ryan Huebsch Intel Research: David Gay, Petros Maniatis, Timothy

Roscoe Yahoo! Research: Minos Garofalakis, Raghu

Ramakrishnan Rice University: Atul Singh Many others…