University of Oregon Slides from Gotz and Wehrle + Chord paper

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
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.
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.
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.
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.
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.
Presented by Elisavet Kozyri. A distributed application architecture that partitions tasks or work loads between peers Main actions: Find the owner of.
1 Distributed Hash Tables My group or university Peer-to-Peer Systems and Applications Distributed Hash Tables Peer-to-Peer Systems and Applications Chapter.
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.
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.
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 網路應用與服務.
Wide-area cooperative storage with CFS
CSE 461 University of Washington1 Topic Peer-to-peer content delivery – Runs without dedicated infrastructure – BitTorrent as an example Peer.
Effizientes Routing in P2P Netzwerken Chord: A Scalable Peer-to- peer Lookup Protocol for Internet Applications Dennis Schade.
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.
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.
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.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Distributed Hash Tables Steve Ko Computer Sciences and Engineering University at Buffalo.
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.
CS694 - DHT1 Distributed Hash Table Systems Hui Zhang University of Southern California.
CSE 486/586 Distributed Systems Distributed Hash Tables
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.
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
(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
Consistent Hashing and Distributed Hash Table
P2P: Distributed Hash Tables
CSE 486/586 Distributed Systems Distributed Hash Tables
A Scalable Peer-to-peer Lookup Service for Internet Applications
Presentation transcript:

University of Oregon Slides from Gotz and Wehrle + Chord paper CHORD, CAN, Pastry Chapter 8: Distributed Hash Tables Part II of III: Selected DHT Algorithms *Original slides provided by Stefan Götz and Klaus Wehrle (University of Tübingen) Peer-to-Peer Systems and Applications

X. Overview Chord Topology Routing Self-Organization Pastry CAN (Content Addressable Network) Symphony Viceroy Kademlia Summary

Chord Morris, Liben-Nowell, Karger, Kaashoek, Dabek, Balakrishnan (MIT) and Stoica (Berkeley)

Early and successful algorithm (2001) Simple & elegant Chord: Overview Early and successful algorithm (2001) Simple & elegant easy to understand and implement many improvements and optimizations exist Main responsibilities: Routing Flat logical address space: B-bit identifiers instead of IP addresses Efficient routing in large systems: log(N) hops with N total nodes Self-organization Handle node arrival, departure, and failure

Chord: Consistent Hash and Chord IDs Consistent hash function E.g. SHA-1, 160-bit output → 0 <= identifier < 2^16 Load-balanced Resilient to joins and leaves Chord Identifiers Key ID associated with data item (where to store the data) E.g. key = sha-1(value) Node ID associated with host (where host sits in the Chord ring) E.g. id = sha-1 (IP address, port) Insert and Retrieve from the Chord DHT put (key, value) inserts data to Chord Value = get (key) retrieves data from Chord

Chord: Topology (example with 3 bit Ids) Keys and IDs on ring, i.e., all arithmetic modulo 2^160 (key, value) pairs managed by clockwise next node: If key = SHA-1(value) it is stored at the first node whose ID is equal to or follows that of key. This is called the successor(key). 6 4 2 6 5 1 3 7 1 successor(1) = 1 Chord Ring successor(6) = 0 6 2 successor(2) = 3 2 Identifier Node X Key

Topology determined by links between nodes Chord: Topology Topology determined by links between nodes Link: knowledge about another node Stored in routing table on each node Simplest topology: circular linked list Each node has link to clockwise next node 4 2 6 5 1 3 7

Chord: Routing Primitive routing: Pros: Cons: Forward query for key x until successor(x) is found Return result to source of query Pros: Simple Little node state Cons: Poor lookup efficiency: O(1/2 * N) hops on average (with N nodes) Node failure breaks circle 6 Node 0 4 2 6 5 1 3 7 1 Key 6? 2

Simple lookup algorithm Lookup(my-id, key-id) n = my successor if my-id < n < key-id call Lookup(id) on node n // next hop else return my successor // done Correctness depends only on successors Always undershoots to predecessor. So never misses the real successor. Lookup procedure isn’t inherently log(n). But finger table causes it to be.

Chord: Routing Advanced routing: Scalable routing: Store links to z next neighbors Forward queries for k to farthest known predecessor of k For z = N: fully meshed routing system Lookup efficiency: O(1) Per-node state: O(N) Still poor scalability Scalable routing: Linear routing progress scales poorly Mix of short- and long-distance links required: Accurate routing in node’s vicinity Fast routing progress over large distances Bounded number of links per node

Chord’s routing table: finger table Chord: Routing Chord’s routing table: finger table Stores log(N) links per node Covers exponentially increasing distances: Node n: entry i points to successor(n + 2^i) (i-th finger) 1 2 4 3 finger table start succ. keys 6 i 4 2 6 5 1 3 7 finger table i succ. keys 1 2 3 start 5 finger table i succ. keys 2 1 start 4 5 7

Chord: Routing Chord’s routing algorithm: Each node n forwards query for key k clockwise To farthest finger preceding k Until n = predecessor(k) and successor(n) = successor(k) Return successor(n) to source of query 63 60 4 56 7 54 52 13 lookup (44) 14 lookup (44) = 45 49 49 16 19 45 45 44 42 42 23 39 26 37 30 33

Chord: Self-Organization Handle changing network environment Failure of nodes Network failures Arrival of new nodes Departure of participating nodes Maintain consistent system state for routing Keep routing information up to date Routing correctness depends on correct successor information Routing efficiency depends on correct finger tables Failure tolerance required for all operations

Chord: Failure Tolerance: Storage Layered design Chord DHT mainly responsible for routing Data storage managed by application persistence consistency fairness Chord soft-state approach: Nodes delete (key, value) pairs after timeout Applications need to refresh (key, value) pairs periodically Worst case: data unavailable for refresh interval after node failure

Chord: Failure Tolerance: Routing Finger failures during routing query cannot be forwarded to finger forward to previous finger (do not overshoot destination node) trigger repair mechanism: replace finger with its successor Active finger maintenance periodically check liveness of fingers replace with correct nodes on failures trade-off: maintenance traffic vs. correctness & timeliness 63 60 4 56 7 54 52 13 14 49 49 16 19 45 45 44 42 42 23 39 26 37 30 33

Chord: Failure Tolerance: Routing Successor failure during routing Last step of routing can return failed node to source of query -> all queries for successor fail Store n successors in successor list successor[0] fails -> use successor[1] etc. routing fails only if n consecutive nodes fail simultaneously Active maintenance of successor list periodic checks similar to finger table maintenance crucial for correct routing

Construct finger table via standard routing/lookup() Chord: Node Arrival New node picks ID Contact existing node Construct finger table via standard routing/lookup() Retrieve (key, value) pairs from successor finger table keys i start succ. 6 1 2 1 2 4 1 3 4 2 6 5 1 3 7 finger table i succ. keys 1 2 3 start 5 7 2 3 finger table start succ. keys 1 i finger table i succ. keys 2 1 start 4 5 7

Examples for choosing new node IDs Chord: Node Arrival Examples for choosing new node IDs random ID: equal distribution assumed but not guaranteed hash IP address & port place new nodes based on load on existing nodes geographic location, etc. Retrieval of existing node IDs Controlled flooding DNS aliases Published through web etc. ID = hash(182.84.10.23) = 6 4 2 6 5 1 3 7 entrypoint.chord.org? 182.84.10.23 DNS

Construction of finger table Chord: Node Arrival Construction of finger table iterate over finger table rows for each row: query entry point for successor standard Chord routing on entry point Construction of successor list add immediate successor from finger table request successor list from successor successor list 1 3 4 2 6 5 1 3 7 1 succ(7) = 0 succ(0) = 0 succ(2) = 3 succ(7)? succ(0)? succ(2)? finger table keys i start succ. 1 2 7 2 3 successor list

Deliberate node departure For simplicity: treat as failure Chord: Node Departure Deliberate node departure clean shutdown instead of failure For simplicity: treat as failure system already failure tolerant soft state: automatic state restoration state is lost briefly invalid finger table entries: reduced routing efficiency For efficiency: handle explicitly notification by departing node to successor, predecessor, nodes at finger distances copy (key, value) pairs before shutdown

Impact of node failures on lookup failure rate Chord: Performance Impact of node failures on lookup failure rate lookup failure rate roughly equivalent to node failure rate

Chord: Performance Moderate impact of number of nodes on lookup latency Consistent average path length

Lookup latency (number of hops/messages): ~ 1/2 log2(N) Chord: Performance Lookup latency (number of hops/messages): ~ 1/2 log2(N) Confirms theoretical estimation Lookup Path Length Number of Nodes

Many improvements published Chord: Summary Complexity Messages per lookup: O(log N) Memory per node: O(log N) Messages per management action (join/leave/fail): O(log² N) Advantages Theoretical models and proofs about complexity Simple & flexible Disadvantages No notion of node proximity and proximity-based routing optimizations Chord rings may become disjoint in realistic settings Many improvements published e.g. proximity, bi-directional links, load balancing, etc.