Firefox/Projects/Personas Uplift Exploration/Capacity

From MozillaWiki
Jump to: navigation, search

Meeting on 9/21/09 Notes

Goals for Capacity Planning:
1. Take a data-driven approach to predicting load after 3.6 launch
2. Optimize site to better handle load
3. Clean up code in time for 3.6 launch


1. Take a data-driven approach to predicting load after 3.6 launch

Next Steps: (Suneel/Kovash) to answer the following questions:

  • How many downloads can we predict will ramp after 3.6 launch?
  • What is the ramp for users/day?
  • On average, how many mouse-overs can we expect from each user?

2. Optimize site to better handle load

Next Steps: (Nightingale) to review Morgamic's list below and 1) add additional items to the list, and 2) indicate bugs assigned for these fixes.

   * fix server-side components to properly use HTTP headers
   * honor HTTP headers properly in the client
         o do not explicitly send no-cache headers for all pages
         o set healthy cache expiry css, jpg, js
         o set healthy cache expiry for persona data
   * modify failure or timeout handling in client
         o no network connection - in offline mode it shouldn't even try
         o low timeout - try header first and if no response, keep current persona
         o check cache timeout and if not expired, don't check for new
         o check content-length and if nothing is different, don't download new
   * discuss capacity planning assuming the above are addressed
         o if N users updated N times per day, how many requests does that create
         o what hardware would we need to purchase
               + better database server with multiple read-only slaves
               + more memory to support memcache partitions
               + N web nodes for Apache/PHP
         o what software changes would we need to make
               + add memcached support
               + add multiple database support
               + fix session persistence to be efficient in a clustered environment with lead balancer

3. Clean up code in time for 3.6 launch

Next Steps: morgamic to sync up with Nick about resources for code cleanup

Excerpt from note from Ryan with concerns:

I feel like we need more resources for to achieve the level of features, stability and momentum that we're expecting of it. The current backend codebase is relatively messy as it was developed as fast as possible. This is now a technical debt that is gradually slowing us down.

A few solutions come to mind for me:

1) Assigning (or hiring) a full-time web developer to to re-write/fix the codebase (and stay as the full-time developer) - DONE Ryan is now focused on :)
2) Move hosting of personas to AMO