H
HireSeeker
яндекс

Разработчик в команду Plutonium

яндекс · 4 июн.

Зарплата не указана



Мы разрабатываем Plutonium — систему управления распределёнными поисковыми индексами. Поисковые индексы используются во всех ключевых продуктах Яндекса: Поиске, Рекламе, Маркете и т. д. За время развития компании появилось большое количество разных фреймворков и механизмов для построения и использования индексов. Project Plutonium — это обобщение успеха поисковых технологий на все крупные сервисы, призванное решить проблему разнородных подходов. Такое обобщение не просто уменьшает технический долг, но и увеличивает стабильность продуктов, добавляет недостающую функциональность.

Мы предоставляем новый унифицированный механизм потокового построения индексов, сервисы для организации эффективного рантайма и сложный control plane, который оркестрирует процесс доставки и использования различных шардов данных.

Сервисы, построенные по нашей технологии, хранят петабайты данных, обрабатывают сотни миллионов операций чтения с NVMe в секунду, при этом доставляют обновления данных за минуты.

Наш стек: С++ для контроллеров, немного Go и Python, ОС Linuх. Храним петабайты данных в S3, а метаданные храним в YTsaurus.

Ускорение движка доставки шардов

У нас есть реализованный конечный автомат состояний шарда поискового индекса. В случае, когда дельты появляются быстро, скорость доставки оказывается на критичном пути возраста данных. В рамках ускорения нужно поддерживать трейсинг, оптимизировать как известные места, где мы тратим время, так и новые, найденные с помощью трейсов.

Разбиение доставки на модули

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

Поддержка мультиарендности контроллеров

При запросе пользователя поднять новый контур доставки индекса наша автоматика поднимает отдельные инстансы контроллеров. Они могут простаивать, когда данные не нуждаются в доставке. Мы хотим поддержать мультиарендность — возможность обрабатывать доставку данных нескольких наших клиентов на едином инстансе контроллеров. Этот переход позволит нам сэкономить тысячи CPU и ускорить релизный цикл наших контроллеров.

Больше о бэкенде в Яндексе — в канале Yandex for Backend

* Умеете и любите писать код на современном С++
* Ответственно подходите к разработке, внимательны к деталям
* Хорошо знакомы с классическими алгоритмами и структурами данных
* Открыты, легко ладите с коллегами

* Разрабатывали сетевые, многопоточные или распределённые программы или прошли углублённые обучающие курсы по этим направлениям
* Владеете Linux на уровне разработчика
* Успешно участвовали в олимпиадах по техническим предметам в школе или университете