Upload
austin-hood
View
212
Download
0
Embed Size (px)
Citation preview
Seattle: Building a Million-Node Testbed
Justin CapposIvan Beschastnikh
Arvind KrishnamurthyTom 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 nodesPlus compelling applications
IT Admin -- ~ 1M nodes +
What is Seattle?
Planners create installersDonors install SeattleResearchers use resources Experiment Manager Controls vessels Locates vessels Node Manager Handles multiple vessels per physical machine Access controlVessel 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 ]