Caching overview

From Wikitech
Jump to: navigation, search

Picture

 __________________
| browser/the webz |
|__________________|
    |
    |
    |
  ____________________
 |  LVS               |
 |    (load balancer) |
 |____________________|
     |
     |
     |
     |
    __________________________________________________________
   |  Front End Caches (Squid or Varnish)                     |
   |     Short lived caches (~10sec, mostly to prevent DDOS)  |
   |     Live in memory                                       |
   |__________________________________________________________|
         |
         |
         |
       _____________________________________
      | Back End Caches (Squid or Varnish)  |
      |  Longer lived caches                |
      |  Live on disk                       |
      |_____________________________________|
            |
            |
            |
           _______________________________
          | Mediawiki                     |
          |   Apaches                     |
          |   parsercache                 |
          |    * Currently set at 1 year  |
          |_______________________________|

Caching Systems

  • Squid: text, upload in pmtmp
  • Varnish: bits, mobile, and upload in eqaid

Caching Settings

  • Default squid cache expiration is 30 days.
  • Default parsercache expiration is 365 days

Current method for invalidating cache content

For ParserCache:

  • puppet: manifests/misc/maintenance.pp
    • class misc::maintenance::parsercachepurging
      • Set to 30 days

Ways forward

option 1:

option 2:

  • change away from version numbers in URLs
    • maybe use slots or something else
    • what to do with things that need to be versioned, eg: skins?
  • related: not using versioned urls in code that makes it to main html output

option 3:

  • status quo

option 4:

  •  ???