CPSC 426/526. P2P Lookup Service. Ennan Zhai. Computer Science Department Yale University

Similar documents
CPSC 426/526. P2P Lookup Service. Ennan Zhai. Computer Science Department Yale University

CPSC 426/526. Reputation Systems. Ennan Zhai. Computer Science Department Yale University

Content Overlays. Nick Feamster CS 7260 March 12, 2007

Telematics Chapter 9: Peer-to-Peer Networks

PEER-TO-PEER NETWORKS, DHTS, AND CHORD

C 1. Last Time. CSE 486/586 Distributed Systems Distributed Hash Tables. Today s Question. What We Want. What We Want. What We Don t Want

Distributed Hash Tables: Chord

Peer-to-Peer Systems and Distributed Hash Tables

DISTRIBUTED SYSTEMS CSCI 4963/ /4/2015

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

Today. Why might P2P be a win? What is a Peer-to-Peer (P2P) system? Peer-to-Peer Systems and Distributed Hash Tables

Peer to Peer I II 1 CS 138. Copyright 2015 Thomas W. Doeppner, Rodrigo Fonseca. All rights reserved.

Distributed File Systems: An Overview of Peer-to-Peer Architectures. Distributed File Systems

UseNet and Gossip Protocol

CompSci 356: Computer Network Architectures Lecture 21: Overlay Networks Chap 9.4. Xiaowei Yang

*Adapted from slides provided by Stefan Götz and Klaus Wehrle (University of Tübingen)

*Adapted from slides provided by Stefan Götz and Klaus Wehrle (University of Tübingen)

Last Time. CSE 486/586 Distributed Systems Distributed Hash Tables. What We Want. Today s Question. What We Want. What We Don t Want C 1

Peer-to-Peer (P2P) Systems

Distributed Hash Tables (DHT)

Introduction to P2P Computing

Architectures for Distributed Systems

Scalability In Peer-to-Peer Systems. Presented by Stavros Nikolaou

CS 640 Introduction to Computer Networks. Today s lecture. What is P2P? Lecture30. Peer to peer applications

Page 1. How Did it Start?" Model" Main Challenge" CS162 Operating Systems and Systems Programming Lecture 24. Peer-to-Peer Networks"

Distributed Hash Tables

Distributed Systems. 17. Distributed Lookup. Paul Krzyzanowski. Rutgers University. Fall 2016

Lecture 8: Application Layer P2P Applications and DHTs

CSE 486/586 Distributed Systems

L3S Research Center, University of Hannover

EE 122: Peer-to-Peer Networks

CSCI-1680 P2P Rodrigo Fonseca

Peer to Peer Systems and Probabilistic Protocols

Peer-to-Peer Internet Applications: A Review

Badri Nath Rutgers University

Telecommunication Services Engineering Lab. Roch H. Glitho

Advanced Computer Networks

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

Flooded Queries (Gnutella) Centralized Lookup (Napster) Routed Queries (Freenet, Chord, etc.) Overview N 2 N 1 N 3 N 4 N 8 N 9 N N 7 N 6 N 9

Scaling Problem Computer Networking. Lecture 23: Peer-Peer Systems. Fall P2P System. Why p2p?

Today s Objec2ves. Kerberos. Kerberos Peer To Peer Overlay Networks Final Projects

Overlay networks. To do. Overlay networks. P2P evolution DHTs in general, Chord and Kademlia. Turtles all the way down. q q q

Searching for Shared Resources: DHT in General

EE 122: Peer-to-Peer (P2P) Networks. Ion Stoica November 27, 2002

Searching for Shared Resources: DHT in General

LECT-05, S-1 FP2P, Javed I.

Advanced Distributed Systems. Peer to peer systems. Reference. Reference. What is P2P? Unstructured P2P Systems Structured P2P Systems

Chord : A Scalable Peer-to-Peer Lookup Protocol for Internet Applications

Distributed Systems. peer-to-peer Johan Montelius ID2201. Distributed Systems ID2201

P2P Computing. Nobuo Kawaguchi. Graduate School of Engineering Nagoya University. In this lecture series. Wireless Location Technologies

Distributed lookup services

DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES

Scaling Problem Millions of clients! server and network meltdown. Peer-to-Peer. P2P System Why p2p?

Peer to Peer Networks

Distributed Hash Tables

12/5/16. Peer to Peer Systems. Peer-to-peer - definitions. Client-Server vs. Peer-to-peer. P2P use case file sharing. Topics

Goals. EECS 122: Introduction to Computer Networks Overlay Networks and P2P Networks. Solution. Overlay Networks: Motivations.

Modern Technology of Internet

CS 347 Parallel and Distributed Data Processing

15-744: Computer Networking P2P/DHT

CIS 700/005 Networking Meets Databases

P2P: Distributed Hash Tables

08 Distributed Hash Tables

CSE 124 Finding objects in distributed systems: Distributed hash tables and consistent hashing. March 8, 2016 Prof. George Porter

P2P Network Structured Networks: Distributed Hash Tables. Pedro García López Universitat Rovira I Virgili

Peer-to-Peer Systems. Network Science: Introduction. P2P History: P2P History: 1999 today

Introduction to Peer-to-Peer Systems

Part 1: Introducing DHTs

Distributed Information Processing

416 Distributed Systems. Mar 3, Peer-to-Peer Part 2

Scaling Problem Millions of clients! server and network meltdown. Peer-to-Peer. P2P System Why p2p?

Peer-to-Peer Systems. Chapter General Characteristics

March 10, Distributed Hash-based Lookup. for Peer-to-Peer Systems. Sandeep Shelke Shrirang Shirodkar MTech I CSE

Page 1. P2P Traffic" P2P Traffic" Today, around 18-20% (North America)! Big chunk now is video entertainment (e.g., Netflix, itunes)!

Finding Data in the Cloud using Distributed Hash Tables (Chord) IBM Haifa Research Storage Systems

EECS 122: Introduction to Computer Networks Overlay Networks and P2P Networks. Overlay Networks: Motivations

Peer to Peer Networks

Opportunistic Application Flows in Sensor-based Pervasive Environments

Building a low-latency, proximity-aware DHT-based P2P network

Definition of a DS A collection of independent computers that appear to its user as a single coherent system.

Special Topics: CSci 8980 Edge History

CS 268: DHTs. Page 1. How Did it Start? Model. Main Challenge. Napster. Other Challenges

: Scalable Lookup

Making Gnutella-like P2P Systems Scalable

Structured P2P. Complexity O(log N)

Peer-to-Peer (P2P) Architectures

Outline. Peer-to-Peer. P2p file-sharing. Wither p2p? What s out there? The p2p challenge C1: Search(human s goals) -> file

P2P Network Structured Networks: Distributed Hash Tables. Pedro García López Universitat Rovira I Virgili

Peer-to-Peer Protocols and Systems. TA: David Murray Spring /19/2006

Overlay Networks: Motivations. EECS 122: Introduction to Computer Networks Overlay Networks and P2P Networks. Motivations (cont d) Goals.

Differential Privacy

CS514: Intermediate Course in Computer Systems

Simulations of Chord and Freenet Peer-to-Peer Networking Protocols Mid-Term Report

Content Overlays (continued) Nick Feamster CS 7260 March 26, 2007

CSCI-1680 Web Performance, Content Distribution P2P Rodrigo Fonseca

DATA. The main challenge in P2P computing is to design and implement LOOKING UP. in P2P Systems

Cryptographic Systems

Distributed Systems. 16. Distributed Lookup. Paul Krzyzanowski. Rutgers University. Fall 2017

CSCI-1680 Web Performance, Content Distribution P2P John Jannotti

CS 43: Computer Networks. 14: DHTs and CDNs October 3, 2018

Transcription:

CPSC 4/5 PP Lookup Service Ennan Zhai Computer Science Department Yale University

Recall: Lec- Network basics: - OSI model and how Internet works - Socket APIs red PP network (Gnutella, KaZaA, etc.) UseNet and gossip protocol: - UseNet format and peer identity - How gossip protocol runs, pros. and cons. Structured PP network (Chord, CAN, Pastry, etc.) - More (Hybrid PP, BitTorrent, etc.)

Lecture Roadmap Background Chord Design Evaluating Chord Comparison

Background History of Peer-to-Peer (PP) systems: - Napster, the first PP content sharing system - Unstructured PP network (Gnutella, KaZaA, etc.) - Structured PP network (Chord, CAN, Pastry, etc.) - More (Hybrid PP, BitTorrent, etc.)

Background History of Peer-to-Peer (PP) systems: - Napster, the first PP content sharing system - Unstructured PP network (Gnutella, KaZaA, etc.) - Structured PP network (Chord, CAN, Pastry, etc.) - More (Hybrid PP, BitTorrent, etc.)

Background History of Peer-to-Peer (PP) systems: - Napster, the first PP content sharing system - Unstructured PP network (Gnutella, KaZaA, etc.) - Structured PP network (Chord, CAN, Pastry, etc.) - More (Hybrid PP, BitTorrent, etc.)

Background History of Peer-to-Peer (PP) systems: - Napster, the first PP content sharing system - Unstructured PP network (Gnutella, KaZaA, etc.) - Structured PP network (Chord, CAN, Pastry, etc.) - More (Hybrid PP, BitTorrent, etc.)

Background History of Peer-to-Peer (PP) systems: - Napster, the first PP content sharing system - Unstructured PP network (Gnutella, KaZaA, etc.) - Structured PP network (Chord, CAN, Pastry, etc.)? - More (Hybrid PP, BitTorrent, etc.) Pros. Cons.?

Background History of Peer-to-Peer (PP) systems: - Napster, the first PP content sharing system - Unstructured PP network (Gnutella, KaZaA, etc.) - Structured PP network (Chord, CAN, Pastry, etc.) - More (Hybrid PP, - Easy BitTorrent, to maintainetc.) Pros. { Cons. { - Finding popular stuff - Fancy local queries - Finding unpopular stuff - No guarantees - Data poisoning and tracking

Background History of Peer-to-Peer (PP) systems: - Napster, the first PP content sharing system - Unstructured PP network (Gnutella, KaZaA, etc.) - Structured PP network (Chord, CAN, Pastry, etc.) - More (Hybrid PP, BitTorrent, etc.)

Why Chord? Chord s important guarantees: - Decentralized (V.S. Napster) - Scalability: O(log(n)) - Availability (V.S. Gnutella)

Lecture Roadmap Background Chord Design Evaluating Chord Comparison

Chord In short: A PP lookup service Solves problem of locating a data in a collection of decentralized nodes Supports just one operation: given a key, it maps the key onto a node

Initialization: Node 7 0 5 3 4

Initialization: Node 7 0 5 3 4

Initialization: Object 7 0 5 4 3

Initialization: Object 7 0 5 4 3

Initialization: Table 7 0 [,3) 3 3 [3,5) 3 5 [5,) 0 5 3 4

Initialization: Table 7 0 [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Initialization: Table [,) [,4) 3 4 [4,0) 0 0 7 [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Initialization: Table [,) [,4) 3 4 [4,0) 0 0 7 Search an object? [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Search [,) [,4) 3 4 [4,0) 0 7 0 [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Search [,) [,4) 3 4 [4,0) 0 7 0 [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Search [,) [,4) 3 4 [4,0) 0 7 0 [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Search [,) [,4) 3 4 [4,0) 0 7 0 [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Search [,) [,4) 3 4 [4,0) 0 7 0 [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Search [,) [,4) 3 4 [4,0) 0 7 0 [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Search [,) [,4) 3 4 [4,0) 0 7 0 [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Search [,) [,4) 3 4 [4,0) 0 0 7 I have! [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Search [,) [,4) 3 4 [4,0) 0 0 7 I have! [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

If new node joins?

Node Joins [,) [,4) 3 4 [4,0) 0 7 0 [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Node Joins [,) [,4) 3 4 [4,0) 0 7 0 [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Object Location Changed [,) [,4) 3 4 [4,0) 0 0 7 [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Object Location Changed [,) [,4) 3 4 [4,0) 0 0 7 [,3) 3 3 [3,5) 3 Who will be affected? 5 [5,) 0 5 4 3 4 [4,5) 0 5 [5,7) 0 7 [7,3) 0

Table Changed [,) [,4) 3 4 [4,0) 0 0 7 [,3) 3 3 [3,5) 3 5 [5,) 0 5 4 3 4 [4,5) 0-> 5 [5,7) 0-> 7 [7,3) 0

Table Changed [,) [,4) 3 4 [4,0) 0 0 7 [,3) 3 3 [3,5) 3 5 [5,) 0 -> 5 4 3 4 [4,5) 5 [5,7) 7 [7,3) 0

Table Changed [,) [,4) 3 4 [4,0) 0 -> 0 7 [,3) 3 3 [3,5) 3 5 [5,) 5 4 3 4 [4,5) 5 [5,7) 7 [7,3) 0

New Table [,) [,4) 3 4 [4,0) 7 0 [,3) 3 3 [3,5) 3 5 [5,) 7 [7,0) 0 0 [0,) 0 [,) 3 5 4 3 4 [4,5) 5 [5,7) 7 [7,3) 0

If node leaves?

Node Leaves [,) [,4) 3 4 [4,0) 0 7 [,3) 3 3 [3,5) 3 5 [5,) 7 [7,0) 0 0 [0,) 0 [,) 3 5 4 3 4 [4,5) 5 [5,7) 7 [7,3) 0

7 [7,0) 0 0 [0,) 0 [,) 3 [,) [,4) 3 4 [4,0) 0 7 Node Leaves Who will be affected? 5 3 4 [,3) 3 3 [3,5) 3 5 [5,) 4 [4,5) 5 [5,7) 7 [7,3) 0

Node Leaves [,) [,4) 3 4 [4,0) 0 7 [,3) 3 3 [3,5) 3 5 [5,) 7 [7,0) 0 0 [0,) 0 [,) 3 5 4 3 4 [4,5) 5 [5,7) 7 [7,3) 0

Node Leaves [,) 3 [,4) 3 4 [4,0) 0 7 7 [7,0) 0 0 [0,) 0 [,) 3 5 4 3 4 [4,5) 5 [5,7) 7 [7,3) 0

Practical Issues Concurrent operations and failures Failure recovery

Concurrent Operations & Errors Basic stabilization protocol is used to keep nodes successor pointers up to date, which is sufficient to ensure the correctness of lookups. Every node runs stabilize periodically to find newly joined/left nodes.

Concurrent Operations & Errors Basic stabilization protocol is used to keep nodes successor pointers up to date, which is sufficient to ensure the correctness of lookups. Every node runs stabilize periodically to find newly joined/left nodes.

Failure Recovery We should maintain correct successor pointers To do this, each node maintains a successor-list of its r nearest successors on the ring If node n notices that its successor has failed, it replaces it with the first live entry in the list Stabilize will correct finger table and successor-list entries pointing to failed node

Failure Recovery We should maintain correct successor pointers To do this, each node maintains a successor-list of its r nearest successors on the ring If node n notices that its successor has failed, it replaces it with the first live entry in the list Stabilize will correct finger table and successor-list entries pointing to failed node

Failure Recovery We should maintain correct successor pointers To do this, each node maintains a successor-list of its r nearest successors on the ring If node n notices that its successor has failed, it replaces it with the first live entry in the list Stabilize will correct finger table and successor-list entries pointing to failed node

Failure Recovery We should maintain correct successor pointers To do this, each node maintains a successor-list of its r nearest successors on the ring If node n notices that its successor has failed, it replaces it with the first live entry in the list Stabilize will correct finger table and successor-list entries pointing to failed node

Lecture Roadmap Background Chord Design Evaluating Chord Comparison

Distributed Hash Table All the structured PP models implement DHT abstraction.

Provable Guarantees Efficient: O(log N) messages per lookup Scalable: O(log N) state per node Robust: survives massive failures Update only affects O(log N) nodes

Final Notes Chord only offers Lookup(key) -> IP address Chord typically does not store the data Object and Node IDs are from SHA- Applications?

Other Structured PP Models

CAN [SIGCOMM 0]

Pastry [Middleware 0]

SkipNet

PP Search Models PP search model: - Napster and BitTorrent - Unstructured PP network (Gnutella, KaZaA, etc.) - Structured PP network (Chord, CAN, Pastry, etc.) - Hybrid (Yyepas, Gnutella+Pastry, etc.) - More (Hybrid PP, BitTorrent, etc.)

Lecture Roadmap Background Chord Design Evaluating Chord Comparison

Structured PP vs Unstructured PP Searching Routing performance Peers join/leave overhead Maintenance Scalability Lookups need O(logN) messages The complexity of finger table needs O(logN) entries.

Next Lecture In the lec-5, I will cover: - Pollution problems in PP content sharing systems - Reputation system is the most representative solution, including peer-based and object-based reputation systems - Case study: Credence