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

Доклад принят в программу конференции
Алексей Салмин
Яндекс

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

salmin@yandex-team.ru
Тезисы

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

Вы узнаете, как снизить потребление CPU с помощью:
* Сжатия (sic!)
* Микросервисов (sic!)
* Асинхронного IO (???)
* Заменой горизонтального шардирования на вертикальное и наоборот

И другие интересные технологические решения: erasure-recovery в реальном времени, key-value storage на десятки миллионов RPS, e2e сжатие со словарем, батчевание применения нейросетей и деревьев.

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

Другие доклады секции Архитектуры, масштабируемость