К списку

Разработчик на С++ в команду распределённой системной инфраструктуры YDB

Яндекс

ГибридНовосибирск, Екатеринбург, Москва, Санкт-Петербург, Нижний Новгород seniorYDBБэкенд-разработчикPythonC++JavaGoC#

YDB — это распределённая отказоустойчивая реляционная БД с открытым исходным кодом. Вместе со стеком serverless-технологий YDB позволяет организовать систему хранения и обработки данных для самых сложных и требовательных приложений.

YDB — это ещё и платформа для создания инфраструктурных компонентов. Мы предлагаем пользователям не только надёжные транзакции поверх таблиц, но и готовые решения на основе самого движка: персистентные очереди, федеративные запросы, сетевые диски для виртуальных машин (Yandex Network Block Store) и другие.

Внутри команды есть два направления, которыми вы сможете заниматься:

Горизонтальное масштабирование, высокая доступность и отказоустойчивость
Система должна уметь динамически перераспределять логические компоненты по узлам системы, реагировать на изменения нагрузки на компонентах и узлах. Управление логическими компонентами (таблетками) включает в себя распределение их по узлам кластера, учёт метрик работы таблеток и узлов, перемещение таблеток с перегруженных узлов, автоматическое партицирование таблиц с данными при увеличении их объёма или росте нагрузки.

На уровень выше система должна в каждый момент знать, из каких таблеток состоит, например, таблица или топик, и уметь распространять это знание по узлам системы так, чтобы обеспечить консистентное выполнение пользовательских SQL-запросов, манипуляций пользователя с самими таблицами и автоматическое управление партицированием таблиц.

Жизнью таблеток, устройством и жизнью пользовательских объектов схемы базы данных управляют компоненты системной распределённой инфраструктуры YDB.

От качественного решения подобных задач зависят многие видимые пользователю характеристики базы данных: консистентность, отзывчивость и пропускная способность. Мы постоянно развиваем и улучшаем наши управляющие компоненты, чтобы увеличивать производительность, предоставлять пользователям новую функциональность и расширять сценарии применения YDB.

Безопасность доступа и работы с данными
Сюда входят аутентификация, проверка прав на выполнение действий с данными и объектами, манипуляции правами, интеграции с различными системами управления идентификацией и доступом, работа с секретами, аудитное логирование. От работы подсистем безопасности зависит сохранность пользовательских данных.

Большая часть разработки ведётся в GitHub, поэтому вы сможете публично поделиться результатами своей работы.

Какие задачи вас ждут

Развитие новой функциональности
Вы будете реализовывать новые алгоритмы балансировки. Разрабатывать подходы к масштабированию компонент системной распределённой инфраструктуры. Добавлять интеграции с внешними системами управления идентификацией и доступом. Развивать работу с секретами.

Улучшение того, что уже есть
Понадобится развивать алгоритмы балансировки логических компонент. Улучшать автоматическое партиционирование таблиц. Уменьшать стоимость выполнения пользовательских и системных операций со схемой. Развивать систему прав YDB и её взаимодействие с внешними системами управления доступом. Улучшать подсистему аудитного логирования.

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

Мы ждём, что вы

  • Любите С++, хорошо им владеете и пишете на нём больше трёх лет
  • Знаете и умеете применять классические алгоритмы и структуры данных
  • Понимаете парадигму многопоточности, знакомы с основными подходами, проблемами и ограничениями в этой области
  • Разрабатывали высоконагруженные, распределённые, близкие к железу сервисы или сервисы реального времени

Источник: yandex.ru (Яндекс) 29 августа 2026