Slides - TERENA Networking Conference 2002
Download
Report
Transcript Slides - TERENA Networking Conference 2002
Peer-to-Peer Infrastructure and
Applications
Andrew Herbert
Microsoft Research, Cambridge
+44 1223 479818
[email protected]
Microsoft and the Grid
Shared vision of the “virtual organization”
But focused on e-Business rather than e-Science
Grid investments
Windows clusters for large scale computations
TerraServer projects for large data sets
Globus port to Windows
Globus implementation of OGSA
Wrap Grid services as Web services
Leverage web services as Grid infrastructure
E.g., Hailstorm user authentication
Microsoft Research
Web services enable wide area integration
How to extend this to enable efficient wide scale
information sharing and collaboration?
Move to a model of peer-to-peer service
implementation in contrast to today’s server-based
model
Necessarily scalable and self-organizing
Necessarily simple developer framework
No conflict with WSDL, SOAP etc
Peer-to-Peer today
Music / video download
Napster, Morpheus, Gnutella
Distributed computing
SETI@Home
Research community
looking for general purpose frameworks
discovering useful applications
Peer-to-Peer applications
Publish/Subscribe Event Notification (SCRIBE)
Share load of supporting topics and disseminating messages
from publishers to subscribers
Distributed document archive (PAST)
Share load of storing documents reliably
Web caching (SQUIRREL)
Share load of caching web pages
Dynamic directory (OVERLOOK)
Share load of storing directory entries for dynamic data
A P2P framework requires:
Content-based addressing
Hash content to key
Route message to computer hosting that key
Dynamic caching and proxying
Local computers stand in for remote ones
Faster access, reduced load on key holder
Replication and automatic failover
Store at K computers adjacent to key holder
Multicast cascade for group communication
Each computer needs a spanning tree of
routes for reaching every other computer
Overlay Networks
Peer-to-peer requires richer routing semantics
than IP
IP routes to destination computer, not content
URLs route to destination computer, not content
IP multicast isn’t widely deployed
Solution: Overlay networks
allow applications to participate in hop-by-hop
routing decisions
Ideal overlay is efficient, self-organizing,
scalable, and fault-tolerant
Pastry outline
Computers (Nodes) have unique Id
Typically 128 bits long
Primitive: Route (msg, key)
Deliver msg to currently alive node with Id closest
numerically to key
Scalable, efficient
Per node routing table O(log(N)) entries
Route in O(log(N)) steps
Fault tolerant
Self-fixes routing tables when nodes added,
deleted or fail
Pastry routing
0XXX
1XXX
2XXX
3XXX
0112
2321
START
0112 routes a
message to
key 2000.
2032
First hop fixes
first digit (2)
2001
END
2001 closest
live node to
2000.
Second hop fixes
second digit (20)
Pastry routing table
Routing table:
For each level, nearest
peer for other domains
Namespace leaf set:
nearest Ids to “left” and
“right” in name space
Each entry gives IP
address for host
associated with Id
Pastry Routing Demo
Pastry node addition
Want to add new node to the system
Invent a new random nodeId X
Go to a nearby or well-known node A
1.
2.
3.
4.
5.
Route to “key” X via A (finds node Z with Id closest
to X)
Obtain leaf set from Z and rebuild
Obtain routing table entries from each node along the
route from A to Z and rebuild
Register with each member of A’s namespace leaf
set so they
adjust their leaf sets and rebuild
Find nearest leaf set node and use its
routing table to improve locality
Scribe: A Pastry Application
Publisher
Publisher
Topic of
interest
Subscriber
Subscriber
Publish / subscribe is a popular model for “event
driven” systems with volatile membership
Decouple event publishers from event subscribers
Publishers don’t know in advance who subscribers are
Subscribers don’t know in advance who publishers are
Challenge is how to multicast notifications
from topics efficiently
Scribe: architecture
Topic hashed to a key
Construct a multicast tree based on the Pastry
network
Have the (Pastry) node with the closest Id to the
topic key be the root
This node replicates knowledge of the topic to its k
nearest neighbours for resilience
Pass event notification down through the tree
Each parent forwards event to it’s children
Avoids over stressing network links close to the
topic node
Scribe: Topic creation
Each topic is assigned a
topicId
Root
T
Create(T)
Root of the multicast tree=
node with nodeId numerically
closest
Create(topic): route through
Pastry to the topicId
Scribe: subscribing
1111
1000
1111
1100
1101
1100
1101
1011
1001
1011
0100
1001
0100
1000
0111
0111
Scribe: event dissemination
E
1100
Publish(topic, event)
Route through the
Pastry network using
the topicId as the
destination
Dissemination along
the multicast tree
starting from the root
1101
1011
1011
0100
0111
Scribe demo
Summary
Peer-to-peer techniques are good for wide area
information sharing and collaborative computation
Overlay networks enable peer-to-peer distributed
computing
Pastry is an efficient, scalable, self-organizing peer-topeer framework
Pastry makes it easy to build powerful peer-to-peer
applications
For more see:
http://research.microsoft.com/~antr/Pastry/