120 likes | 269 Views
Seattle: Building a Million-Node Testbed. Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington https:// seattle.cs.washington.edu/wiki/SeattleDownload. Existing Testbeds. Satellite Lab [ http://satellitelab.mpi-sws.mpg.de/ ].
E N D
Seattle: Building a Million-Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington https://seattle.cs.washington.edu/wiki/SeattleDownload
Existing Testbeds Satellite Lab [ http://satellitelab.mpi-sws.mpg.de/ ]
What are Testbeds Missing? Residential users DSL / wifi connectivity Mobile devices Real world use patterns Cloud / Grid / Cluster computing High bandwidth externally, LAN connectivity internally Scalability > 1M computers in the Azureus DHT Testbeds lag behind the real world!
Testbed Goal: Look Like the Internet X >1 Million
How to Have A Representative Testbed (NOT!) Ask the NSF for millions of dollars in hardware Get a huge team of researchers Plan a multiyear project Give it a cool name (GENI?) Repeat in 5 years when it's obsolete
How To Have a Representative Testbed Adoption Incentives Security /isolation Performance Compatibility Platform diversity Network diversity Maximize utility Sliceability Service / allocation incentives
Growing to 1 Million Nodes Internal use -- ~500 nodes (PlanetLab nodes) Classroom use -- ~1K-2K nodes Diversity Ease of use Researchers -- ~2K-3K nodes Measurement fidelity Resource management Slashdot Crowd -- ~.5M - 1M nodes Plus compelling applications IT Admin -- ~ 1M nodes +
What is Seattle? Planners create installers Donors install Seattle Researchers use resources Experiment Manager Controls vessels Locates vessels Node Manager Handles multiple vessels per physical machine Access control Vessel Programming Language Virtual Machine Resource consumption restricted
Demo Go to: https://seattle.cs.washington.edu/wiki/SeattleDownload Demo programs UDP ping All pairs ping Chord [ http://pdos.csail.mit.edu/chord/ ]
Programming on Seattle UDP ping server (4 LOC) def got_message(srcip,srcport,mess,ch): sendmess(srcip,srcport,mess) if callfunc == 'initialize': recvmess(getmyip(),54321,got_message) UDP ping client (6 LOC) def got_reply(srcip,srcport,mess,ch): print 'received:',mess,"from",srcip,srcport if callfunc == 'initialize': recvmess(getmyip(),43210,got_reply) # send the second arg to the first arg's IP sendmess(callargs[0],54321,callargs[1], getmyip(), 43210) # exit in one second settimer(1,exitall,()) All pairs ping (31 LOC), Chord (~300 LOC)
P2P Applications in Progress • OneSwarm: friend to friend file sharing • Use social networks to bootstrap trust • Privacy preserving • Easy to adopt/easy to use • Hubble • real-time identification of Internet black holes • Harmony • Scalable DHT that works
Conclusion Existing testbeds don't model the Internet Use resource donation and end user applications to build a million node testbed Platform diversity Network diversity Scale Currently looking for classroom adoption! [ https://seattle.cs.washington.edu ]