Войти Регистрация
System design

1. Подбор водителя в Яндекс Такси

Сложная

Пройдите шаги: уточните требования, оцените нагрузку, выберите решения, нарисуйте схему.

Пассажир нажимает «Заказать», и через 2–3 секунды ему должны предложить машину, которая приедет быстрее остальных.

Для расчёта возьмём: по России одновременно на линии 300 тыс. водителей, приложение водителя шлёт координату раз в 3 секунды. В вечерний пик — 1,2 млн заказов в час.

Ближайший по прямой не всегда быстрее: через реку или МКАД он может ехать 20 минут. Поэтому кандидатов ранжируют по ETA с учётом пробок.

В работе: Это сердце такси: от скорости и точности подбора зависят время подачи и доля отмен.

Как проверяем Шаги с вариантами и расчётами проверяем автоматически: число засчитано, если оно в пределах допуска от эталона. Схему вы оцениваете сами по чек-листу. Зачёт — схема набрала 60 % чек-листа и верны 70 % остальных пунктов. Ответ один на подход: после него показываем разбор.
геоиндекспотоковые данныеблокировкишардирование

Источник: на задачах Яндекс Такси: назначение заказа. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.
  1. Уточнить требования — Что спросить у интервьюера до схемы?
  2. Оценить нагрузку
  3. Где искать ближайших — Как хранить позиции водителей для поиска кандидатов?
  4. Двойное назначение — Как не отдать одного водителя двум заказам одновременно?
  5. Схема — Опишите путь координаты и путь заказа до назначения водителя.