Servers

Servers #

Scope #

  • Iterative servers
  • Event demultiplexers: select()/poll()/epoll()
  • Thread-per-connection architecture
  • C10k problem
  • Quality metrics: QPS, EPS, latency
  • Event loop based servers
  • Scaling out event loops
    • shared demultiplexers with EPOLLONESHOT
    • private demultiplexers
    • SO_REUSEPORT to scale out accept()
  • Reactor pattern
  • State Machine pattern
  • Coroutines
  • Zero-Copy solutions

Reference #

  1. Lecture Slides
  2. Code samples
  3. Old slides: Inet_3en.pdf
  4. The GNU C library documentation: 13.8: Waiting for Input or Output, 16.11: The inet daemon, 18.1 Overview of Syslog, 24.2.4: Asynchronous I/O Signals