System Design с Валерием Бабушкиным | Выпуск 4 | Собеседование | karpov.courses
Разбор учебного System Design-интервью: проектирование распределённого web crawler для поисковой системы и подробная обратная связь по подходу кандидата.
karpov.courses
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 28 тыс.
- Лайки на YouTube: 503
Таймлайн
Коротко о видео
В учебном интервью по System Design аналитик Егор проектирует web crawler для интернет-поисковика, а Валерий Бабушкин уточняет требования и разбирает решения. Они обсуждают стартовые URL, обход графа страниц, повторное сканирование, оценку объёма HTML и пропускной способности, количество воркеров, очереди, дедупликацию и распределённое хранение. В финале интервьюер отмечает, что кандидат понимает основные идеи, но советует сначала явно формулировать компоненты системы и аккуратнее вести расчёты.
Затронутые темы
Что взять на заметку
- Перед рисованием схемы проговорите состав сервиса: URL frontier/очередь, crawler-воркеры, диспетчер, дедупликация ссылок и документов, хранилище HTML.
- Для поискового краулера недостаточно один раз обойти URL: страницы меняются, появляются через уже известные сайты, поэтому нужны приоритеты и повторный обход.
- BFS полезен для широкого начального покрытия, но его нужно дополнять механизмом revisit, а не считать вершину навсегда обработанной.
- Отдельно дедуплицируйте URL и содержимое документов; одинаковые страницы и разные ссылки на один документ иначе раздуют очередь и хранилище.
- Учитывайте robots.txt, правила фильтрации и нормализацию URL до постановки ссылок в очередь.
- В System Design заранее держите ориентиры по скорости сети, записи на HDD/SSD, числу соединений и размерам данных; фиксируйте единицы измерения, чтобы не терять множители в расчётах.