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

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.
The BitTorrent Protocol. What is BitTorrent?  Efficient content distribution system using file swarming. Does not perform all the functions of a typical.
Incentives Build Robustness in BitTorrent- Bram Cohen Presented by Venkatesh Samprati.
Incentives Build Robustness in BitTorrent Bram Cohen.
Bit Torrent (Nick Feamster) February 25, BitTorrent Steps for publishing – Peer creates.torrent file and uploads to a web server: contains metadata.
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.
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
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 Ion StoicaRobert Morris David Liben-NowellDavid R. Karger M. Frans KaashoekFrank.
CompSci 356: Computer Network Architectures Lecture 21: Content Distribution Chapter 9.4 Xiaowei Yang
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.
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.
A P2P file distribution system ——BitTorrent Fan Bin Sep,25,2004.
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
Lecture 10 Naming services for flat namespaces. EECE 411: Design of Distributed Software Applications Logistics / reminders Project Send Samer and me.
CSE 461 University of Washington1 Topic Peer-to-peer content delivery – Runs without dedicated infrastructure – BitTorrent as an example Peer.
INTRODUCTION TO PEER TO PEER NETWORKS Z.M. Joseph CSE 6392 – DB Exploration Spring 2006 CSE, UT Arlington.
Content Overlays (Nick Feamster) February 25, 2008.
Bit Torrent (Nick Feamster) February 25, BitTorrent Steps for publishing – Peer creates.torrent file and uploads to a web server: contains metadata.
Application Layer – Peer-to-peer UIUC CS438: Communication Networks Summer 2014 Fred Douglas Slides: Fred, Kurose&Ross (sometimes edited)
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.
BitTorrent Dr. Yingwu Zhu. Bittorrent A popular P2P application for file exchange!
A P2P file distribution system ——BitTorrent Pegasus Team CMPE 208.
2: Application Layer1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail  SMTP,
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.
1 Distributed Hash Tables (DHTs) Lars Jørgen Lillehovde Jo Grimstad Bang Distributed Hash Tables (DHTs)
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.
Paper Survey of DHT Distributed Hash Table. Usages Directory service  Very little amount of information, such as URI, metadata, … Storage  Data, such.
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,
Algorithms and Techniques in Structured Scalable Peer-to-Peer Networks
PEAR TO PEAR PROTOCOL. Pure P2P architecture no always-on server arbitrary end systems directly communicate peers are intermittently connected and change.
CS694 - DHT1 Distributed Hash Table Systems Hui Zhang University of Southern California.
Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications * CS587x Lecture Department of Computer Science Iowa State University *I. Stoica,
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
An example of peer-to-peer application
A Scalable Peer-to-peer Lookup Service for Internet Applications
(slides by Nick Feamster)
DHT Routing Geometries and Chord
Chord Advanced issues.
The BitTorrent Protocol
Consistent Hashing and Distributed Hash Table
A Scalable Peer-to-peer Lookup Service for Internet Applications
Presentation transcript:

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

2 Administrivia Quiz date Remaining lectures Interim report PS 3 –Out Friday, 1-2 problems

3 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

4 Structured [Content] Overlays

5 Chord: Overview What is Chord? –A scalable, distributed “lookup service” –Lookup service: A service that maps keys to values (e.g., DNS, directory services, etc.) –Key technology: Consistent hashing Major benefits of Chord over other lookup services –Simplicity –Provable correctness –Provable “performance”

6 Scalable location of data in a large distributed system Key Problem: Lookup Publisher Key=“LetItBe” Value=MP3 data Lookup(“LetItBe”) N1N1 N2N2 N3N3 N5N5 N4N4 Client Chord: Primary Motivation

7 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. Flexible naming: Chord places no constraints on the structure of the keys it looks up.

8 Consistent Hashing Uniform Hash: assigns values to “buckets” –e.g., H(key) = f(key) mod k, where k is number of nodes –Achieves load balance if keys are randomly distributed Problems with uniform hashing –How to perform consistent hashing in a distributed fashion? –What happens when nodes join and leave? Consistent hashing addresses these problems

9 Consistent Hashing Main idea: map both keys and nodes (node IPs) to the same (metric) ID space Ring is one option. Any metric space will do Initially proposed for relieving Web cache hotspots [Karger97, STOC]

10 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

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

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

13 Consistent Hashing Properties Load balance: all nodes receive roughly the same number of keys Flexibility: when a node joins (or leaves) the network, only an fraction of the keys are moved to a different location. –This solution is optimal (i.e., the minimum necessary to maintain a balanced load)

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

15 Load Balance Results (Theory) For N nodes and K keys, with high probability –each node holds at most (1+  )K/N keys –when node N+1 joins or leaves, O(N/K) keys change hands, and only to/from node N+1

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

17 N N112 N96 N Reducing Lookups: Finger Tables Every node knows m other nodes in the ring Increase distance exponentially

18 N120 N N112 N96 N Reducing Lookups: Finger Tables Finger i points to successor of n+2 i

19 Finger Table Lookups Each node knows its immediate successor. Find the predecessor of id and ask for its successor. Move forward around the ring looking for node whose successor’s ID is > id

20 N32 N10 N5 N20 N110 N99 N80 N60 Lookup(K19) K19 Faster Lookups Lookups are O(log N) hops

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

22 Possible Applications Distributed indexes Cooperative storage Distributed, flat lookup services …

23 Joining the Chord Ring Nodes can join and leave at any time –Challenge: Maintining correct information about every key Three step process – Initialize all fingers of new node – Update fingers of existing nodes – Transfer keys from successor to new node Two invariants –Each node’s successor is maintained –successor(k) is responsible for k –(finger tables must also be correct for fast lookups)

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

25 N36 N60 N40 N5 N20 N99 N80 Join: Update Fingers of Existing Nodes New node calls update function on existing nodes –N becomes ith finger of p if (1) p precedes n by at least 2^i-1 (2) ith finger of p succeeds n Existing nodes recursively update fingers of predecessors

26 Copy keys from N40 to N36 K30 K38 N36 N60 N40 N5 N20 N99 N80 K30 K38 Join: Transfer Keys Only keys in the range are transferred

27 N120 N113 N102 N80 N85 N10 Lookup(90) Handling Failures Problem: Failures could cause incorrect lookup Solution: Fallback: keep track of successor fingers

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

29 Chord: Questions Comparison to other DHTs Security concerns Workload imbalance Locality Search

Unstructured Overlays

31 BitTorrent Steps for publishing –Peer creates torrent: contains metadata about tracker and about the pieces of the file (checksum of each piece of the time). –Peers that create the initial copy of the file are called seeders Steps for downloading –Peer contacts tracker –Peer downloads from seeder, eventually from other peers Uses basic ideas from game theory to largely eliminate the free-rider problem –Previous systems could not deal with this problem

32 Basic Idea Chop file into many pieces Replicate different pieces on different peers as soon as possible As soon as a peer has a complete piece, it can trade it with other peers Hopefully, assemble the entire file at the end

33 Basic Components Seed –Peer that has the entire file –Typically fragmented into 256KB pieces Leecher –Peer that has an incomplete copy of the file Torrent file –Passive component –The torrent file lists SHA1 hashes of all the pieces to allow peers to verify integrity –Typically hosted on a web server Tracker –Allows peers to find each other –Returns a random list of peers

34 Pieces and Sub-Pieces A piece is broken into sub-pieces... Typically from 64kB to 1MB Policy: Until a piece is assembled, only download sub-pieces for that piece This policy lets complete pieces assemble quickly

35 Classic Prisoner’s Dilemma Nash Equilibrium (and the dominant strategy for both players) Pareto Efficient Outcome

36 Repeated Games Repeated game: play single-shot game repeatedly Subgame Perfect Equilibrium: Analog to NE for repeated games –The strategy is an NE for every subgame of the repeated game Problem: a repeated game has many SPEs Single Period Deviation Principle (SPDP) can be used to test SPEs

37 Repeated Prisoner’s Dilemma Example SPE: Tit-for-Tat (TFT) strategy –Each player mimics the strategy of the other player in the last round Question: Use the SPDP to argue that TFT is an SPE.

38 Tit-for-Tat in BitTorrent: Choking Choking is a temporary refusal to upload; downloading occurs as normal –If a node is unable to download from a peer, it does not upload to it –Ensures that nodes cooperate and eliminates the free-rider problem –Cooperation involves uploaded sub-pieces that you have to your peer Connection is kept open

39 Choking Algorithm Goal is to have several bidirectional connections running continuously Upload to peers who have uploaded to you recently Unutilized connections are uploaded to on a trial basis to see if better transfer rates could be found using them

40 Choking Specifics A peer always unchokes a fixed number of its peers (default of 4) Decision to choke/unchoke done based on current download rates, which is evaluated on a rolling 20- second average Evaluation on who to choke/unchoke is performed every 10 seconds –This prevents wastage of resources by rapidly choking/unchoking peers –Supposedly enough for TCP to ramp up transfers to their full capacity Which peer is the optimistic unchoke is rotated every 30 seconds

41 Rarest Piece First Policy: Determine the pieces that are most rare among your peers and download those first This ensures that the most common pieces are left till the end to download Rarest first also ensures that a large variety of pieces are downloaded from the seed (Question: Why is this important?)

42 Piece Selection The order in which pieces are selected by different peers is critical for good performance If a bad algorithm is used, we could end up in a situation where every peer has all the pieces that are currently available and none of the missing ones If the original seed is taken down, the file cannot be completely downloaded!

43 Random First Piece Initially, a peer has nothing to trade Important to get a complete piece ASAP Rare pieces are typically available at fewer peers, so downloading a rare piece initially is not a good idea Policy: Select a random piece of the file and download it

44 Endgame Mode When all the sub-pieces that a peer doesn’t have are actively being requested, these are requested from every peer Redundant requests cancelled when piece arrives Ensures that a single peer with a slow transfer rate doesn’t prevent the download from completing

45 Questions Peers going offline when download completes Integrity of downloads

Distributing Content: Coding

47 Digital Fountains Analogy: water fountain –Doesn’t matter which bits of water you get –Hold the glass out until it is full Ideal: Infinite stream Practice: Approximate, using erasure codes –Reed-solomon –Tornado codes (faster, slightly less efficient)

48 Applications Reliable multicast Parallel downloads Long-distance transmission (avoiding TCP) One-to-many TCP Content distribution on overlay networks Streaming video

49 Point-to-Point Data Transmission TCP has problems over long-distance connections. –Packets must be acknowledged to increase sending window (packets in flight). –Long round-trip time leads to slow acks, bounding transmission window. –Any loss increases the problem. Using digital fountain + TCP-friendly congestion control can greatly speed up connections. Separates the “what you send” from “how much” you send. –Do not need to buffer for retransmission.

50 Other Applications Other possible applications outside of networking –Storage systems –Digital fountain codes for errors –??