(slides by Nick Feamster)

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.
Chord A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica, Robert MorrisDavid, Liben-Nowell, David R. Karger, M. Frans Kaashoek,
Chord A Scalable Peer-to-peer Lookup Service for Internet Applications Prepared by Ali Yildiz (with minor modifications by Dennis Shasha)
Technische Universität Yimei Liao Chemnitz Kurt Tutschku Vertretung - Professur Rechner- netze und verteilte Systeme Chord - A Distributed Hash Table Yimei.
Technische Universität Chemnitz Kurt Tutschku Vertretung - Professur Rechner- netze und verteilte Systeme Chord - A Distributed Hash Table Yimei Liao.
Chord: A Scalable Peer-to- Peer Lookup Service for Internet Applications Ion StoicaRobert Morris David Liben-NowellDavid R. Karger M. Frans KaashoekFrank.
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.
Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications Speaker: Cathrin Weiß 11/23/2004 Proseminar Peer-to-Peer Information Systems.
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.
1 1 Chord: A scalable Peer-to-peer Lookup Service for Internet Applications Dariotaki Roula
Xiaowei Yang CompSci 356: Computer Network Architectures Lecture 22: Overlay Networks Xiaowei Yang
Distributed Hash Tables CPE 401 / 601 Computer Network Systems Modified from Ashwin Bharambe and Robert Morris.
Chord A Scalable Peer-to-peer Lookup Service for Internet Applications
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.
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.
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.
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.
Topics in Reliable Distributed Systems Fall Dr. Idit Keidar.
Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications 吳俊興 國立高雄大學 資訊工程學系 Spring 2006 EEF582 – Internet Applications and Services 網路應用與服務.
Peer To Peer Distributed Systems Pete Keleher. Why Distributed Systems? l Aggregate resources! –memory –disk –CPU cycles l Proximity to physical stuff.
Wide-area cooperative storage with CFS
File Sharing : Hash/Lookup Yossi Shasho (HW in last slide) Based on Chord: A Scalable Peer-to-peer Lookup Service for Internet ApplicationsChord: A Scalable.
Lecture 10 Naming services for flat namespaces. EECE 411: Design of Distributed Software Applications Logistics / reminders Project Send Samer and me.
INTRODUCTION TO PEER TO PEER NETWORKS Z.M. Joseph CSE 6392 – DB Exploration Spring 2006 CSE, UT Arlington.
Chord A Scalable Peer-to-peer Lookup Service for Internet Applications Lecture 3 1.
Effizientes Routing in P2P Netzwerken Chord: A Scalable Peer-to- peer Lookup Protocol for Internet Applications Dennis Schade.
Content Overlays (Nick Feamster). 2 Content Overlays Distributed content storage and retrieval Two primary approaches: –Structured overlay –Unstructured.
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.
Content Overlays (continued) Nick Feamster CS 7260 March 26, 2007.
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 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.
Content Overlays Nick Feamster CS 7260 March 14, 2007.
Structured P2P Overlays. Consistent Hashing – the Basis of Structured P2P Intuition: –We want to build a distributed hash table where the number of buckets.
Chord Advanced issues. Analysis Theorem. Search takes O (log N) time (Note that in general, 2 m may be much larger than N) Proof. After log N forwarding.
Lecture 12 Distributed Hash Tables CPE 401/601 Computer Network Systems slides are modified from Jennifer Rexford.
Chord Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber Google,
Idit Keidar, Principles of Reliable Distributed Systems, Technion EE, Spring Principles of Reliable Distributed Systems Lecture 2: Distributed Hash.
Algorithms and Techniques in Structured Scalable Peer-to-Peer Networks
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.
The Chord P2P Network Some slides taken from the original presentation by the authors.
Ion Stoica, Robert Morris, David Liben-Nowell, David R. Karger, M
CSE 486/586 Distributed Systems Distributed Hash Tables
The Chord P2P Network Some slides have been borrowed from the original presentation by the authors.
Distributed Hash Tables
A Scalable Peer-to-peer Lookup Service for Internet Applications
Accessing nearby copies of replicated objects
DHT Routing Geometries and Chord
Chord Advanced issues.
P2P Systems and Distributed Hash Tables
Chord Advanced issues.
Chord Advanced issues.
MIT LCS Proceedings of the 2001 ACM SIGCOMM Conference
Consistent Hashing and Distributed Hash Table
CSE 486/586 Distributed Systems Distributed Hash Tables
A Scalable Peer-to-peer Lookup Service for Internet Applications
Presentation transcript:

(slides by Nick Feamster) Chord (slides by Nick Feamster)

Chord: Overview What is Chord? A scalable, distributed “lookup service” Lookup service: A service that maps keys to nodes Key technology: Consistent hashing Major benefits of Chord over other lookup services Provable correctness Provable “performance”

Chord: Primary Motivation Scalable location of data in a large distributed system N2 N3 N1 Publisher Key=“LetItBe” Value=MP3 file N5 N4 Client Lookup(“LetItBe”) Key Problem: Lookup

Chord: Design Goals Load balance: Chord acts as a distributed hash function, spreading keys evenly over the nodes. Decentralization: Chord is fully distributed: no node is more important than any other. Scalability: The cost of a Chord lookup grows as the log of the number of nodes, so even very large systems are feasible. Availability: Chord automatically adjusts its internal tables to reflect newly joined nodes as well as node failures, ensuring that, the node responsible for a key can always be found.

Consistent hashing addresses these problems Hashing: assigns “values” to “buckets” In our case the bucket is the node, the value is the file key = f(value) mod N, where N is the number of buckets place value in the key-th bucket Achieves load balance if values are randomly distributed under f Consistent Hashing: assign values such that addition or removal of buckets does not modify all values to buckets assignments Chord challenges How to perform hashing in a distributed fashion? What happens when nodes join and leave? Consistent hashing addresses these problems

Consistent Hashing Main idea: Ring is one option. map both keys and nodes to the same (metric) identifier space find a “rule” how to assign keys to nodes Ring is one option.

Consistent Hashing The consistent hash function assigns each node and key an m-bit identifier using SHA-1 as a base hash function Node identifier: SHA-1 hash of IP address Key identifier: SHA-1 hash of key

Node identifier: SHA-1(IP address) Chord Identifiers m bit identifier space for both keys and nodes Key identifier: SHA-1(key) Key=“LetItBe” ID=60 SHA-1 Node identifier: SHA-1(IP address) IP=“198.10.10.1” ID=123 SHA-1 How to map key IDs to node IDs?

Consistent Hashing in Chord Rule: A key is stored at its successor: node with next higher or equal ID K5 IP=“198.10.10.1” N123 K20 Circular 7-bit ID space K101 N32 Key=“LetItBe” N90 K60

Consistent Hashing Properties Load balance: all nodes receive roughly the same number of keys For N nodes and K keys, with high probability each node holds at most (1+)K/N keys

Lookups in Chord Every node knows of every other node requires global information Routing tables are large: O(N) Lookups are fast: O(1) N10 Where is “LetItBe”? Hash(“LetItBe”) = K60 N123 N32 “N90 has K60” K60 N90 N55

Lookups in Chord Every node knows its successor in the ring Requires O(N) lookups N10 Where is “LetItBe”? N123 Hash(“LetItBe”) = K60 N32 “N90 has K60” N55 K60 N90

Reducing Lookups: Finger Tables Each node knows m other nodes in the ring (it has m fingers) Increase distance exponentially Finger i points to successor of n+2i-1 i=1..m N120 N112 N16 80 + 25 80 + 26 N96 80 + 24 80 + 23 80 + 22 80 + 21 80 + 20 N80

Faster Lookups Lookups are O(log N) hops N5 N14 N110 N20 K19 N99 N32 N32 finger table F0 points to successor(32+20) = 60 F1 points to successor(32+21) = 60 F2 points to successor(32+22) = 60 F3 points to successor(32+23) = 60 F4 points to successor(32+24) = 60 F5 points to successor(32+25) = 80 F6 points to successor(32+26) = 99 Faster Lookups Lookups are O(log N) hops N5 N14 N110 N20 K19 N99 N32 Lookup(K19) Look for a node identifier in the finger table that is less then the key identifier and closest in the ID space to the key identifier N80 N60

Summary of Performance Results Efficient: O(log N) messages per lookup Scalable: O(log N) state per node Robust: survives massive membership changes

Joining the Ring Three step process Two invariants to maintain Initialize all fingers of new node Update fingers of existing nodes Transfer keys from successor to new node Two invariants to maintain Each node’s successor is correctly maintained successor(k) is responsible for k

Join: Initialize New Node’s Finger Table Locate any node p in the ring Ask node p to lookup fingers of new node N5 N20 N99 N36 1. Lookup(37,38,40,…,100,164) N40 N80 N60

Join: Update Fingers of Existing Nodes New node calls update function on existing nodes n becomes the ith fingerprint of node p if p precedes n by at least 2i-1 and ith finger of node p succeeds n. Update in O(log2N) N5 N20 N99 N36 N40 N80 N60

Join: Transfer Keys Only keys in the range are transferred K30 K38 Copy keys 21..36 from N40 to N36 N40 K30 K38 N80 N60

Handling Failures Problem: Failures could cause incorrect lookup Solution: Fallback: keep track of a list of immediate successors N120 N10 N102 Lookup(85) N85 N80

Handling Failures Use successor list Guarantee with some probability Each node knows r immediate successors After failure, will know first live successor Correct successors guarantee correct lookups Guarantee with some probability Can choose r to make probability of lookup failure arbitrarily small

Joining/Leaving overhead When a node joins (or leaves) the network, only a fraction of the keys are moved to a different location. For N nodes and K keys, with high probability when node N+1 joins or leaves, O(K/N) keys change hands, and only to/from node N+1

Structured vs. Unstructured Overlays Structured overlays have provable properties Guarantees on storage, lookup, performance Maintaining structure under churn has proven to be difficult Lots of state that needs to be maintained when conditions change Deployed overlays are typically unstructured