~/talk

Serving 30,000,000 Requests an Hour in the Cloud

Talkat PHP UK Conference 2017 · 2017-02-16..02-17· [devops-and-delivery]
slides:none on file

A case study of an App Engine app that accidentally creates 30,000,000 requests in an hour and then is deliberately engineered to handle that load. Uses ApacheBench for load, App Engine + Cloud Storage + Firebase for logging and realtime, runs into URL Fetch quotas (≈11k QPS but three outgoing calls per request limits to ≈3.6k QPS) and Firebase flakiness around 3,500 QPS. Fixes include batching via memcache and task queues, swapping the load generator to Go to cut instances from ~700 to ~100 and reduce cost.

AI-written summary · about

  1. 0:00Start
  2. 9:07Compute Engine
  3. 9:27Cloud Storage
  4. 20:42URLFetch
  5. 21:14Source Code
  6. 25:46Assumptions
  7. 26:12Memcache on App Engine
  8. 29:07Close but no cigar
  9. 33:41Pseudo Code
  10. 34:00How Firebase works
  11. 35:48Batch Memcache calls
  12. 36:02I'm sending too much stuff
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.