H
HireSeeker
яндекс

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

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

↑ Вакансия с автоподнятием
Зарплата не указана

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

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

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

Горизонтальное масштабирование, высокая доступность и отказоустойчивость

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

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

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

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

Безопасность доступа и работы с данными

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

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

Развитие новой функциональности

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

Улучшение того, что уже есть

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

RnD и взаимодействие со смежными командами

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

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