• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
08 10 12 Meebo Ajaxworld Preso

08 10 12 Meebo Ajaxworld Preso






Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    08 10 12 Meebo Ajaxworld Preso 08 10 12 Meebo Ajaxworld Preso Presentation Transcript

    • scaling the synchronous web confidential
    • scaling the synchronous web October 10th, 2008 Elaine Wherry Co-Founder, VP Products confidential
    • + www
    • 2 3 4 5 6 7
    • traditional versus nontraditional...
    • asynchronous versus synchronous...
    • asynchronous versus synchronous... page views versus persistence... content versus application... database versus memory...
    • simpler is better know your bottlenecks quick fix or homerun useful abstractions
    • #1: simpler is better
    • gaim 1.5.0 ui & core & services protocol plugins yahoo oscar (aim) jabber msn
    • meebo network layer gaim 1.5.0 core & services protocol plugins yahoo oscar (aim) jabber msn yahoo
    • confidential
    • #1: simpler is better Don’t try to solve a scaling problem you don’t have (yet) Build it as quickly and as inexpensively as possible You want to save time to iterate upon other ideas in case this one doesn’t work Setting yourself up for success – easier to optimize something you understand
    • #2 know your bottlenecks confidential
    • tools strace gdb oprofile httpanalyzer monitoring
    • #2: know your bottlenecks your type of app determines the type of scaling don’t prematurely optimize know system at different levels: oprofile, valgrind, gdb know your bottlenecks: memory, cpu, bandwidth, storage, disk i/o confidential
    • #3: quick fix or homerun! confidential
    • kill –9 <pid>
    • confidential
    • confidential
    • cgi fastcgi mod_meebo
    • #3: quick fix or homerun users just want it to work (now) use the time the quick fix affords you wisely aim for small or big, avoid the middle fix the root issue
    • #4: useful abstractions
    • ui meebo dlg IMDlg BuddyListDlg button menu EventMgr NetworkMgr element ajax util.js
    • Firefox iPhone iPhone meeboApp meeboApp PubSub ui meebo dlg Buddy BuddyList Account button menu EventMgr NetworkMgr element ajax util
    • #4: useful abstractions keep it simple, flexible, so you can adapt quickly to changes and scale with needs abstractions allow you to reuse existing components to scale to new challenges it’s hard to know where the useful abstractions are when you start a project
    • simpler is better know your bottlenecks quick fix or homerun useful abstractions
    • today 3 years old 45 people (2 dogs) 35 million uniques per month 350 years worth of usage per day 200 million messages per day 54,000 kiss emoticons each day :-* 2.5 hour session length
    • thank you confidential
    • http://flickr.com/photos/23327394@N05/2247502690/sizes/o/ (synchronized swimming) http://www.flickr.com/photos/exlibris/1031926094/ (traditional wedding) http://www.flickr.com/photos/callmemurphy/15877783/ (elvis) http://www.tadgear.com/edged%20tools/tad_gear_titanium_folding_spork.htm (spork) http://flickr.com/photos/deeleea/527574056/sizes/o/ (cat bottleneck) http://flickr.com/photos/pinelife/2580999964/sizes/l/ (quick fix) http://petitinvention.files.wordpress.com/2008/04/stinky_trash-petitinvention.jpg (trash icon) http://technet.microsoft.com/en-us/library/cc722911.aspx (windows dlg) http://flickr.com/photos/simonkimber/1096654635/ (traffic light tree) http://www.flickr.com/photos/jumblejet/2685719879/sizes/l/ (elephant veggie art)