DHT Routing Geometries and Chord

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 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.
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
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.
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.
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.
Topics in Reliable Distributed Systems Lecture 2, Fall Dr. Idit Keidar.
P2P: Advanced Topics Filesystems over DHTs and P2P research Vyas Sekar.
Distributed Lookup Systems
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.
Chord-over-Chord Overlay Sudhindra Rao Ph.D Qualifier Exam Department of ECECS.
Topics in Reliable Distributed Systems Fall Dr. Idit Keidar.
1 CS 194: Distributed Systems Distributed Hash Tables Scott Shenker and Ion Stoica Computer Science Division Department of Electrical Engineering and Computer.
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.
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.
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.
Peer to Peer A Survey and comparison of peer-to-peer overlay network schemes And so on… Chulhyun Park
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.
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.
Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.
Algorithms and Techniques in Structured Scalable Peer-to-Peer Networks
Distributed Hash Tables (DHT) Jukka K. Nurminen *Adapted from slides provided by Stefan Götz and Klaus Wehrle (University of Tübingen)
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.
Peer-to-Peer Information Systems Week 12: Naming
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.
A Scalable Peer-to-peer Lookup Service for Internet Applications
Peer-to-Peer Data Management
(slides by Nick Feamster)
Improving and Generalizing Chord
EE 122: Peer-to-Peer (P2P) Networks
Prof. Leonardo Mostarda University of Camerino
Chord Advanced issues.
Chord Advanced issues.
Chord Advanced issues.
MIT LCS Proceedings of the 2001 ACM SIGCOMM Conference
P2P: Distributed Hash Tables
CSE 486/586 Distributed Systems Distributed Hash Tables
A Scalable Peer-to-peer Lookup Service for Internet Applications
Peer-to-Peer Information Systems Week 12: Naming
Presentation transcript:

DHT Routing Geometries and Chord Dietrich Geisler

Initial Attempts Freenet, Gnutella, BitTorrent, Napster File-sharing services that take advantage of networks Two major approaches for file delivery system Central indexing which searches for data – vulnerable to failure Querying machines for file – inefficient and potentially incorrect

How do we store and access distributed data? Problem How do we store and access distributed data?

Peer-to-Peer Systems Distributed system for managing data No central controller No notion of hierarchy among member nodes

Distributed Hash Tables Structure of a hash table – (key, value) pairs Member nodes contain local keys and values Nodes have information for retrieving ‘neighbor’ nodes in the form of keys Only a subset of all references are stored on a given node

Introduction to Chord Chord consists of a DHT protocol and program Nodes are placed on a ring structure Each node acts independently

Chord Goals Load Balancing Decentralization Scalability Flexible Naming Availability

Outline of Chord Key assignment Linking nodes Adding/Removing nodes Finger tables Adding/Removing nodes Optimizations Concurrency Load Balancing

Chord Structure From Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications

Ring of Nodes 15 1 m = 4, 2m = 16 14 2 13 3 12 4 11 5 10 6 9 7 8

Key Assignment in Chord 14 Successor(14) 2 m = 4, 2m = 16 6 10

Key Assignment in Chord 14 2 m = 4, 2m = 16 6 10

Key Assignment in Chord 1 14 2 m = 4, 2m = 16 13 1 v0 6 v1 12 12 v2 13 v3 6 6 10

Key Assignment in Chord 1 14 2 m = 4, 2m = 16 13 1 v0 6 v1 12 12 v2 13 v3 6 6 10

Key Assignment in Chord 1 14 2 m = 4, 2m = 16 13 1 v0 6 v1 12 12 v2 12 Which keys do we need to update? 13 v3 6 6 10

Key Assignment in Chord 1 14 2 m = 4, 2m = 16 13 1 v0 6 v1 12 12 v2 13 v3 6 6 10

Key Assignment in Chord 1 14 2 m = 4, 2m = 16 13 1 v0 6 v1 12 12 v2 Which keys do we need to update? 13 v3 6 6 10

Key Assignment in Chord 1 14 m = 4, 2m = 16 13 1 v0 6 v1 12 12 v2 13 v3 6 6 10

Properties of Consistent Hashing For any set of N nodes and K keys, with high probability, Each node is responsible for at most (1 + ε)K=N keys ε = O(logN) When an (N +1)st node joins or leaves the network, responsibility for O(K=N) keys changes hands (and only to or from the joining or leaving node)

Naïve Linking 14 Successor(14) 2 m = 4, 2m = 16 Successor(2) 6 6 10

Naïve Linking 14 2 m = 4, 2m = 16 13 3 12 How do we get the item with identifier 13 from node 0 using only successor nodes? 6 10 9

Naïve Linking 14 2 m = 4, 2m = 16 13 3 12 6 10 9

Finger Tables Maintain a list of nodes at intervals of the ring Provide good coverage while minimizing space Tables where ith entry of the node n is the successor of (n + 2i-1) mod 2m

Naïve Linking 14 2 Finger Table for node 0 i ident. node 1 2 3 4 6 8 9 14 2 m = 4, 2m = 16 Finger Table for node 0 i ident. node 1 2 3 4 6 8 9 3 12 6 10 9

Naïve Linking 14 2 Finger Table for node 0 13 i ident. node 1 2 3 4 6 14 2 m = 4, 2m = 16 Finger Table for node 0 13 i ident. node 1 2 3 4 6 8 9 3 12 How do we get the item with identifier 13 from node 0? (We don’t have a notion of predecessor yet!) 6 10 9

Naïve Linking 14 2 Finger Table for node 0 13 i ident. node 1 2 3 4 6 14 2 m = 4, 2m = 16 Finger Table for node 0 13 i ident. node 1 2 3 4 6 8 9 3 12 6 10 9

Node Joins Preserve ability to locate a given key Each node’s successor must be correctly maintained For every k∈ Keys, successor(k) is responsible for k To help with this, each node will maintain a predecessor node in addition to the nodes stored in the finger table

Node Join Requirements Initialize the predecessor and fingers of node n Update the fingers and predecessors of existing nodes to reflect the addition of n Notify the higher layer software so that it can transfer state (e.g. values) associated with keys that node n is now responsible for.

Node Join Requirements Initialize the predecessor and fingers of node n O(log N) Update the fingers and predecessors of existing nodes to reflect the addition of n Notify the higher layer software so that it can transfer state (e.g. values) associated with keys that node n is now responsible for. O(1)

Node Join 14 2 Finger Table for node 0 i ident. node 1 4 2 3 8 12 4 6 14 2 m = 4, 2m = 16 Finger Table for node 0 i ident. node 1 4 2 3 8 12 4 Which nodes have to update their tables? 6 10 8

Node Join 14 2 Finger Table for node 0 i ident. node 1 2 3 4 8 12 4 6 14 2 m = 4, 2m = 16 Finger Table for node 0 i ident. node 1 2 3 4 8 12 4 6 10 8

Node Join 14 2 Finger Table for node 0 i ident. node 1 2 3 4 8 12 4 6 14 2 m = 4, 2m = 16 Finger Table for node 0 i ident. node 1 2 3 4 8 12 4 Which nodes have to update their tables? 6 10 8

Node Join 14 2 Finger Table for node 0 i ident. node 1 2 3 4 8 10 12 4 14 2 m = 4, 2m = 16 Finger Table for node 0 i ident. node 1 2 3 4 8 10 12 4 6 10 8

What can go wrong? We have a protocol that can reach any node from a given node in O(log N) steps with high probability Nodes can join and leave while maintaining our tables So what problems do we still need to address?

Concurrency and Failures It is necessary to handle concurrent joins and failures It cannot be assumed the operations described will be able to handle these conditions In particular, we want to maintain finger tables to be as accurate as possible to minimize searching cost

Stabilization A node informs neighboring nodes of its existence Iterative runs of stabilize will eventually result in a system with fully correct tables If N nodes are added to a system with N initial nodes concurrently, lookups will take O(log N) time with high probability

Fault Tolerance To handle faults, each node must maintain an additional list of replacement successors of size r As r increases, fault tolerance clearly increases, but memory costs increase linearly In particular, r = O(log N) allows for recovery with high probability if each node fails with probability ½

Virtual Nodes The load balancing of this system can be improved How about we allow each member to house multiple ‘nodes’?

Virtual Nodes 1 14 2 m = 4, 2m = 16 13 12 4 5 6 10 9 8

Virtual Nodes 1 14 2 m = 4, 2m = 16 13 12 4 5 6 10 9 8

Virtual Nodes 1 14 2 Finger Table for node 0 13 i ident. node 1 2 3 4 1 14 2 m = 4, 2m = 16 Finger Table for node 0 13 i ident. node 1 2 3 4 8 12 4 5 6 10 9 8

1-(1-(1-1/N)N)M ≈ 1-(1- 0.368)M ≈ 1-(0.632)M Virtual Nodes Virtual nodes allow for improved load balancing The probability that a given node contains no keys is (1-1/N)N ≈ e-1 ≈ 0.368 With M < N virtual nodes, this probability is reduced to 1-(1-(1-1/N)N)M ≈ 1-(1- 0.368)M ≈ 1-(0.632)M

Results

Results

Results

Chord Goals How well did Chord achieve its goals? Load Balancing Decentralization Scalability Flexible Naming Availability What are the problems with this protocol?

Distributed Hash Tables (Recall) Structure of a hash table – (key, value) pairs Member nodes contain local keys and values Nodes have information for retrieving ‘neighbor’ nodes in the form of keys Only a subset of all references are stored on a given node

Geometry (and why it matters) How can we compare a variety of DHT algorithms?

Geometry (and why it matters) How can we compare a variety of DHT algorithms? The structure of how they connect and search for nodes within the system seems like a good place to start The geometry of a DHT refers loosely to the connections between nodes in the DHT structure

Outline of DHT Geometries Notable Geometries Theoretical Speed and Resilience Comparison Experimental Results

Notable Geometries Tree Hypercube Butterfly Ring (Chord!) XOR Hybrid

Tree Geometry Origin Node Distance = 1 Distance = 2 Distance = 3

Hypercube Geometry Origin Node Distance = 1 Distance = 2 Distance = 3

Butterfly Geometry Stages for each bit of the identifier O(log n) jumps for each stage Fast, but very little flexibility

Ring Geometry Origin Node Distance = 1

XOR Geometry (Tree, but fault-tolerant) Origin Node Distance = 1 Distance = 2 Distance = 3

Hybrid Geometry Allows combining the strengths of different geometries Can be implemented by computing the distance between two nodes multiple ways More space intensive than a single geometry and search complexity can be subtle

~ Geometry Summary Hyper Cube Butter fly Tree Ring XOR Neighbor selection (Speed) Route selection (Resilience) ~

Results

Results

Fault-Tolerance

NOTE At this point, I think I’ll be out of time; I can add slides on PNS/PRS, Convergence, or the Discussion section if you think they’re relevant

Questions https://xkcd.com/327/