Ion Stoica, Robert Morris, David Liben-Nowell, David R. Karger, M

Slides:



Advertisements
Similar presentations
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT and Berkeley presented by Daniel Figueiredo Chord: A Scalable Peer-to-peer.
Advertisements

Peer to Peer and Distributed Hash Tables
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,
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.
IBM Haifa Research 1 Finding Data in the Cloud using Distributed Hash Tables (Chord) IBM Haifa Research Storage Systems.
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.
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
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.
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.
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.
Chord: A Scalable Peer-to-Peer Lookup Protocol for Internet Applications Stoica et al. Presented by Tam Chantem March 30, 2007.
Idit Keidar, Principles of Reliable Distributed Systems, Technion EE, Spring Principles of Reliable Distributed Systems Lecture 2: Peer-to-Peer.
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek and Hari alakrishnan.
Structure Overlay Networks and Chord Presentation by Todd Gardner Figures from: Ion Stoica, Robert Morris, David Liben- Nowell, David R. Karger, M. Frans.
Secure Overlay Services Adam Hathcock Information Assurance Lab Auburn University.
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.
Wide-area cooperative storage with CFS
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.
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.
Presented by: Tianyu Li
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.
Lecture 2 Distributed Hash Table
Structured P2P Overlays. Consistent Hashing – the Basis of Structured P2P Intuition: –We want to build a distributed hash table where the number of buckets.
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,
Idit Keidar, Principles of Reliable Distributed Systems, Technion EE, Spring Principles of Reliable Distributed Systems Lecture 2: Distributed Hash.
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.
1 Secure Peer-to-Peer File Sharing Frans Kaashoek, David Karger, Robert Morris, Ion Stoica, Hari Balakrishnan MIT Laboratory.
Md Tareq Adnan Centralized Approach : Server & Clients Slow content must traverse multiple backbones and long distances Unreliable.
CS694 - DHT1 Distributed Hash Table Systems Hui Zhang University of Southern California.
Chapter 5 Naming (I) Speaker : Jyun-Yao Huang 1 Application and Practice of Distributed Systems.
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,
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
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
(slides by Nick Feamster)
DHT Routing Geometries and Chord
Building Peer-to-Peer Systems with Chord, a Distributed Lookup Service
MIT LCS Proceedings of the 2001 ACM SIGCOMM Conference
P2P: Distributed Hash Tables
A Scalable Peer-to-peer Lookup Service for Internet Applications
Presentation transcript:

“Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications” Ion Stoica, Robert Morris, David Liben-Nowell, David R. Karger, M. Frans Kaashoek, Frank Dabek, Hari Balakrishnan

Background Peer-to-peer systems - completely decentralized, no hierarchical control, each node with equivalent behavior Numerous applications - Napster, Freenet, Gnutella, etc. Core operation is lookup of data items in distributed environment (distributed hashtables)

What Does Chord Provide? Chord is a protocol that provides one operation: a mapping of a key to a node Applications may store associated values for each key on the mapped node Efficient storage (O(log N)) and lookup (O(log N)) where N = the number of nodes; scalable Load balanced even in the presence of node joins and leaves Flexible naming: no constraint on keys used, keyspace is flat

How is Chord Used? Chord is a library that is linked to the application using it Provides lookup(key) function that returns IP address of node responsible for key Notifies application when the set of keys the node is responsible for changes

Example of Chord-based storage system Storage App Storage App Storage App Distributed Hashtable Distributed Hashtable Distributed Hashtable Chord Chord Chord Client Server Server

Chord Protocol: Consistent Hashing The heart of the Chord protocol uses a “consistent hashing” mechanism to achieve a mapping between keys and nodes that is balanced across all nodes with high probability Each node and key is assigned an m-bit identifier produced using a base hash function (SHA-1 is used) Consistent hashing assigns keys to nodes: All identifiers (nodes and keys) are ordered on an identifier circle modulo 2m Key k is assigned to the first node whose identifier is equal to or follows the identifier of key k; the assigned node is the successor node of k, defined successor(k)

The Chord Ring With random identifiers for both nodes and keys, balanced load is achieved. Each node is responsible for a maximum of (1 + ε)k/n keys. Minimal movement of keys is achieved since only O(k/n) keys are transferred between joining/leaving node and another. m = 6; n = 10; k = 5 N1 N8 N14 N21 N32 N38 N42 N48 N51 N56 K10 K24 K30 K38 K54

Simple Lookup Only require that each node knows its current successor. This is all that is needed for correctness. // ask node n to find the successor of id n.find_successor(id) if(id  (n, successor]) return successor; else // forward the query around the circle return successor.find_successor(id)

Efficient Lookup Keep more routing information per node in the form of a finger table Finger table consists of up to m entries, where the ith entry in the table at node n represents the first node s that succeeds n by at least 2i-1 on the identifier circle finger[k] = successor(n + 2i-1) mod 2m, 1 ≤ k ≤ m Note that finger[1] is the successor of n Extra routing info not needed for correctness, only for efficiency.

Efficient Lookup // search the local table for the highest // predecessor of id n.closest_preceding_node(id) for i = m downto 1 if(finger[i]  (n, id)) return finger[i]; return n; // ask node n to find the successor of id n.find_successor(id) if(id  (n, successor]) return successor; else n’ = closest_preceding_node(id); return n’.find_successor(id);

Efficient Lookup Properties Use of finger table requires each node to only store a small amount of information It is claimed that only O(log n) entries need to be stored Each node knows more about nodes close to it on identifier circle than those farther away Intuitively, all entries in a node’s finger table are at power of two intervals around the identifier circle thus a node can always cover at least half the remaining distance between itself and the target identifier. With high probability, the number of nodes that must be contacted in a lookup is O(log N)

Joins and Stabilization Correctness is maintained by correct successive pointers As long as existing successive pointers are in tact, lookups can occur concurrently with joins A stabilization protocol is used to update successor pointers and finger tables

Joins and Stabilization // create a new Chord ring n.create() predecessor = nil; successor = n; // join a Chord ring containing node n’ n.join(n’) successor = n’.find_sucessor(n); // called periodically. verifies n’s immediate // successor and tells the successor about n n.stabilize() x = successor.predecessor; if(x  (n, successor)) sucessor = x; successor.notify(n); // n’ thinks it might be our predecessor n.notify(n’) if(predecessor is nil or n’  (predecessor, n)) predecessor = n’; // called periodically. refreshes finger table entries. // next stores the index of the next finger to fix n.fix_fingers() next = next + 1; if(next > m) next = log(successor – n) + 1; finger[next] = find_successor(n + 2next-1); // called periodically. checks whether predecessor // has failed. n.check_predecessor() if(predecessor has failed) predecessor = nil;

Impact of Joins on Lookup Efficiency Three Scenarios If node joins, successive pointers and finger table entries are updated, then lookup will operate in O(log N) steps. If node joins, successive pointers are updated, but finger table entries are not yet updated, lookup requests using the old finger entries may initially undershoot, but will eventually find the correct node because of correct successive pointers. Slower lookup may result. If node joins, may have incorrect successive pointers or keys may not have migrated to new nodes. Result will be a lookup failure. Third case can be because of multiple joins.

Failures Failures break the condition that all successor pointers are correct If nodes 14, 21, and 32 fail, node 8 cannot lookup key 30 Solution is to maintain a successor list of the node’s first r successors Modify stabilize code to reconcile successor lists with successor Modify closest_preceding_node() to also look in the successor list. Modify code to handle node failures with timeouts that try the next best predecessor.

Simulations Chord protocol can be implemented iteratively or recursively Simulations performed with iterative style Simplifying assumption that data movement by application is occurs without disrupting lookups

Load Balance

Lookup Efficiency

Future Work Security (availability) of lookup protocol Reliance against network partitions

References Presentation content and some diagrams and graphs were taken from: Ion Stoica, Robert Morris, David Liben-Nowell, David R. Karger, M. Frans Kaashoek, Frank Dabek, Hari Balakrishnan, Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications. To Appear in IEEE/ACM Transactions on Networking