Building Peer-to-Peer Systems with Chord, a Distributed Lookup Service

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
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 MorrisDavid, Liben-Nowell, David R. Karger, M. Frans Kaashoek,
The Chord P2P Network Some slides have been borowed from the original presentation by the authors.
CHORD: A Peer-to-Peer Lookup Service CHORD: A Peer-to-Peer Lookup Service Ion StoicaRobert Morris David R. Karger M. Frans Kaashoek Hari Balakrishnan Presented.
Ion Stoica, Robert Morris, David Liben-Nowell, David R. Karger, M
Chord: A scalable peer-to- peer lookup service for Internet applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashock, Hari Balakrishnan.
Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan Presented.
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.
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Robert Morris Ion Stoica, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT.
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion StoicaRobert Morris David Liben-NowellDavid R. Karger M. Frans KaashoekFrank.
Pastry Peter Druschel, Rice University Antony Rowstron, Microsoft Research UK Some slides are borrowed from the original presentation by the authors.
Presented by Elisavet Kozyri. A distributed application architecture that partitions tasks or work loads between peers Main actions: Find the owner of.
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.
1 Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Robert Morris Ion Stoica, David Karger, M. Frans Kaashoek, Hari Balakrishnan.
Topics in Reliable Distributed Systems Lecture 2, Fall Dr. Idit Keidar.
Introduction to Peer-to-Peer (P2P) Systems Gabi Kliot - Computer Science Department, Technion Concurrent and Distributed Computing Course 28/06/2006 The.
Looking Up Data in P2P Systems Hari Balakrishnan M.Frans Kaashoek David Karger Robert Morris Ion Stoica.
Spring 2003CS 4611 Peer-to-Peer Networks Outline Survey Self-organizing overlay network File system on top of P2P network Contributions from Peter Druschel.
Distributed Lookup Systems
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek and Hari alakrishnan.
Chord-over-Chord Overlay Sudhindra Rao Ph.D Qualifier Exam Department of ECECS.
Topics in Reliable Distributed Systems Fall Dr. Idit Keidar.
Peer To Peer Distributed Systems Pete Keleher. Why Distributed Systems? l Aggregate resources! –memory –disk –CPU cycles l Proximity to physical stuff.
1 Peer-to-Peer Networks Outline Survey Self-organizing overlay network File system on top of P2P network Contributions from Peter Druschel.
CSE 461 University of Washington1 Topic Peer-to-peer content delivery – Runs without dedicated infrastructure – BitTorrent as an example Peer.
Wide-Area Cooperative Storage with CFS Robert Morris Frank Dabek, M. Frans Kaashoek, David Karger, Ion Stoica MIT and Berkeley.
Security Considerations for Structured p2p Peng Wang 6/04/2003.
Wide-area cooperative storage with CFS Frank Dabek, M. Frans Kaashoek, David Karger, Robert Morris, Ion Stoica.
Chord & CFS Presenter: Gang ZhouNov. 11th, University of Virginia.
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)
Vincent Matossian September 21st 2001 ECE 579 An Overview of Decentralized Discovery mechanisms.
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT and Berkeley presented by Daniel Figueiredo Chord: A Scalable Peer-to-peer.
Presentation 1 By: Hitesh Chheda 2/2/2010. Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT Laboratory for Computer Science.
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications.
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Dr. Yingwu Zhu.
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.
Peer to Peer A Survey and comparison of peer-to-peer overlay network schemes And so on… Chulhyun Park
1 Secure Peer-to-Peer File Sharing Frans Kaashoek, David Karger, Robert Morris, Ion Stoica, Hari Balakrishnan MIT Laboratory.
Chord Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber Google,
Algorithms and Techniques in Structured Scalable Peer-to-Peer Networks
LOOKING UP DATA IN P2P SYSTEMS Hari Balakrishnan M. Frans Kaashoek David Karger Robert Morris Ion Stoica MIT LCS.
CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems.
Large Scale Sharing Marco F. Duarte COMP 520: Distributed Systems September 19, 2004.
1 Secure Peer-to-Peer File Sharing Frans Kaashoek, David Karger, Robert Morris, Ion Stoica, Hari Balakrishnan MIT Laboratory.
Peer-to-Peer (P2P) File Systems. P2P File Systems CS 5204 – Fall, Peer-to-Peer Systems Definition: “Peer-to-peer systems can be characterized as.
CS 425 / ECE 428 Distributed Systems Fall 2015 Indranil Gupta (Indy) Peer-to-peer Systems All slides © IG.
Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications * CS587x Lecture Department of Computer Science Iowa State University *I. Stoica,
The Chord P2P Network Some slides taken from the original presentation by the authors.
Peer-to-Peer Information Systems Week 12: Naming
Ion Stoica, Robert Morris, David Liben-Nowell, David R. Karger, M
Magdalena Balazinska, Hari Balakrishnan, and David Karger
The Chord P2P Network Some slides have been borrowed from the original presentation by the authors.
A Scalable Peer-to-peer Lookup Service for Internet Applications
Peer-to-Peer (P2P) File Systems
Peer-to-Peer Storage Systems
Chord and CFS Philip Skov Knudsen
MIT LCS Proceedings of the 2001 ACM SIGCOMM Conference
Consistent Hashing and Distributed Hash Table
A Scalable Peer-to-peer Lookup Service for Internet Applications
Peer-to-Peer Information Systems Week 12: Naming
#02 Peer to Peer Networking
Presentation transcript:

Building Peer-to-Peer Systems with Chord, a Distributed Lookup Service Robert Morris F. Dabek, E. Brunskill, M. F. Kaashoek, D. Karger, I. Stoica, H. Balakrishnan MIT / LCS Motivation: Every p2p system needs a lookup plan, to find documents.

Goal: Better Peer-to-Peer Storage Lookup is the key problem Lookup is not easy: GNUtella scales badly Freenet is imprecise Chord lookup provides: Good naming semantics and efficiency Elegant base for layered features But lookup isn’t easy.

Insert(name, document) Lookup N1 N2 ? Consumer N3 Fetch(name) Author N4 1000s of nodes. Some/all may have crashed. Naming problem. Turns out good naming solution solves all kinds of other problems too. No natural hierarchy. Insert(name, document) N6 N5

Chord Architecture Interface: Chord consists of lookup(DocumentID)  NodeID, IP-Address Chord consists of Consistent Hashing Small routing tables: log(n) Fast join/leave protocol

Consistent Hashing Example: Node 90 is the “successor” of document 80. (0) D120 N105 D20 Circular 7-bit ID space N32 Not all hash slots exist! Actually store document at “successor” node. Example: 7-bit ID space. document with ID 80 stored at node with ID 90. Maybe two slides. 1. Circle. 2. Successor. Animation? N90 D80 Example: Node 90 is the “successor” of document 80.

Chord Uses log(N) “Fingers” (0) ¼ ½ Circular 7-bit ID space 1/8 1/16 Small tables, but multi-hop lookup. Table entries: IP address and Chord ID. Navigate in ID space, route queries closer to successor. Log(n) tables, log(n) hops. Route to a document between ¼ and ½ … 1/32 1/64 1/128 N80 N80 knows of only seven other nodes.

Chord Finger Table Node n’s i-th entry: first node  n + 2i-1 N32’s (0) N32’s Finger Table N113 33..33 N40 34..35 N40 36..39 N40 40..47 N40 48..63 N52 64..95 N70 96..31 N102 N102 N32 N85 Finger table actually contains ID and IP address. Explain ranges in finger table. N40 N80 N79 N52 N70 N60 Node n’s i-th entry: first node  n + 2i-1

Chord Lookup Node 32, lookup(82): 32  70  80  85. (0) N70’s Finger Table Chord Lookup 71..71 N79 72..73 N79 74..77 N79 78..85 N80 86..101 N102 102..5 N102 6..69 N32 (0) N113 N32’s Finger Table N102 33..33 N40 34..35 N40 36..39 N40 40..47 N40 48..63 N52 64..95 N70 96..31 N102 N80’s Finger Table N32 N85 81..81 N85 82..83 N85 84..87 N85 88..95 N102 96..111 N102 112..15 N113 16..79 N32 N40 N80 Forward to highest known node before target. Done if document between node and finger[1] (its successor). Example: successor of Document 82. 32 -> 70 -> 79 -> 80 -> 85. Keep mentioning successor. N52 N79 N70 N60 Node 32, lookup(82): 32  70  80  85.

New Node Join Procedure (0) N20’s Finger Table N113 N20 21..21 22..23 24..27 28..35 36..51 52..83 84..19 N102 N32 Assume N20 knows of *some* existing node. N40 N80 N52 N70 N60

New Node Join Procedure (2) (0) N20’s Finger Table N113 N20 21..21 N32 22..23 N32 24..27 N32 28..35 N32 36..51 N40 52..83 N52 84..19 N102 N102 N32 Similarly notify nodes that must include N20 in their table. N110[1] = N20, not N32. ONLY need to talk to one other node to xfer values. N40 N80 N52 N70 N60 Node 20 asks any node for successor to 21, 22, …, 52, 84.

New Node Join Procedure (3) (0) N20’s Finger Table N113 N20 21..21 N32 22..23 N32 24..27 N32 28..35 N32 36..51 N40 52..83 N52 84..19 N102 N102 D114..20 N32 Similarly notify nodes that must include N20 in their table. N110[1] = N20, not N32. ONLY need to talk to one other node to xfer values. N40 N80 N52 N70 N60 Node 20 moves documents from node 32.

Chord Properties Log(n) lookup messages and table space. Well-defined location for each ID. No search required. Natural load balance. No name structure imposed. Minimal join/leave disruption. Does not store documents…

Building Systems with Chord Data auth. Client App (e.g. Browser) get(key) put(k, v) Storage Update auth. Fault tolerance Load balance Key/Value Key/Value Key/Value lookup(id) K/v software in every chord server; k/v talks to chord and to other k/v servers. Need features, Layered on top of Chord lookup(), often think in terms of naming. Chord Chord Chord Client Server Server

Naming and Authentication Name could be hash of file content Easy for client to verify But update requires new file name Name could be a public key Document contains digital signature Allows verified updates w/ same name Names probably come from links. Inspiration from SFSRO and Freenet

Naming and Fault Tolerance Replica1 Replica2 Replica2 Replica3 Need to notice when a replica dies, find a new one. Hash(name + I) easy to load balance, while successor hits on first successor Replica3 Replica1 IDi = hash(name + i) IDi = successori(hash(name))

Naming and Load Balance File Blocks Inode B1 IDB1 = hash(B1) IDB1 IDB2 IDB3 IDInode = hash(name) B2 IDB2 = hash(B2) B3 IDB2 = hash(B2)

Naming and Caching Client 1 D30 @ N32 Client 2 Good performance for small files? Cache – but need to put copies where clients will naturally encounter them. Client 2

Open Issues Network proximity Malicious data insertion Malicious Chord table information Anonymity Keyword search and indexing

Related Work CAN (Satnasamy, Francis, Handley, Karp, Shenker) Pastry (Rowstron and Druschel) Tapestry (Zhao, Kubiatowicz, Joseph)

Chord Status Working Chord implementation SFSRO file system layered on top Prototype deployed at 12 sites around world Understand design tradeoffs

Chord Summary Chord provides distributed lookup Efficient, low-impact join and leave Flat key space allows flexible extensions Good foundation for peer-to-peer systems http://www.pdos.lcs.mit.edu/chord Just the right lookup for peer-to-peer storage systems. NATs? Mogul. What if most nodes are flakey? Details of noticing and reacting to failures? How to eval with huge # of nodes?