Latency vs Throughput — разные оси оптимизации. Demo: streaming (low latency), batching (high throughput), tail latency at fan-out, hedged requests (Tail at Scale). Объясняет percentiles (p50/p95/p99), Little's law и почему average latency обманывает.
Latency измеряется временем на операцию, например milliseconds/request. Throughput — завершённой работой за время, например requests/second или MiB/second. Их нельзя сравнивать без workload, offered load, correctness и SLO. Оптимизация может улучшить обе метрики; batching часто повышает throughput ценой ожидания при неполном batch.
Little law L = λW связывает среднее число объектов в стационарной границе, эффективную arrival rate и среднее время внутри той же границы. Размерности обязаны сходиться. Формула не доказывает, что latency и throughput всегда движутся в разные стороны.
Direct path убирает искусственный linger, но сохраняет per-request protocol/IO overhead. Результат честен только вместе с нагрузкой и percentile SLO.
Size-or-time trigger ограничивает ожидание: flush при B records или D milliseconds. Apache Kafka описывает batch.size и linger.ms именно как такой trade-off; конкретный default меняется между версиями и не является архитектурным законом.
Если 100 обязательных независимых branches имеют по 1% вероятности slow event, вероятность хотя бы одного slow branch равна 1 - 0.99^100 ≈ 63.4%. Независимость — учебное допущение; shared overload обычно делает корреляцию сильнее.
Hedge посылается после threshold, а не одновременно всегда. Первый валидный ответ выигрывает, второй отменяется или deprioritized. Это подходит для idempotent/equivalent reads; duplicate write может создать второй side effect.
| Приём | Польза | Риск |
|---|---|---|
| batching | amortized overhead, выше records/s | deadline waiting, большие retry units |
| parallel fan-out | ниже сумма branch times | end-to-end tail следует required slow branch |
| delayed hedge | режет straggler tail | дополнительная нагрузка и consistency requirements |
| queue | absorbs bursts | queueing latency и overload collapse |
[CONCEPT]capacity-planning-deep
[CONCEPT]performance-vs-scalability
Введите числа или выберите пресет