Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

  • View
    216

  • Download
    2

Embed Size (px)

Transcript

  • Slide 1
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi, Cristian Manfredini, Alberto Montresor and Gianluigi Zavattaro of University of Bologna Presented by Samuele Milani
  • Slide 2
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 2
  • Slide 3
  • 3 Summary New coordination model (The Peer Spaces Model) Exploit the Linda Model for Peer-to-Peer Networks. Prototypical implementation (JXTA).
  • Slide 4
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 4 Overview 1)Peer-to-Peer Networks 2)The Linda Model 3)Linda in a Mobile Environment (LIME) 4)Peer Spaces 5)An Implementation with JXTA
  • Slide 5
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 5 1. Peer-to-Peer Networks
  • Slide 6
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 6 Peer-to-Peer Basics Various type of Networks : - Client-Server : Web servers - Hybrid P2P : Napster, eDonkey - Pure P2P : Gnutella, Freenet
  • Slide 7
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 7 The eDonkey Network
  • Slide 8
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 8 Problems ? High comunication overhead Slow search Distribution of load & resources Elephant & Mice problem
  • Slide 9
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 9 2. The Linda Model
  • Slide 10
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 10 The Linda Model Developped at Yale University in 1985 Shared memory accessible by all processes Data elements consists of tuples Tuple is like a record ex. (worker, 0, i) Four basic primitives Implemented through libraries (Linda for C, Fortran, C++)
  • Slide 11
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 11 The Fantastic 4 out(test, 4, 64) places a data tuple in tuple space eval(test,i, f(i)) creates a live tuple, which start a process that evaluate each argument rd(test, ?i, ?j) blocking read the values in a tuple in a tuple space in(test, ?i, ?j) blocking same as rd except that it also removes the tuple from the tuple space
  • Slide 12
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 12 Example (Test,1) (Test2,18) Boss Slave (Car,180,Volvo) Slave
  • Slide 13
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 13 Example (Test,1) (Test2,18) Boss Slave (Car,180,Volvo) Slave out(Job1,100,$)
  • Slide 14
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 14 Example (Test,1) (Test2,18) Boss Slave (Car,180,Volvo) Slave (Job1,100,$)
  • Slide 15
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 15 Example (Test,1) (Test2,18) Boss Slave (Car,180,Volvo) Slave (Job1,100,$) in(Job1,?i,$)
  • Slide 16
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 16 Example (Test,1) (Test2,18) Boss Slave (Car,180,Volvo) Slave (Job1,100,$)
  • Slide 17
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 17 3. Lime (Linda in Mobile Environment)
  • Slide 18
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 18 Lime Problems with Linda : - where i store the tuples (Server) - rather statical model - not suitable for dynamical changing networks Lime designed for mobile applications over wired and ad hoc networks Supports physical and logical mobility of the hosts Introduces transiently shared data space Decoupled and opportunistic style of computation
  • Slide 19
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 19 Transiently shared Dataspaces Process Level Data Space Host Level Data Space Transiently shared Data Space
  • Slide 20
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 20 4. Peer Spaces
  • Slide 21
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 21 Motivation Adapt the Linda/Lime Model to P2P Generative communication Must support extreme dynamism in structure, content and load Large degree of self-configuration and self management is required New coordination model PeerSpaces Formal rules, abstraction of data and network structure
  • Slide 22
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 22 Definitions Data (d) Local data Generic data (Chat) Replicable data (FileSharing) Peer p [P, DS] Ps set of peers MD Misplaced data Network topology
  • Slide 23
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 23 A Peer Space Example Peer p : p( write(job,Gen).read(response,8).write(cash,Gen). P, { }) Peer q : q( read(job,8).write(response,Rep).read(cash,8). write(pay,Gen). Q, {dog}) Peer r : r( read(pay,8).write(receipt,Gen).R, {credit}) Network : -fully connected MD = { }
  • Slide 24
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 24 A Peer Space Example Peer p : p( write(job,Gen).read(response,8).write(cash,Gen). P, { }) Peer q : q( read(job,8).write(response,Rep).read(cash,8). write(pay,Gen). Q, {dog}) Peer r : r( read(pay,8).write(receipt,Gen).R, {credit}) Network : -fully connected MD = { }
  • Slide 25
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 25 A Peer Space Example Peer p : p( read(response,8).write(cash,Gen). P, {job }) Peer q : q( read(job,8).write(response,Rep).read(cash,8). write(pay,Gen). Q, {dog}) Peer r : r( read(pay,8).write(receipt,Gen).R, {credit}) Network : -fully connected MD = { }
  • Slide 33
  • Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks 33 A Peer Space Example Peer p : p(P, {response}) Peer q : q( Q, {dog, job, response, cash } ) Peer r : r( read(pay,8).write(receipt,Gen).R, {credit}) Network : -A Node has disconnected now Route(q,r) = false MD = {pay }