~/talk

Scaling HTTP Connections

Talkat Erlang Factory SF Bay Area 2014 · 2014-03-06..03-07· [networking]
speakerdeck:benoitc
slides:none on file

Built an HTTP resource proxy and replaced a Python proxy with an Erlang client stack, then rewrote the client to store per-request state in ETS-backed request state instead of per-process message copying. That change plus using streaming request and response and connection pooling cuts memory growth and stops frequent crashes; the CouchDB replicator stabilizes under load and the system now sustains 20,000 concurrent connections without daily VM restarts.

AI-written summary · about

  1. 0:00Start
  2. 0:17Constraints
  3. 0:54exampe: http resource proxy
  4. 3:53exampe: couchdb replicator
  5. 8:45Panorama of the different used HTTP clients
  6. 14:42When it's limited, reuse....
  7. 16:26Control the process
  8. 19:26Limit the concurrency
  9. 22:18Reduce the memory usage
  10. 29:31A usual client pattern
  11. 31:03client patterns-hackney v2 (0.11.1)
  12. 31:22Make the API less painful
  13. 33:34client patterns - hackney v2 (0.11.1)
  14. 35:37copy data
  15. 36:57hackney v2 (0.11.1) - status
  16. 37:30HTTP 2 designed for Erlang
  17. 38:18hackney v3
~/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.