1 Towards a Common API for Structured Peer-to-Peer Overlays Frank Dabek, Ben Zhao, Peter Druschel, John Kubiatowicz, Ion Stoica Presented for Cs294-4 by.

Slides:



Advertisements
Similar presentations
P2P data retrieval DHT (Distributed Hash Tables) Partially based on Hellerstein’s presentation at VLDB2004.
Advertisements

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.
Peter Druschel, Rice University Antony Rowstron, Microsoft Research UK
Scalable Content-Addressable Network Lintao Liu
Peer-to-Peer (P2P) Distributed Storage 1Dennis Kafura – CS5204 – Operating Systems.
CHORD – peer to peer lookup protocol Shankar Karthik Vaithianathan & Aravind Sivaraman University of Central Florida.
Chord: A scalable peer-to- peer lookup service for Internet applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashock, Hari Balakrishnan.
1 1 Chord: A scalable Peer-to-peer Lookup Service for Internet Applications Dariotaki Roula
Robert Morris, M. Frans Kaashoek, David Karger, Hari Balakrishnan, Ion Stoica, David Liben-Nowell, Frank Dabek Chord: A scalable peer-to-peer look-up.
Robert Morris, M. Frans Kaashoek, David Karger, Hari Balakrishnan, Ion Stoica, David Liben-Nowell, Frank Dabek Chord: A scalable peer-to-peer look-up protocol.
Peer-to-Peer Structured Overlay Networks
*Towards A Common API for Structured Peer-to-Peer Overlays Frank Dabek, Ben Y. Zhao, Peter Druschel, John Kubiatowicz, Ion Stoica MIT, U. C. Berkeley,
Pastry Peter Druschel, Rice University Antony Rowstron, Microsoft Research UK Some slides are borrowed from the original presentation by the authors.
1 PASTRY Partially borrowed from Gabi Kliot ’ s presentation.
Common approach 1. Define space: assign random ID (160-bit) to each node and key 2. Define a metric topology in this space,  that is, the space of keys.
Outline for today Structured overlay as infrastructures Survey of design solutions Analysis of designs.
Small-world Overlay P2P Network
Presented by Elisavet Kozyri. A distributed application architecture that partitions tasks or work loads between peers Main actions: Find the owner of.
Scribe: A Large-Scale and Decentralized Application-Level Multicast Infrastructure Miguel Castro, Peter Druschel, Anne-Marie Kermarrec, and Antony L. T.
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.
Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems Antony Rowstron and Peter Druschel Proc. of the 18th IFIP/ACM.
1 Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Robert Morris Ion Stoica, David Karger, M. Frans Kaashoek, Hari Balakrishnan.
Storage Management and Caching in PAST, a large-scale, persistent peer- to-peer storage utility Authors: Antony Rowstorn (Microsoft Research) Peter Druschel.
Topics in Reliable Distributed Systems Lecture 2, Fall Dr. Idit Keidar.
Secure routing for structured peer-to-peer overlay networks Miguel Castro, Ayalvadi Ganesh, Antony Rowstron Microsoft Research Ltd. Peter Druschel, Dan.
Spring 2003CS 4611 Peer-to-Peer Networks Outline Survey Self-organizing overlay network File system on top of P2P network Contributions from Peter Druschel.
Secure routing for structured peer-to-peer overlay networks (by Castro et al.) Shariq Rizvi CS 294-4: Peer-to-Peer Systems.
Topics in Reliable Distributed Systems Fall Dr. Idit Keidar.
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
Or, Providing Scalable, Decentralized Location and Routing Network Services Tapestry: Fault-tolerant Wide-area Application Infrastructure Motivation and.
1 Peer-to-Peer Networks Outline Survey Self-organizing overlay network File system on top of P2P network Contributions from Peter Druschel.
Peer-to-Peer Networks Slides largely adopted from Ion Stoica’s lecture at UCB.
Tapestry: A Resilient Global-scale Overlay for Service Deployment Ben Y. Zhao, Ling Huang, Jeremy Stribling, Sean C. Rhea, Anthony D. Joseph, and John.
*Towards A Common API for Structured Peer-to-Peer Overlays Frank Dabek, Ben Y. Zhao, Peter Druschel, John Kubiatowicz, Ion Stoica MIT, U. C. Berkeley,
Tapestry An off-the-wall routing protocol? Presented by Peter, Erik, and Morten.
 Structured peer to peer overlay networks are resilient – but not secure.  Even a small fraction of malicious nodes may result in failure of correct.
1CS 6401 Peer-to-Peer Networks Outline Overview Gnutella Structured Overlays BitTorrent.
Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems (Antony Rowstron and Peter Druschel) Shariq Rizvi First.
Tapestry GTK Devaroy (07CS1012) Kintali Bala Kishan (07CS1024) G Rahul (07CS3009)
1 PASTRY. 2 Pastry paper “ Pastry: Scalable, decentralized object location and routing for large- scale peer-to-peer systems ” by Antony Rowstron (Microsoft.
Chord & CFS Presenter: Gang ZhouNov. 11th, University of Virginia.
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)
CS 3700 Networks and Distributed Systems Overlay Networks (P2P DHT via KBR FTW) Revised 4/1/2013.
P2P Network Structured Networks (IV) Distributed Hash Tables Pedro García López Universitat Rovira I Virgili
Peer-to-Peer Name Service (P2PNS) Ingmar Baumgart Institute of Telematics, Universität Karlsruhe IETF 70, Vancouver.
Presentation 1 By: Hitesh Chheda 2/2/2010. Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT Laboratory for Computer Science.
An IP Address Based Caching Scheme for Peer-to-Peer Networks Ronaldo Alves Ferreira Joint work with Ananth Grama and Suresh Jagannathan Department of Computer.
1 More on Plaxton routing There are n nodes, and log B n digits in the id, where B = 2 b The neighbor table of each node consists of - primary neighbors.
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan Presented.
1 Peer-to-Peer Technologies Seminar by: Kunal Goswami (05IT6006) School of Information Technology Guided by: Prof. C.R.Mandal, School of Information Technology.
Peer to Peer A Survey and comparison of peer-to-peer overlay network schemes And so on… Chulhyun Park
1 Distributed Hash Table CS780-3 Lecture Notes In courtesy of Heng Yin.
Idit Keidar, Principles of Reliable Distributed Systems, Technion EE, Spring Principles of Reliable Distributed Systems Lecture 2: Distributed Hash.
1. Efficient Peer-to-Peer Lookup Based on a Distributed Trie 2. Complex Queries in DHT-based Peer-to-Peer Networks Lintao Liu 5/21/2002.
Peer to Peer Network Design Discovery and Routing algorithms
LOOKING UP DATA IN P2P SYSTEMS Hari Balakrishnan M. Frans Kaashoek David Karger Robert Morris Ion Stoica MIT LCS.
Bruce Hammer, Steve Wallis, Raymond Ho
Large Scale Sharing Marco F. Duarte COMP 520: Distributed Systems September 19, 2004.
Nick McKeown CS244 Lecture 17 Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications [Stoica et al 2001]
CS694 - DHT1 Distributed Hash Table Systems Hui Zhang University of Southern California.
Fabián E. Bustamante, Fall 2005 A brief introduction to Pastry Based on: A. Rowstron and P. Druschel, Pastry: Scalable, decentralized object location and.
Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications * CS587x Lecture Department of Computer Science Iowa State University *I. Stoica,
Peer-to-Peer Information Systems Week 12: Naming
A Common API for Structured Peer-to-Peer Overlays
Building Peer-to-Peer Systems with Chord, a Distributed Lookup Service
Peer-to-Peer Information Systems Week 12: Naming
Presentation transcript:

1 Towards a Common API for Structured Peer-to-Peer Overlays Frank Dabek, Ben Zhao, Peter Druschel, John Kubiatowicz, Ion Stoica Presented for Cs294-4 by Benjamin Poon

Cs294-4 Benjamin Poon Outline Background Motivation API Specification Example Usage Example Implementation

Cs294-4 Benjamin Poon Outline Background Motivation API Specification Example Usage Example Implementation

Cs294-4 Benjamin Poon Background (1/2) Many applications for peer-to-peer Information storage and retrieval Group communication Applications built on decentralized (scalable, self-organizing) overlay systems Tapestry, Pastry, Chord, CAN

Cs294-4 Benjamin Poon Background (2/2) Distributed Hash Tables (DHT) Provides traditional hashtable functionality Stores key  value mapping Group anycast/multicast (CAST) Scalable group communication Decentralized Object Location and Routing (DOLR) Decentralized directory service for objects 1) Objects (endpoints) placed anywhere within system 2) Applications announce presence of endpoint 3) Messages are routed to nearest available endpoint Why isn’t DOLR implemented on DHT?

Cs294-4 Benjamin Poon Aside: DOLR on DHT Towards a Common API for Structured... (this paper): “This is not possible because DOLR routes messages to the nearest available endpoint—providing a locality property not supported by DHTs” Structured Peer-to-peer Overlays Need Application-Driven Benchmarks - Rhea, Roscoe, Kubi (IPTPS ‘03): “While at a functional level, a DOLR may be implemented by a DHT and vice-versa, we show in the results section of this paper that there are performance consequences of doing so.”

Cs294-4 Benjamin Poon Outline Background Motivation API Specification Example Usage Example Implementation

Cs294-4 Benjamin Poon Motivation Overlay systems have commonalities If commonalities are found: a) Independent innovation will be made easier b) Experimental comparisons easier to make c) Adoption of overlay systems will accelerate Describe commonalities in API API described by paper expressive enough to implement all known applications built so far on CAN, Chord, Pastry, Tapestry

Cs294-4 Benjamin Poon Outline Background Motivation API Specification Example Usage Example Implementation

Cs294-4 Benjamin Poon API Specification Goal: standardize an API for Tier 0

Cs294-4 Benjamin Poon API Specification – Tier 1 Interfaces DHTDOLRCAST put(key, data)publish(objectId)join(groupId) remove(key)unpublish(objectId)leave(groupId) value = get(key)sendToObj(msg, objectId, [n]) multicast(msg, gId) anycast(msg, gId)

Cs294-4 Benjamin Poon API Specification – Vocabulary Node: instance of a participant in overlay ID space: n-bit integers (here, n = 160) Node ID: integer from the ID space assigned to a node uniformly at random Node handle: [transport address, nodeId] Key: integer from the ID space assigned to application-specific objects Root: a live node to which the overlay deterministically maps a given key Routing table: list of [node ID, IP address] tuples representing overlay links maintained locally by a node Msg: application data of arbitrary length R-root of key K: the live node that would be the root of K given R - 1 previous root failures

Cs294-4 Benjamin Poon API Specification – Overview Three types of calls: 1.Main routing call route() 2.Supplementary upcalls forward(), deliver() Allow applications to customize routing behavior 3.Routing state access calls local_lookup(), neighborSet(), replicaSet(), range() All local: no communication with other nodes Applications access routing state to obtain nodes to be used in main routing call or supplementary upcalls

Cs294-4 Benjamin Poon API Specification – Main Routing Call route(key key, msg msg, [nodeHandle hint]) Main routing call that routes msg to node currently responsible for key Optional argument hint specifies a node that should be used as first hop Provides best-effort service

Cs294-4 Benjamin Poon forward(&key key, &msg msg, &nodehandle nextHopNode) Informs application that msg is about to be forwarded to nextHopNode Invoked at all nodes that forward the message including source and root nodes API Specification – Supplementary Upcalls (1/2) KBR Layer Application msg forward

Cs294-4 Benjamin Poon deliver(key key, msg msg) Delivers msg to application at key’s root API Specification – Supplementary Upcalls (2/2) KBR Layer Application msg deliver

Cs294-4 Benjamin Poon API Specification – Routing State Access Calls (1/3) nodehandle[] = local_lookup(key key, int num, boolean safe) Produces an unordered list of num suitable next hop nodes given a route towards key Safe feature If safe, fraction of faulty nodes in list <= fraction of faulty nodes in overlay If !safe, list may be chosen to optimize performance (at expense of higher fraction of faulty nodes) Allows support for overlays with Byzantine failures Fail-stop behavior overlays may ignore this feature

Cs294-4 Benjamin Poon API Specification – Routing State Access Calls (2/3) nodehandle[] = neighborSet(int num) Produces an ordered list of num neighbors nodehandle[] = replicaSet(key key, int max_rank) Produces an ordered list of 1..max_rank-root nodes on which replicas of the object associated with key can be stored update(nodehandle node, rank rank, key lkey, key rkey) Informs the application that node has either joined or left the local node’s neighborSet

Cs294-4 Benjamin Poon API Specification – Routing State Access Calls (3/3) range(nodehandle node, int rank, key lkey, key rkey) Provides information about keys in range [lkey, rkey] for which node is a rank-root If overlay has disjoint ranges of keys, the range in which lkey resides is the range examined

Cs294-4 Benjamin Poon Outline Background Motivation API Specification Example Usage Example Implementation

Cs294-4 Benjamin Poon Example Usage – Distributed Hash Table (DHT) Interface Review put(key, value) value = get(key) Usage Put Source of request, S, sends route(key, [PUT, value, S]) Root receives deliver upcall and stores (key, value) pair in local storage Get Client of request, C, sends route(key, [GET, C]) Root R receives deliver upcall and sends route(NULL, [value, R], C) How to use API for caching DHT?

Cs294-4 Benjamin Poon Example Usage – Caching DHT Put Source of request, S, sends route(key, [PUT, value, S]) When a node receives a forward upcall, that node also stores (key, value) pair in local storage Root receives deliver upcall and stores (key, value) pair in local storage Get Client of request, C, sends route(key, [GET, C]) When a node S receives a forward upcall, if (key, value) is cached, send route(NULL, [value, S], C) and do not forward message to nextHop If root R receives deliver upcall, it sends route(NULL, [value, R], C) Other usages similar (CAST, DOLR, i3, replication, data maintenance) similar Refer to paper

Cs294-4 Benjamin Poon Outline Background Motivation API Specification Example Usage Example Implementation

Cs294-4 Benjamin Poon Example Implementation – Chord route() Local node invokes RPC in next node in lookup path RPC invokes appropriate call (route() or deliver()) returns next hop node local_lookup() Returns closest num successors in node’s successor list replicaSet() Return node’s successor list neighborSet() Return node’s successor list + predecessor range() Examine range [successor(n), successor(n+1)] Other implementations similar (CAN, Pastry, Tapestry) Refer to paper

Cs294-4 Benjamin Poon Future Work Implement API as an RPC program Better articulation of tier 1 services (DHT, DOLR, CAST)