Перейти к содержимому
5 / 10

Как уложить весь конвейер в бюджет 150 мс и что делать при отказе части источников?

Разложить бюджет по этапам и защитить каждый таймаутом. Типичная раскладка: отбор 20 мс (источники параллельно), получение признаков 20 мс (пакетно), ранжирование 60 мс, переранжирование и сборка 10 мс, остальное — сеть и запас. Каждый внешний вызов идёт с собственным таймаутом заметно меньше общего бюджета. При отказе — деградация, а не ошибка: не ответил источник кандидатов, собираем из остальных; не пришли признаки, считаем с пропусками; упало всё, отдаём популярное из кэша. Пустой экран — худший из возможных исходов, и архитектура должна исключать его целиком.

Как уложить весь конвейер в бюджет 150 мс и что делать при отказе части источников? | JScriptiser