CMPT 401 Summer 2007 Dr. Alexandra Fedorova Lecture XIV: P2P.

Slides:



Advertisements
Similar presentations
Peer-to-Peer Infrastructure and Applications Andrew Herbert Microsoft Research, Cambridge
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.
Pastry Peter Druschel, Rice University Antony Rowstron, Microsoft Research UK Some slides are borrowed from the original presentation by the authors.
Peter Druschel, Rice University Antony Rowstron, Microsoft Research UK
Scalable Content-Addressable Network Lintao Liu
Peer-to-Peer Systems Chapter 25. What is Peer-to-Peer (P2P)? Napster? Gnutella? Most people think of P2P as music sharing.
Peer-to-Peer Structured Overlay Networks
Pastry Peter Druschel, Rice University Antony Rowstron, Microsoft Research UK Some slides are borrowed from the original presentation by the authors.
1 PASTRY Partially borrowed from Gabi Kliot ’ s presentation.
Pastry Scalable, decentralized object location and routing for large-scale peer-to-peer systems Peter Druschel, Rice University Antony Rowstron, Microsoft.
1 Accessing nearby copies of replicated objects Greg Plaxton, Rajmohan Rajaraman, Andrea Richa SPAA 1997.
Scribe: A Large-Scale and Decentralized Application-Level Multicast Infrastructure Miguel Castro, Peter Druschel, Anne-Marie Kermarrec, and Antony L. T.
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.
Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems Antony Rowstron and Peter Druschel Proc. of the 18th IFIP/ACM.
Storage Management and Caching in PAST, a large-scale, persistent peer- to-peer storage utility Authors: Antony Rowstorn (Microsoft Research) Peter Druschel.
Pastry Partially borrowed for Gabi Kliot. Pastry Scalable, decentralized object location and routing for large-scale peer-to-peer systems  Antony Rowstron.
Spring 2003CS 4611 Peer-to-Peer Networks Outline Survey Self-organizing overlay network File system on top of P2P network Contributions from Peter Druschel.
Distributed Lookup Systems
Peer-To-Peer Systems Chapter 10 B. Ramamurthy. 6/25/2015B.RamamurthyPage 2 Introduction Monolithic application Simple client-server Multi-tier client-server.
Topics in Reliable Distributed Systems Fall Dr. Idit Keidar.
Wide-area cooperative storage with CFS
1 Peer-to-Peer Networks Outline Survey Self-organizing overlay network File system on top of P2P network Contributions from Peter Druschel.
Peer-to-Peer Networks Slides largely adopted from Ion Stoica’s lecture at UCB.
 Structured peer to peer overlay networks are resilient – but not secure.  Even a small fraction of malicious nodes may result in failure of correct.
1CS 6401 Peer-to-Peer Networks Outline Overview Gnutella Structured Overlays BitTorrent.
Storage management and caching in PAST PRESENTED BY BASKAR RETHINASABAPATHI 1.
Introduction to Peer-to-Peer Networks. What is a P2P network Uses the vast resource of the machines at the edge of the Internet to build a network that.
INTRODUCTION TO PEER TO PEER NETWORKS Z.M. Joseph CSE 6392 – DB Exploration Spring 2006 CSE, UT Arlington.
1 Napster & Gnutella An Overview. 2 About Napster Distributed application allowing users to search and exchange MP3 files. Written by Shawn Fanning in.
Introduction Widespread unstructured P2P network
Tapestry GTK Devaroy (07CS1012) Kintali Bala Kishan (07CS1024) G Rahul (07CS3009)
1 PASTRY. 2 Pastry paper “ Pastry: Scalable, decentralized object location and routing for large- scale peer-to-peer systems ” by Antony Rowstron (Microsoft.
Distributed Systems Concepts and Design Chapter 10: Peer-to-Peer Systems Bruce Hammer, Steve Wallis, Raymond Ho.
Introduction to Peer-to-Peer Networks. What is a P2P network A P2P network is a large distributed system. It uses the vast resource of PCs distributed.
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.
Bruce Hammer, Steve Wallis, Raymond Ho
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)
Security Michael Foukarakis – 13/12/2004 A Survey of Peer-to-Peer Security Issues Dan S. Wallach Rice University,
A Scalable Content-Addressable Network (CAN) Seminar “Peer-to-peer Information Systems” Speaker Vladimir Eske Advisor Dr. Ralf Schenkel November 2003.
An IP Address Based Caching Scheme for Peer-to-Peer Networks Ronaldo Alves Ferreira Joint work with Ananth Grama and Suresh Jagannathan Department of Computer.
SIGCOMM 2001 Lecture slides by Dr. Yingwu Zhu Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications.
1 Peer-to-Peer Technologies Seminar by: Kunal Goswami (05IT6006) School of Information Technology Guided by: Prof. C.R.Mandal, School of Information Technology.
Secure Routing for Structured Peer-to-Peer Overlay Networks M. Castro, P. Druschel, A. Ganesh, A. Rowstron and D. S. Wallach Proc. Of the 5 th Usenix Symposium.
Peer to Peer A Survey and comparison of peer-to-peer overlay network schemes And so on… Chulhyun Park
Peer-to-peer systems Chapter Outline Introduction Napster and its legacy Peer-to-peer middleware Routing overlay Pastry 2.
Peer-to-peer systems Chapter Outline Introduction Napster and its legacy Peer-to-peer middleware Routing overlay Pastry 2.
Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems Antony Rowstron and Peter Druschel, Middleware 2001.
Pastry Antony Rowstron and Peter Druschel Presented By David Deschenes.
Plethora: Infrastructure and System Design. Introduction Peer-to-Peer (P2P) networks: –Self-organizing distributed systems –Nodes receive and provide.
Slides for Chapter 10: Peer-to-Peer Systems
Peer to Peer Network Design Discovery and Routing algorithms
Algorithms and Techniques in Structured Scalable Peer-to-Peer Networks
LOOKING UP DATA IN P2P SYSTEMS Hari Balakrishnan M. Frans Kaashoek David Karger Robert Morris Ion Stoica MIT LCS.
Bruce Hammer, Steve Wallis, Raymond Ho
INTERNET TECHNOLOGIES Week 10 Peer to Peer Paradigm 1.
CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems.
P2P Search COP P2P Search Techniques Centralized P2P systems  e.g. Napster, Decentralized & unstructured P2P systems  e.g. Gnutella.
Large Scale Sharing Marco F. Duarte COMP 520: Distributed Systems September 19, 2004.
1 Tuesday, February 03, 2009 “Work expands to fill the time available for its completion.” - Parkinson’s 1st Law.
Peer-to-peer systems ”Sharing is caring”. Why P2P? Client-server systems limited by management and bandwidth P2P uses network resources at the edges.
Plethora: A Locality Enhancing Peer-to-Peer Network Ronaldo Alves Ferreira Advisor: Ananth Grama Co-advisor: Suresh Jagannathan Department of Computer.
Fabián E. Bustamante, Fall 2005 A brief introduction to Pastry Based on: A. Rowstron and P. Druschel, Pastry: Scalable, decentralized object location and.
Distributed Web Systems Peer-to-Peer Systems Lecturer Department University.
Pastry Scalable, decentralized object locations and routing for large p2p systems.
Accessing nearby copies of replicated objects
PASTRY.
EE 122: Peer-to-Peer (P2P) Networks
Applications (2) Outline Overlay Networks Peer-to-Peer Networks.
Presentation transcript:

CMPT 401 Summer 2007 Dr. Alexandra Fedorova Lecture XIV: P2P

2 CMPT 401 Summer 2007 © A. Fedorova Outline Definition of peer-to-peer systems Motivation and challenges of peer-to-peer systems Early P2P systems (Napster, Gnutella) Structured overlays (Pastry) P2P applications: Squirrel, OceanStore

3 CMPT 401 Summer 2007 © A. Fedorova Definition of P2P Peer to Peer Client Server P2P systems motivated by massive computing resources connected over the network available all over the world

4 CMPT 401 Summer 2007 © A. Fedorova Simple Definition –A network architecture –Without centralized coordination Complex Definition –Each node/peer is client and server at the same time –Each peer provides content and/or resources –Direct exchange between peers –Autonomy of peers (can join and leave at their will) Definition of Peer-2-Peer

5 CMPT 401 Summer 2007 © A. Fedorova Why P2P? Enable the sharing of data and resources. Computer and Internet usage has exploded in the recent years Massive computing resource available at the edges of the Internet – storage, cycles, content, human presence.

6 CMPT 401 Summer 2007 © A. Fedorova WORLD INTERNET USAGE AND POPULATION STATISTICS World Regions Population ( 2007 Est.) Population % of World Internet Usage, Latest Data % Population ( Penetration ) Usage % of World Usage Growth Africa 933,448, %33,545, %2.9 %643.1 % Asia 3,712,527, %418,007, %36.2 %265.7 % Europe 809,624, %321,853, %27.9%206.2 % Middle East 193,452, %19,539, %1.7 %494.8 % North America 334,538, %232,655, %20.2%115.2 % Latin America/Caribbean 556,606, %109,961, %9.5 %508.6 % Oceania / Australia 34,468, %18,796, %1.6 %146.7 % WORLD TOTAL 6,574,666, %1,154,358, %100.0 %219.8 %

7 CMPT 401 Summer 2007 © A. Fedorova Benefits and Challenges Benefits –Massive resources –Load balancing –Anonymity –Fault tolerance –Locality Challenges –Security –Failure handling (nodes coming and leaving) –Efficiency – massive system: how to search it efficiently –Support data mutation

8 CMPT 401 Summer 2007 © A. Fedorova Evolution of P2P Systems Three generations: Generation 1: Early music exchange services (Napster, Gnutella) Generation 2: Offers greater scalability, anonymity and fault tolerance (Kazaa) Generation 3: Emergence of middleware layers for the application-independent management (Pastry, Tapestry)

9 CMPT 401 Summer 2007 © A. Fedorova Architecture Peer to Peer Hybrid (Napster, Pure Unstructured (Gnutella) Structured (Pastry) Super-peer (Kazaa)

10 CMPT 401 Summer 2007 © A. Fedorova Overlay Routing versus IP Routing Routing overlays: route from one node in the P2P system to another At each hop deliver to the next P2P node Another layer or routing on top of existing IP routing

11 CMPT 401 Summer 2007 © A. Fedorova Search in Hybrid P2P: Napster Lookup Server, Index table Peer A Peer B (song A) Peer C Peer D 2.Return IP(B) 3. Download from B 0. Upload Song Names 0. Upload Song Names 0. Upload Song Names 1.Query song A Lookup centralized Peers provide meta-information to Lookup server Data exchange between peers

12 CMPT 401 Summer 2007 © A. Fedorova Search in Unstructured P2P Peer A Peer B Peer C Peer I (song A) Peer F 1. Query song A 2. query Peer H Peer EPeer D Peer G 3. [File found] Download TTL= NTTL= N-1

13 CMPT 401 Summer 2007 © A. Fedorova Common Issues Organize, maintain overlay network –node arrivals –node failures Resource allocation/load balancing Resource location Network proximity routing Idea: provide a generic P2P substrate (Pastry, Chord, Tapestry)

14 CMPT 401 Summer 2007 © A. Fedorova Architecture TCP/IP Pastry Network storage Event notification Internet P2P substrate (self-organizing overlay network) P2P application layer ?

15 CMPT 401 Summer 2007 © A. Fedorova Pastry Generic p2p location and routing substrate Self-organizing overlay network Lookup/insert object in < log 16 N routing steps (expected) O(log N) per-node state

16 CMPT 401 Summer 2007 © A. Fedorova Pastry: Object distribution objId Globally Unique IDs (GUIDs) 128 bit circular GUID space nodeIds (uniform random) objIds (uniform random) Invariant: node with numerically closest nodeId maintains object nodeIds O

17 CMPT 401 Summer 2007 © A. Fedorova Pastry: Object insertion/lookup X Route(X) Msg with key X is routed to live node with nodeId closest to X Problem: complete routing table not feasible O

18 CMPT 401 Summer 2007 © A. Fedorova Pastry Routing Leaf sets – closest nodes Routing table – subset of nodes that are far away If you are far from the target node/object, route using routing table Once you get closer use the leaf set Routing table has to be well populated, so you can reach many far-away destinations A complete routing table can be very large How to make routing table size feasible?

19 CMPT 401 Summer 2007 © A. Fedorova Pastry: Routing Properties log 16 N steps O(log N) state d46a1c Route(d46a1c) d462ba d4213f d13da3 65a1fc d467c4 d471f1

20 CMPT 401 Summer 2007 © A. Fedorova Pastry: Routing table (# 65a1fc) log 16 N rows Row 0 Row 1 Row 2 Row 3 0x0x 1x1x 2x2x 3x3x 4x4x 5x5x 7x7x 8x8x 9x9x axax bxbx cxcx dxdx exex fxfx 60x60x 61x61x 62x62x 63x63x 64x64x 66x66x 67x67x 68x68x 69x69x 6ax6ax 6bx6bx 6cx6cx 6dx6dx 6ex6ex 6fx6fx 650x650x 651x651x 652x652x 653x653x 654x654x 655x655x 656x656x 657x657x 658x658x 659x659x 65bx65bx 65cx65cx 65dx65dx 65ex65ex 65fx65fx 65a0x65a0x 65a2x65a2x 65a3x65a3x 65a4x65a4x 65a5x65a5x 65a6x65a6x 65a7x65a7x 65a8x65a8x 65a9x65a9x 65aax65aax 65abx65abx 65acx65acx 65adx65adx 65aex65aex 65afx65afx

21 CMPT 401 Summer 2007 © A. Fedorova Pastry Routing Table Each row i corresponds to the length of the common prefix –row 0 – 0 hex digits in common –row 1 – 1 common hex digit in common Each column corresponds to (i+1)st digit that’s not in common –column 0 – first uncommon digit is 0 –column A – first uncommon digit is A Corresponding entries are [GUID, IP] pairs You go as far down the rows in routing table as possible When you can’t go anymore (no more matching digits), forward request to [GUID, IP] in the column containing the first uncommon digit

22 CMPT 401 Summer 2007 © A. Fedorova Pastry Routing: What’s the Next Hop? log 16 N rows Row 0 Row 1 Row 2 Row 3 0x0x 1x1x 2x2x 3x3x 4x4x 5x5x 7x7x 8x8x 9x9x axax bxbx cxcx dxdx exex fxfx 60x60x 61x61x 62x62x 63x63x 64x64x 66x66x 67x67x 68x68x 69x69x 6ax6ax 6bx6bx 6cx6cx 6dx6dx 6ex6ex 6fx6fx 650x650x 651x651x 652x652x 653x653x 654x654x 655x655x 656x656x 657x657x 658x658x 659x659x 65bx65bx 65cx65cx 65dx65dx 65ex65ex 65fx65fx 65a0x65a0x 65a2x65a2x 65a3x65a3x 65a4x65a4x 65a5x65a5x 65a6x65a6x 65a7x65a7x 65a8x65a8x 65a9x65a9x 65aax65aax 65abx65abx 65acx65acx 65adx65adx 65aex65aex 65afx65afx

23 CMPT 401 Summer 2007 © A. Fedorova Pastry: Routing Algorithm if (destination D is within range of our leaf set) forward to numerically closest member else let l = length of shared prefix let d = value of l+1-th digit in D’s address let R l d =table entry at row=l, column=d if (R l d exists) forward to IP address at R l d else forward to a known node that (a) shares at least as long a prefix (b) is numerically closer than this node

24 CMPT 401 Summer 2007 © A. Fedorova Let’s Play Pastry! User at node 65a1fc Wants to get to object with GUID d46a1c We will see how each next hop is found using a routing table or leaf set So, let’s start with routing table and leaf set at node 65a1fc

25 CMPT 401 Summer 2007 © A. Fedorova Node: 65a1fc Destination: d46a1c Leaf set: 65a123 65abba 65badd 65cafe GUID = d13da3 0x0x 1x1x 2x2x 3x3x 4x4x 5x5x 7x7x 8x8x 9x9x axax bxbx cxcx dxdx exex fxfx 60x60x 61x61x 62x62x 63x63x 64x64x 66x66x 67x67x 68x68x 69x69x 6ax6ax 6bx6bx 6cx6cx 6dx6dx 6ex6ex 6fx6fx 650x650x 651x651x 652x652x 653x653x 654x654x 655x655x 656x656x 657x657x 658x658x 659x659x 65bx65bx 65cx65cx 65dx65dx 65ex65ex 65fx65fx 65a0x65a0x 65a2x65a2x 65a3x65a3x 65a4x65a4x 65a5x65a5x 65a6x65a6x 65a7x65a7x 65a8x65a8x 65a9x65a9x 65aax65aax 65abx65abx 65acx65acx 65adx65adx 65aex65aex 65afx65afx

26 CMPT 401 Summer 2007 © A. Fedorova Node: d13da3 Destination: d46a1c Leaf set: d13555 d14abc da1367 dbcdd5 GUID = d4213f 0x0x 1x1x 2x2x 3x3x 4x4x 5x5x 6x6x 7x7x 8x8x 9x9x axax bxbx cxcx dexex fxfx d0xd0x d2xd2x d3xd3x d4xd4x d5xd5x d6xd6x d7xd7x d8xd8x d9xd9x daxdax dbxdbx dcxdcx ddxddx dexdex dfxdfx d10xd10x d11xd11x d12xd12x d14xd14x d15xd15x d16xd16x d17xd17x d18xd18x d19xd19x d1axd1ax d1bxd1bx d1cxd1cx d1dxd1dx d1exd1ex d1fxd1fx d130xd130x d131xd131x d132xd132x d133xd133x d134xd134x d135xd135x d136xd136x d137xd137x d138xd138x d139xd139x d13axd13ax d13bxd13bx d13cxd13cx d13exd13ex d13fxd13fx

27 CMPT 401 Summer 2007 © A. Fedorova Node: d4213f Destination: d46a1c Leaf set: d42cab d42fab dacabb ddaddd GUID = d462ba 0x0x 1x1x 2x2x 3x3x 4x4x 5x5x 6x6x 7x7x 8x8x 9x9x axax bxbx cxcx dexex fxfx d0xd0x d1xd1x d2xd2x d3xd3x d5xd5x d6xd6x d7xd7x d8xd8x d9xd9x daxdax dbxdbx dcxdcx ddxddx dexdex dfxdfx d40xd40x d41xd41x d43xd43x d44xd44x d45xd45x d46xd46x d47xd47x d48xd48x d49xd49x d4axd4ax d4bxd4bx d4cxd4cx d4dxd4dx d4exd4ex d4fxd4fx d420xd420x d422xd422x d423xd423x d424xd424x d425xd425x d426xd426x d427xd427x d428xd428x d429xd429x d42axd42ax d42bxd42bx d42cxd42cx d42dxd42dx d42exd42ex d42fxd42fx

28 CMPT 401 Summer 2007 © A. Fedorova 0x0x 1x1x 2x2x 3x3x 4x4x 5x5x 6x6x 7x7x 8x8x 9x9x axax bxbx cxcx dexex fxfx d0xd0x d1xd1x d2xd2x d3xd3x d5xd5x d6xd6x d7xd7x d8xd8x d9xd9x daxdax dbxdbx dcxdcx ddxddx dexdex dfxdfx d40xd40x d41xd41x d42xd42x d43xd43x d44xd44x d45xd45x d47xd47x d48xd48x d49xd49x d4axd4ax d4bxd4bx d4cxd4cx d4dxd4dx d4exd4ex d4fxd4fx d460xd460x d461xd461x d463xd463x d464xd464x d465xd465x d466xd466x d467xd467x d468xd468x d469xd469x d46ad46a d46bxd46bx d46cxd46cx d46dxd46dx d46exd46ex d46fxd46fx Node: d462ba Destination: d46a1c Leaf set: d46cab d46fab dacada deaddd GUID = empty? Forward to any GUID with longest common prefix that’s numerically closer than current node GUID = d469ab

29 CMPT 401 Summer 2007 © A. Fedorova Node: d469ab Destination: d46a1c Leaf set: d469ac d46a00 d46a1c dcadda 0x0x 1x1x 2x2x 3x3x 4x4x 5x5x 6x6x 7x7x 8x8x 9x9x axax bxbx cxcx dexex fxfx d0xd0x d1xd1x d2xd2x d3xd3x d5xd5x d6xd6x d7xd7x d8xd8x d9xd9x daxdax dbxdbx dcxdcx ddxddx dexdex dfxdfx d40xd40x d41xd41x d42xd42x d43xd43x d44xd44x d45xd45x d47xd47x d48xd48x d49xd49x d4axd4ax d4bxd4bx d4cxd4cx d4dxd4dx d4exd4ex d4fxd4fx d460xd460x d461xd461x d462xd462x d463xd463x d464xd464x d465xd465x d466xd466x d467xd467x d468xd468x d46axd46ax d46bxd46bx d46cxd46cx d46dxd46dx d46exd46ex d46fxd46fx We are done!

30 CMPT 401 Summer 2007 © A. Fedorova A New Node Joining Pastry Compute its own GUID X – apply SHA-1 hash function to its public key Get IP address of at least one Pastry node (publicly available) Find a nearby Pastry node A (by repeatedly querying nodes in a leaf set of a known Pastry node) Send a join message to A, with destination X A will route message to node Z numerically closest to X Nodes along the route are: B, C, … Each node on the route send to X a part of its routing table and leaf set X constructs its own routing table and leaf set, requests additional info if needed

31 CMPT 401 Summer 2007 © A. Fedorova Node Failure or Departure Repairs to leaf set –Members of leaf set are monitored with heartbeat messages –If a member has failed, The node searches for another node numerically closest the failed member –The node asks that other node for its leaf set adds members from that leaf set to its own leaf set –The node also informs its other neighbours of the failure Repairs to routing table –Done on “when discovered basis”

32 CMPT 401 Summer 2007 © A. Fedorova Pastry Evaluation: Experimental Setup Evaluated on a simulator A single machine simulates a large network of nodes Message passing replaced by simulated transmission delay Model join/leave behaviour of hosts IP delays and join/leave behaviour parameters and based on real measurements Simulator validated using a real installation of 52 nodes

33 CMPT 401 Summer 2007 © A. Fedorova Pastry Evaluation: Dependability With IP message loss rate of 0% –Pastry failed to deliver 1.5 in 100,000 requests (due to unavailability of destination host) –All requests that were delivered arrived at the correct node With IP message loss rate of 5% –Pastry lost 3.3 in 100,000 requests –1.6 in 100,000 requests were delivered to the wrong node

34 CMPT 401 Summer 2007 © A. Fedorova Pastry Evaluation: Performance Performance metric: relative delay penalty (RDP) RDP: ratio between delay in delivering request by the routing overlay and in delivering that request via UDP/IP A direct measure of the extra cost incurred in employing an overlay routing RDP in Pastry: –1.8 with zero network message loss –2.2 with 5% network message loss

35 CMPT 401 Summer 2007 © A. Fedorova Squirrel Web cache. Idea: P2P caching of web objects Cache web objects on nodes in a local network organized in a P2P network over Pastry Motivation: no need for a centralized proxy cache Each Squirrel node has a Pastry GUID Each URL has a Pastry GUID (computed by applying SHA-1 hash to the URL) Squirrel node whose GUID is numerically closest to the URL GUID becomes the home node for that URL, i.e., caches that URL Simulation-based evaluation concluded that performance is comparable to that of the centralized cache Squirrel was subsequently employed for real at a local network of 52 nodes

36 CMPT 401 Summer 2007 © A. Fedorova OceanStore Massive storage system Incrementally scalable persistent storage facility Replicated storage of both mutable and immutable objects Built on top of P2P middleware Tapestry (based on GUIDs, similar to Pastry) OceanStore objects: like files – data stored in a set of blocks Each object is an ordered sequence of immutable versions that are (in principle) kept forever Any update to an object results in the generation of a new version

37 CMPT 401 Summer 2007 © A. Fedorova OceanStore

38 CMPT 401 Summer 2007 © A. Fedorova OceanStore, Update Clients contact primary replicas to make update requests Primary replicas are powerful stable machines. They reach an agreement of accepting the update or not The update data will be sent to archive servers for permanent storages Meanwhile, the update data will be propagated to secondary replicas for queries issued by other clients Clients must periodically check for new copies

39 CMPT 401 Summer 2007 © A. Fedorova Summary P2P systems harness massive computing resources available at the edges of the Internet Early systems partly depended on a central server (Napster) or used unstructured routing, e.g., flooding, (Gnutella) Later it was identified that common requirements for P2P systems could be solved by providing P2P middleware (Pastry, Tapestry, Chord) P2P middleware enables routing, self organization, node arrival and departure, failure recovery Most P2P applications support sharing of immutable objects (Kazaa, BitTorrent) Some support mutable objects (OceanStore, Ivy) Other uses of P2P technology include Internet telephony (Skype)