Peer-to-Peer System Ali Ghodsi Swedish Institute of Computer Science Royal Institute of Technology (KTH)
Definition What is a distributed system? Leslie Lamport ”You know you have a distributed system when the crash of a computer you have never heard of stops you from getting any work done.” We counteract this definition!
Distributed Systems Example of distributed systems: –File systems –Web servers –Mail servers –Databases Frequently, an organization stores all its files on a centralized distributed file server If it fails, no one can access their files Webb servers often become overloaded and fail The central mail server crashes, no one can read their !
Our effort Build on an 30-year old idea Arpanet, the precursor of Internet, was built for: –Military survivability If some part stops working, the rest should continue to function Internet has been quite successful so far… –No fail-stop yet But the effort stopped here…
Peer-to-Peer System We want to build –Services –Servers –Applications That are self-managed Achieved by peer-to-peer techniques!
Peer-to-Peer Middleware After several years of research –Built a middleware: DKS Provides: –Routing services –Directory services –Name-based messaging (multicast/publish/subscribe)
Peer-to-Peer System DKS is self-managing Automatic managent: –Adding servers/resources –Removing servers/resources –Crash of servers/resources –Load balancing of data/nodes –Security
Peer-to-Peer? How is it different from: –KaZaa –Napster –Gnutella –Skype These are so called unstructured p2p systems –Limited applicability (file sharing) –Inefficient (wastes bandwidth) Our focus is on structured p2p systems –Chord/CAN/Pastry (USA) –DKS/P-Grid (Europe)
What can we do with DKS? Three concrete applications: –P2P Web server –P2P Backup –P2P File system
P2P Web Works like an ordinary web server Differences: –It is distributed –Automatic data replication –Load-balancing of users Too much load –Add another server Publish your web pages Gets stored on the DKS Store it here Store a new copy here Store a copy here
P2P Backup Initialization –Install a client on your computer –Decide on amount of space to share –Choose files for backup Regular backup –Data is encrypted –Always accessible
Conclusion Structured Peer-to-Peer system –Self-organizing Automatic fault-tolerance Automatic addition of nodes/resources Automatic removal of nodes/resources Automatic load-balancing Many interesting applications –File systems –Backup –Web –M.m. Cost-saving for companies –Save money on administration