Caching overview
From Wikitech
Contents |
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
- class misc::maintenance::parsercachepurging
Ways forward
option 1:
- reduce parsercache timeout to size of deployment window (~28 days)
- Tim may have knowledge why that shouldn't happen
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:
- ???