Guide
Read in order the first time: from your first coroutine to a supervised, multi-core, message-passing program.
---The guide is written to be read in order the first time. It walks from your first coroutine to a supervised, multi-core, message-passing program, explaining the model as it goes and calling out the alternatives that were considered and set aside.
- 1. Getting started
- 2. Fibers and the event loop
- 3. Processes and messages
- 4. Links, monitors, and supervisors
- 5. Blocking work and I/O
- 8. Scheduling and CPU shares – proportional-share scheduling and the over-budget stall watchdog
- 10. Observing a running application – the xtc_tail microscope, deployed use, opening traces in the dial9 GUI, and the xtc_stats aggregate counters/gauges/histograms (what we include and what we deliberately do not)
- Thinking in libxtc – the mental shifts and anti-patterns
- Debugging and observing
- Zero copy in libxtc – moving bytes through messages, sockets, kernel TLS, files and devices without a copy, and what is still copied
- Tracing with DTrace, perf and bpftrace – the USDT probes: attach to a live process, find a lock convoy or a lost wake
Table of contents
- Getting started
- Fibers and the event loop
- Processes and messages
- Links, monitors, and supervisors
- Blocking work and I/O
- Resource limits
- Sharp edges
- Scheduling and CPU shares
- Network CPU placement (RPS)
- Observing a running application (dial9)
- Thinking in libxtc
- Debugging and observing
- Tracing with DTrace, perf and bpftrace
- Zero copy in libxtc