12
Seattle: Building a Million-Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington https://seattle.cs.washington.edu/wiki/ SeattleDownload

Seattle: Building a Million- Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington

Embed Size (px)

Citation preview

Page 1: Seattle: Building a Million- Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington

Seattle: Building a Million-Node Testbed

Justin CapposIvan Beschastnikh

Arvind KrishnamurthyTom Anderson 

University of Washington  

https://seattle.cs.washington.edu/wiki/SeattleDownload

Page 2: Seattle: Building a Million- Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington

Existing Testbeds

Satellite Lab  [ http://satellitelab.mpi-sws.mpg.de/ ]

Page 3: Seattle: Building a Million- Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington

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!

Page 4: Seattle: Building a Million- Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington

Testbed Goal: Look Like the Internet

X >1 Million

Page 5: Seattle: Building a Million- Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington

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

Page 6: Seattle: Building a Million- Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington

How To Have a Representative Testbed

    Adoption        Incentives        Security / isolation

Performance     Compatibility        Platform diversity        Network diversity     Maximize utility         Sliceability        Service / allocation incentives

Page 7: Seattle: Building a Million- Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington

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 +

Page 8: Seattle: Building a Million- Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington

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

Page 9: Seattle: Building a Million- Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington

Demo

Go to: https://seattle.cs.washington.edu/wiki/SeattleDownload

Demo programs

    UDP ping

    All pairs ping

    Chord         [ http://pdos.csail.mit.edu/chord/ ]       

Page 10: Seattle: Building a Million- Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington

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)

Page 11: Seattle: Building a Million- Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington

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

Page 12: Seattle: Building a Million- Node Testbed Justin Cappos Ivan Beschastnikh Arvind Krishnamurthy Tom Anderson University of Washington

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 ]