Как вырастить поисковый индекс в 3 раза, трафик в 2 раза и сэкономить 30% CPU

Архитектуры, масштабируемость

Доклад принят в программу конференции

Тезисы

В этом докладе я расскажу краткую историю развития ядра веб-поиска Яндекса за последние несколько лет. Основной задачей команды, которая разрабатывает наш движок, можно назвать экономию ресурсов. Экономия не является самостоятельной целью, но при этом имеет огромное значение: она позволяет на том же железе наращивать поисковую базу, внедрять новые фичи и модели в ранжирование, принимать растущий пользовательский трафик. С конца 2017 года мы прошли интересный путь: входящий трафик и поисковая база выросли в несколько раз, и при этом мы не только не нарастили потребление CPU и RAM, но и смогли передать десятки процентов мощностей на другие проекты поиска. Конечно, это сравнение неполное, т.к. за это время мы проапгрейдили сеть и диски, но интегральное потребление именно по CPU и RAM у нас не растет.

Вы узнаете, как снизить потребление CPU с помощью:
* сжатия (sic!);
* микросервисов (sic!);
* асинхронного IO (???);
* заменой горизонтального шардирования на вертикальное и наоборот.
И другие интересные технологические решения: erasure-recovery в реальном времени, key-value storage на десятки миллионов RPS, e2e-сжатие со словарем, батчевание применения нейросетей и деревьев.

Доклад строится вокруг практического опыта, в нем мало теории. С другой стороны, многие из описанных приемов принесут пользу только в больших рантаймах (грубо говоря, от 10к ядер CPU), и не у всех слушателей будет возможность сразу применить эти идеи на практике. Но в любом случае будет интересно.

Алексей Салмин

Яндекс Поиск

Руководитель службы разработки realtime-технологий поиска.

Видео

Другие доклады секции

Архитектуры, масштабируемость