Paper summary
Reuse the setup work of repeated TCP connections
Repeated connections can avoid rebuilding the same kernel structures and state every time.
TCP connection establishment allocates structures and initializes state even when endpoints repeatedly reconnect. FALTCON keeps reusable objects from those connections to reduce duplicate work in the control path.
Keep reusable state close to the CPU core
An archive and two keepers preserve connection structures and state. Per-core archives and receive-side scaling keep a connection’s packets on the same core, reducing shared-state synchronization in the implementation.
| Mechanism | Purpose |
|---|---|
| Archive and keepers | Preserve connection structures and state |
| Per-core archives | Limit shared-state synchronization |
| Receive-side scaling | Keep a connection’s packets on the same core |
Measure connection setup and web-server capacity
Tests use Nginx without HTTP keep-alive and clients that repeatedly establish connections. Compared with Linux, FALTCON reduces connection-establishment CPU cycles by up to 31%. For 64-byte requests across the tested CPU-core counts, it handles 9–19% more connections per second.
View full-size figureKey takeaways
- Repeated connections repeat control-path work even when the application exchange is small. Reusing setup structures targets that cost before packet processing begins.
- Reuse must avoid becoming a synchronization bottleneck. FALTCON keeps archived state local to each core, linking its reuse strategy to the multicore execution model.