
яндекс · 18 июн.
↑ Вакансия с автоподнятиемYDB — это распределённая отказоустойчивая реляционная БД с открытым исходным кодом. Вместе со стеком serverless-технологий YDB позволяет организовать систему хранения и обработки данных для самых сложных и требовательных приложений.
YDB — это ещё и платформа для создания инфраструктурных компонентов. Мы предлагаем пользователям не только надёжные транзакции поверх таблиц, но и готовые решения на основе самого движка: персистентные очереди, федеративные запросы, сетевые диски для виртуальных машин (Yandex Network Block Store) и другие.
Внутри команды есть два направления, которыми вы сможете заниматься:
Горизонтальное масштабирование, высокая доступность и отказоустойчивость
Система должна уметь динамически перераспределять логические компоненты по узлам системы, реагировать на изменения нагрузки на компонентах и узлах. Управление логическими компонентами (таблетками) включает в себя распределение их по узлам кластера, учёт метрик работы таблеток и узлов, перемещение таблеток с перегруженных узлов, автоматическое партицирование таблиц с данными при увеличении их объёма или росте нагрузки.
На уровень выше система должна в каждый момент знать, из каких таблеток состоит, например, таблица или топик, и уметь распространять это знание по узлам системы так, чтобы обеспечить консистентное выполнение пользовательских SQL-запросов, манипуляций пользователя с самими таблицами и автоматическое управление партицированием таблиц.
Жизнью таблеток, устройством и жизнью пользовательских объектов схемы базы данных управляют компоненты системной распределённой инфраструктуры YDB.
От качественного решения подобных задач зависят многие видимые пользователю характеристики базы данных: консистентность, отзывчивость и пропускная способность.
Мы постоянно развиваем и улучшаем наши управляющие компоненты, чтобы увеличивать производительность, предоставлять пользователям новую функциональность и расширять сценарии применения YDB.
Безопасность доступа и работы с данными
Сюда входят аутентификация, проверка прав на выполнение действий с данными и объектами, манипуляции правами, интеграции с различными системами управления идентификацией и доступом, работа с секретами, аудитное логирование. От работы подсистем безопасности зависит сохранность пользовательских данных.
Большая часть разработки ведётся в GitHub, поэтому вы сможете публично поделиться результатами своей работы.
Развитие новой функциональности
Вы будете реализовывать новые алгоритмы балансировки. Разрабатывать подходы к масштабированию компонент системной распределённой инфраструктуры. Добавлять интеграции с внешними системами управления идентификацией и доступом. Развивать работу с секретами.
Улучшение того, что уже есть
Понадобится развивать алгоритмы балансировки логических компонент. Улучшать автоматическое партиционирование таблиц. Уменьшать стоимость выполнения пользовательских и системных операций со схемой. Развивать систему прав YDB и её взаимодействие с внешними системами управления доступом. Улучшать подсистему аудитного логирования.
RnD и взаимодействие со смежными командами
Важно изучать проблемы в реализации и предлагать, как решить их. Вы будете общаться с командами других подсистем YDB и вместе выбирать оптимальные решения при проектировании изменений.
* Любите С++, хорошо им владеете и пишете на нём больше трёх лет
* Знаете и умеете применять классические алгоритмы и структуры данных
* Понимаете парадигму многопоточности, знакомы с основными подходами, проблемами и ограничениями в этой области
* Разрабатывали высоконагруженные, распределённые, близкие к железу сервисы или сервисы реального времени