PROST: A Programmable Structured Peer-to-Peer
- verlay Network
Marius Portmann, S Marius Portmann, Sé ébastien Ardon bastien Ardon Patrick S Patrick Sé énac nac
University of Queensland, Brisbane, Australia ENSICA Toulouse, France
PROST: A Programmable Structured Peer-to-Peer overlay Network - - PowerPoint PPT Presentation
PROST: A Programmable Structured Peer-to-Peer overlay Network Marius Portmann, S bastien Ardon bastien Ardon Marius Portmann, S Patrick S nac nac Patrick S University of Queensland, Brisbane, Australia ENSICA Toulouse, France
University of Queensland, Brisbane, Australia ENSICA Toulouse, France
Prost: a Programmable structured P2P system
NETWORK END-HOSTS OVERLAY
Prost: a Programmable structured P2P system
– – Most famous: Distributed Hash Tables Most famous: Distributed Hash Tables
2
128
chunk chunk key space
Prost: a Programmable structured P2P system
Circular Circular ID ID space space ( (wraps wraps) ) Each node stores (key,values) for all keys Each node stores (key,values) for all keys smaller than its node id but greater than smaller than its node id but greater than previous node id. previous node id. When node join/leave key,values are When node join/leave key,values are migrated to neighbor nodes migrated to neighbor nodes hash function is SHA1: nice uniform random hash function is SHA1: nice uniform random
Routing is used Routing is used to to find the node responsible find the node responsible for a for a particular key particular key A A node node uses « uses « shortcuts shortcuts » » along the along the ring: ring: fingers fingers Fingers Fingers are are arranged exponentially starting arranged exponentially starting from the node from the node ID. ID. Each node need Each node need to to find the closest find the closest predecessor predecessor to to the the destination destination key key O(log N) messages O(log N) messages exchanged exchanged for for routing routing from any from any source to source to any any destination destination Each node export simple hash tables Each node export simple hash tables manipulations functions (get/put) manipulations functions (get/put)
4
50 80 60
dest = 78
7
27 14
keyspace
14 27 7
…
50
Node id
IP@
Prost: a Programmable structured P2P system
Cooperative File System (CFS) Cooperative File System (CFS)
– – File storage, uses CHORD at the block level File storage, uses CHORD at the block level
PAST PAST
– – large-scale, Internet-based, global storage utility that provides scalability, high large-scale, Internet-based, global storage utility that provides scalability, high availability, persistence and security availability, persistence and security
I3 I3
– – Communication primitive (indirection) based on CHORD Communication primitive (indirection) based on CHORD
SCRIBE SCRIBE
– – scalable application-level multicast infrastructure, event notification infrastructure scalable application-level multicast infrastructure, event notification infrastructure
SplitStream SplitStream
– – High-bandwidth content distribution system based on application-level multicast High-bandwidth content distribution system based on application-level multicast
BAYEUX BAYEUX
– – application-level multicast built on top of Tapestry application-level multicast built on top of Tapestry
OCEANSTORE OCEANSTORE
– – persistent and resilient data storage persistent and resilient data storage
Prost: a Programmable structured P2P system
– – Re-inventing the wheel Re-inventing the wheel
One network per application! One network per application!
– – Overhead: topology maintenance Overhead: topology maintenance
– – Common DHT API Common DHT API
Not enough: most applications need more than DHT Not enough: most applications need more than DHT
– – Take the programmable network paradigm to the peer-to-peer Take the programmable network paradigm to the peer-to-peer layer layer – – Allow to deploy new applications on a large scale, by leveraging Allow to deploy new applications on a large scale, by leveraging an existing peer base an existing peer base
Prost: a Programmable structured P2P system
Dabek, F. et al, “Towards a common API for structured P2P overlays”, IPTPS’03
Prost: a Programmable structured P2P system
must be previously deployed must be previously deployed
Prost: a Programmable structured P2P system
Key-based Routing Layer (KBR ) Peerlet Manager Peerlet Peerlet Peerlet Programmable Peer Layer User Interface Component User Interface Component
Prost: a Programmable structured P2P system
KBR
Application (Peerlet)
. . .
KBR KBR
Application (Peerlet)
KBR
Application (Peerlet)
. . .
KBR KBR
Application (Peerlet) Application (Peerlet)
(a) (b)
End-node applications: file sharing, storage, etc Per-hop applications: multicast communication, etc
Prost: a Programmable structured P2P system
– – Analogy to Router Alert IP header field Analogy to Router Alert IP header field
dst key app id app type peerlet code locator application data
Prost: a Programmable structured P2P system
local_lookup local_lookup( (… …), ), neighbour_set neighbour_set( (… …), ), replicaSet replicaSet( (… …), update( ), update(… …), range( ), range(… …) )
Prost: a Programmable structured P2P system
dst key = 78 App ID = ‘P2PTV v1.9’ App TYPE = ‘1’ Peerlet code locator = ‘https://secure.p2ptv.com/cgi?code-current App DATA: addReceiver(4,…)
4
50 80 60
7
27 14
PROST NETWORK
appType=1? appID installed? yes
download and install peerlets
no forward(78,appData,60) yes
P2PTV peerlet
route(80,60,appData) deliver(78,appData)
Prost: a Programmable structured P2P system
Prost: a Programmable structured P2P system
admission control admission control
trust model, code authentication trust model, code authentication sandboxing sandboxing use to Crypto-based IDs use to Crypto-based IDs
process migration? process migration?
Prost: a Programmable structured P2P system
Prost: a Programmable structured P2P system
Prost: a Programmable structured P2P system