Implementing Declarative Overlays Boon Thau Loo 1 Tyson Condie 1, Joseph M. Hellerstein 1,2, Petros Maniatis 2, Timothy Roscoe 2, Ion Stoica 1 1 University.

Slides:



Advertisements
Similar presentations
P2: Implementing Declarative Overlays
Advertisements

Declarative Networking: Language, Execution and Optimization Boon Thau Loo 1, Tyson Condie 1, Minos Garofalakis 2, David E. Gay 2, Joseph M. Hellerstein.
Implementing Declarative Overlays Timothy Roscoe Joint work with Boon Thau Loo, Tyson Condie, Joseph M. Hellerstein, Petros Maniatis, Ion Stoica Intel.
Declarative Networking: Extensible Networks with Declarative Queries Boon Thau Loo University of California, Berkeley.
Intel Research Timothy Roscoe P2: Implementing Declarative Overlays Timothy Roscoe Boon Thau Loo, Tyson Condie, Petros Maniatis, Ion Stoica, David Gay,
Declarative Networking Mothy Joint work with Boon Thau Loo, Tyson Condie, Joseph M. Hellerstein, Petros Maniatis, Ion Stoica Intel Research and U.C. Berkeley.
Intel Research Petros Maniatis, IRB Declarative Overlays Petros Maniatis joint work with Tyson Condie, David Gay, Joseph M. Hellerstein, Boon Thau Loo,
Internet Indirection Infrastructure (i3 ) Ion Stoica, Daniel Adkins, Shelley Zhuang, Scott Shenker, Sonesh Surana UC Berkeley SIGCOMM 2002 Presented by:
Examining The Tradeoffs Of Structured Overlays In A Dynamic Non-transitive Network Steve Gerding Jeremy Stribling {sgerding,
The Design and Implementation of Declarative Networks Boon Thau Loo University of Pennsylvania, University of California-Berkeley * *This dissertation.
One Hop Lookups for Peer-to-Peer Overlays Anjali Gupta, Barbara Liskov, Rodrigo Rodrigues Laboratory for Computer Science, MIT.
Efficient Event-based Resource Discovery Wei Yan*, Songlin Hu*, Vinod Muthusamy +, Hans-Arno Jacobsen +, Li Zha* * Chinese Academy of Sciences, Beijing.
Directed Diffusion for Wireless Sensor Networking
Implementing declarative overlays Boom Thau Loo Tyson Condie Joseph M. Hellerstein Petros Maniatis Timothy Roscoe Ion Stoica.
Implementing Declarative Overlays From two talks by: Boon Thau Loo 1 Tyson Condie 1, Joseph M. Hellerstein 1,2, Petros Maniatis 2, Timothy Roscoe 2, Ion.
P2P data retrieval DHT (Distributed Hash Tables) Partially based on Hellerstein’s presentation at VLDB2004.
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT and Berkeley presented by Daniel Figueiredo Chord: A Scalable Peer-to-peer.
Peer to Peer and Distributed Hash Tables
Pastry Peter Druschel, Rice University Antony Rowstron, Microsoft Research UK Some slides are borrowed from the original presentation by the authors.
Berkeley dsn declarative sensor networks problem David Chu, Lucian Popa, Arsalan Tavakoli, Joe Hellerstein approach related dsn architecture status  B.
Scalable Content-Addressable Network Lintao Liu
CHORD – peer to peer lookup protocol Shankar Karthik Vaithianathan & Aravind Sivaraman University of Central Florida.
Lecture 5 - Routing On the Flat Labels M.Sc Ilya Nikolaevskiy Helsinki Institute for Information Technology (HIIT)
Chord: A scalable peer-to- peer lookup service for Internet applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashock, Hari Balakrishnan.
Robert Morris, M. Frans Kaashoek, David Karger, Hari Balakrishnan, Ion Stoica, David Liben-Nowell, Frank Dabek Chord: A scalable peer-to-peer look-up.
Pastry Peter Druschel, Rice University Antony Rowstron, Microsoft Research UK Some slides are borrowed from the original presentation by the authors.
SKELETON BASED PERFORMANCE PREDICTION ON SHARED NETWORKS Sukhdeep Sodhi Microsoft Corp Jaspal Subhlok University of Houston.
The Architecture of PIER: an Internet-Scale Query Processor (PIER = Peer-to-peer Information Exchange and Retrieval) Ryan Huebsch Brent Chun, Joseph M.
Small-world Overlay P2P Network
10/31/2007cs6221 Internet Indirection Infrastructure ( i3 ) Paper By Ion Stoica, Daniel Adkins, Shelley Zhuang, Scott Shenker, Sonesh Sharma Sonesh Sharma.
Peer to Peer File Sharing Huseyin Ozgur TAN. What is Peer-to-Peer?  Every node is designed to(but may not by user choice) provide some service that helps.
Shadow Configurations: A Network Management Primitive Richard Alimi, Ye Wang, Y. Richard Yang Laboratory of Networked Systems Yale University.
Building diagnosable distributed systems Petros Maniatis Intel Research Berkeley ICSI – Security Crystal Ball.
Chapter 10: Stream-based Data Management Title: Design, Implementation, and Evaluation of the Linear Road Benchmark on the Stream Processing Core Authors:
Secure Overlay Services Adam Hathcock Information Assurance Lab Auburn University.
1 CS 194: Distributed Systems Distributed Hash Tables Scott Shenker and Ion Stoica Computer Science Division Department of Electrical Engineering and Computer.
Data Structures Hash Table (aka Dictionary) i206 Fall 2010 John Chuang Some slides adapted from Marti Hearst, Brian Hayes, Andreas Veneris, Glenn Brookshear,
Wide-area cooperative storage with CFS
1CS 6401 Peer-to-Peer Networks Outline Overview Gnutella Structured Overlays BitTorrent.
Effizientes Routing in P2P Netzwerken Chord: A Scalable Peer-to- peer Lookup Protocol for Internet Applications Dennis Schade.
Using Queries for Distributed Monitoring and Forensics Atul Singh Rice University Peter Druschel Max Planck Institute for Software Systems Timothy Roscoe.
Declarative Routing: Extensible Routing with Declarative Queries UC Berkeley: Boon Thau Loo, Joseph M. Hellerstein, Ion Stoica. Intel Research: Joseph.
VeriFlow: Verifying Network-Wide Invariants in Real Time
Chord & CFS Presenter: Gang ZhouNov. 11th, University of Virginia.
PIER & PHI Overview of Challenges & Opportunities Ryan Huebsch † Joe Hellerstein † °, Boon Thau Loo †, Sam Mardanbeigi †, Scott Shenker †‡, Ion Stoica.
1 Reading Report 5 Yin Chen 2 Mar 2004 Reference: Chord: A Scalable Peer-To-Peer Lookup Service for Internet Applications, Ion Stoica, Robert Morris, david.
Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications Xiaozhou Li COS 461: Computer Networks (precept 04/06/12) Princeton University.
1 Distributed Hash Tables (DHTs) Lars Jørgen Lillehovde Jo Grimstad Bang Distributed Hash Tables (DHTs)
TRICKLE: A Self-Regulating Algorithm for Code Propagation and Maintenance in Wireless Sensor Networks Philip Levis, Neil Patel, Scott Shenker and David.
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT and Berkeley presented by Daniel Figueiredo Chord: A Scalable Peer-to-peer.
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan Presented.
SIGCOMM 2001 Lecture slides by Dr. Yingwu Zhu Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications.
Paper Survey of DHT Distributed Hash Table. Usages Directory service  Very little amount of information, such as URI, metadata, … Storage  Data, such.
Peer to Peer A Survey and comparison of peer-to-peer overlay network schemes And so on… Chulhyun Park
Customizable Routing with Declarative Queries Boon Thau Loo 1 Collaborators: Joseph M. Hellerstein 1,2, Karthik Lakshminarayanan 1, Raghu Ramakrishnan.
XML Access Control Koukis Dimitris Padeleris Pashalis.
A Data Stream Publish/Subscribe Architecture with Self-adapting Queries Alasdair J G Gray and Werner Nutt School of Mathematical and Computer Sciences,
Algorithms and Techniques in Structured Scalable Peer-to-Peer Networks
Click to edit Master title style Multi-Destination Routing and the Design of Peer-to-Peer Overlays Authors John Buford Panasonic Princeton Lab, USA. Alan.
Querying the Internet with PIER CS294-4 Paul Burstein 11/10/2003.
CS694 - DHT1 Distributed Hash Table Systems Hui Zhang University of Southern California.
The Cost of Inconsistency in Chord Shelley Zhuang, Ion Stoica, Randy Katz OASIS/i3 Retreat, January 2005.
Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications * CS587x Lecture Department of Computer Science Iowa State University *I. Stoica,
1 Distributed Hash tables. 2 Overview r Objective  A distributed lookup service  Data items are distributed among n parties  Anyone in the network.
Declarative Networking
Self Healing and Dynamic Construction Framework:
A Scalable Peer-to-peer Lookup Service for Internet Applications
Declarative Networking
Internet Indirection Infrastructure
A Scalable Peer-to-peer Lookup Service for Internet Applications
Presentation transcript:

Implementing Declarative Overlays Boon Thau Loo 1 Tyson Condie 1, Joseph M. Hellerstein 1,2, Petros Maniatis 2, Timothy Roscoe 2, Ion Stoica 1 1 University of California at Berkeley, 2 Intel Research Berkeley

Overlays Everywhere… Overlay networks are widely used today: Routing and forwarding component of large-scale distributed systems Provide new functionality over existing infrastructure Many examples, variety of requirements: Packet delivery: Multicast, RON Content delivery: CDNs, P2P file sharing, DHTs Enterprise systems: MS Exchange Overlay networks are an integral part of many large-scale distributed systems.

Problem Non-trivial to design, build and deploy an overlay correctly: Iterative design process: Desired properties Distributed algorithms and protocols Simulation Implementation Deployment Repeat… Each iteration takes significant time and utilizes a variety of expertise

The Goal of P2 Make overlay development more accessible: Focus on algorithms and protocol designs, not the implementation Tool for rapid prototyping of new overlays: Specify overlay network at a high level Automatically translate specification to protocol Provide execution engine for protocol Aim for good enough performance Focus on accelerating the iterative design process Can always hand-tune implementation later

Outline Overview of P2 Architecture By Example Data Model Dataflow framework Query Language Chord Additional Benefits Overlay Introspection Automatic Optimizations Conclusion

Traditional Overlay Node Overlay Program Packets Out Packets In

P2 Overlay Node Overlay description: dataflow scripting language Runtime dataflows maintain network state Overlay description: declarative query language Planner P2 Query Processor Packets Out Packets In Overlay Program

Advantages of the P2 Approach Declarative Query Language Concise/high level expression Statically checkable (termination, correctness) Ease of modification Unifying framework for introspection and implementation Automatic optimizations Query and dataflow level

Data Model Relational data: relational tables and tuples Two kinds of tables: Stored, soft state: E.g. neighbor(Src,Dst), forward(Src,Dst,NxtHop) Transient streams: Network messages: message (Rcvr, Dst) Local timer-based events: periodic (NodeID,10)

Dataflow framework Dataflow graph C++ dataflow elements Similar to Click: Flow elements (mux, demux, queues) Network elements (cc, retry, rate limitation) In addition: Relational operators (joins, selections, projections, aggregation)

Outline Overview of P2 Architecture By Example Data Model Dataflow framework Query Language Chord in P2 Additional Benefits Overlay Introspection Automatic Optimizations Conclusion Simple ring routing example

Example: Ring Routing Each node has an address and an identifier Each object has an identifier. Every node knows its successor Objects served by successor

Ring State node(IP 40,40) succ(IP 40,58,IP 58 ) node(IP 58,58) succ(IP 58,60,IP 60 ) Stored tables: node(NAddr, N) succ(NAddr, Succ, SAddr)

Example: Ring lookup Find the responsible node for a given key k? n.lookup(k) if k in (n, n.successor) return n.successor.addr else return n.successor. lookup(k)

lookup(IP 40,IP 37,59) Ring Lookup Events node(IP 40,40) succ(IP 40,58,IP 58 ) Event streams: lookup(Addr, Req, K) response(Addr, K, Owner) lookup(IP 37,IP 37,59) response(IP 37,59,IP 60 ) lookup(IP 58,IP 37,59) node(IP 58,58) succ(IP 58,60,IP 60 ) n.lookup(k) if k in (n, n.successor) return n.successor.addr else return n.successor. lookup(k)

Pseudocode Dataflow Strands Pseudocode: n.lookup(k) if k in (n, n.successor) return n.successor.addr else return n.successor. lookup(k)

Dataflow Strand Event Stream Actions Element 1 Element 2 Element n Event: Incoming network messages, periodic timers … Strand Elements Condition: Process event using strand elements Action: Outgoing network messages, local table updates

Pseudocode Strand 1 n.lookup(k) if k in (n, n.successor) return n.successor.addr else return n.successor.lookup(k) RECEIVE lookup(NAddr, Req, K) Stored tables node(NAddr, N) succ(NAddr, Succ, SAddr) Event streams lookup(Addr, Req, K) response(Addr, K, Owner) node(NAddr, N) & succ(NAddr, Succ, SAddr) & K in (N, Succ] SEND response(Req, K, SAddr) to Req Event: Condition: Action:

Pseudocode to Strand 1 Event: RECEIVE lookup(NAddr, Req, K) Condition: node(NAddr, N) & succ(NAddr, Succ, SAddr) & K in (N, Succ] Action: SEND response(Req, K, SAddr) to Req Match lookup.Addr = node.Addr Match lookup.Addr = succ.Addr lookup Filter K in (N,Succ) Format Response(Req, K,SAddr) Response n.lookup(k) if k in (n, n.successor) return n.successor.addr else return n.successor. lookup(k) succnode Join Select Project Dataflow strand

Pseudocode to Strand 2 Event: RECEIVE lookup(NAddr, Req, K) Condition: node(NAddr, N) & succ(NAddr, Succ, SAddr) Join lookup.Addr = node.Addr Join lookup.Addr = succ.Addr Select K not in (N,Succ) & K not in (N, Succ] lookup Action: SEND lookup(SAddr, Req, K) to SAddr Project lookup(SAddr, Req,K) lookup n.lookup(k) if k in (n, n.successor) return n.successor.addr else return n.successor. lookup(k) node succ Dataflow strand

Strand Execution lookup lookup/ response lookup response

Actual Chord Lookup Dataflow

Query Language: Overlog SQL equivalent for overlay networks Based on Datalog: Declarative recursive query language Well-suited for querying properties of graphs Well-studied in database literature Static analysis, optimizations, etc Extensions: Data distribution, asynchronous messaging, periodic timers and state modification

Query Language: Overlog Datalog rule syntax:,, …,. Overlog rule syntax:,, …,.

Query Language: Overlog Event: RECEIVE lookup(NAddr, Req, K) Condition: lookup(NAddr, Req, K) & node(NAddr, N) & succ(NAddr, Succ, SAddr) & K in (N, Succ] Action: SEND response(Req, K, SAddr) to Req K, SAddr) Req, K), N), Succ, SAddr), K in (N,Succ]. Overlog rule syntax:,, …,.

P2-Chord Chord Routing, including: Multiple successors Stabilization Optimized finger maintenance Failure recovery 47 OverLog rules 13 table definitions Other examples: Narada, flooding, routing protocols 10 pt font

Performance Validation Experimental Setup: 100 nodes on Emulab testbed 500 P2-Chord nodes Main goals: Validate expected network properties

Sanity Checks Logarithmic diameter and state (correct) BW-efficient: 300 bytes/s/node

Churn Performance Metric: Consistency [Rhea at al] P2-Chord: 97% consistency 84% consistency 42% consistency Hand-crafted Chord: 99.9% consistency Outperforms P2 under higher churn Not intended to replace a carefully hand- crafted Chord

Benefits of P2 Introspection with Queries Automatic optimizations Reconfigurable Transport (WIP)

Introspection with Queries Unifying framework for debugging and implementation Same query language, same platform Execution tracing/logging Rule and dataflow level Log entries stored as tuples and queried Correctness invariants, regression tests as queries: Is the Chord ring well formed? (3 rules) What is the network diameter? (5 rules) Is Chord routing consistent? (11 rules) With Atul Singh (Rice) and Peter Druschel (MPI)

Automatic Optimizations Application of traditional Datalog optimizations to network routing protocols (SIGCOMM 2005) Multi-query sharing: Common subexpression elimination Caching and reuse of previously computed results Opportunistically share message propagation across rules Join lookup.Addr = node.Addr Join lookup.Addr = succ.Addr lookup Select K not in (N,Succ) Project lookup(SAddr, Req,K) lookup Project Response(Req, K,SAddr) Select K in (N,Succ) response Join lookup.Addr = node.Addr lookup Join lookup.Addr = succ.Addr

Automatic Optimizations Cost-based optimizations Join ordering affects performance Join lookup.Addr = node.Addr Join lookup.Addr = succ.Addr Select K not in (N,Succ) lookup Project lookup(SAddr,R eq,K) lookup Project Response(Req, K,SAddr) Select K in (N,Succ) response Join lookup.Addr = node.Addr Join lookup.Addr = succ.Addr

Open Questions The role of rapid prototyping? How good is good enough performance for rapid prototypes? When do developers move from rapid prototypes to hand-crafted code? Can we get achieve production quality overlays from P2?

Future Work Right language Formal data and query semantics Static analysis Optimizations Termination Correctness

Conclusion P2: Declarative Overlays Tool for rapid prototyping new overlay networks Declarative Networks Research agenda: Specify and construct networks declaratively Declarative Routing : Extensible Routing with Declarative Queries (SIGCOMM 2005)

Thank You

Latency CDF for P2-Chord Median and average latency around 1s.