Разработчик в команду PostgreSQL-совместимости YDB

Яндекс · Москва · по договорённости

Компания
Яндекс
Город
Москва
Зарплата
по договорённости
Уровень
senior
Формат
гибрид

Наша команда разрабатывает слой совместимости с PostgreSQL для YDB. Он позволяет существующим PostgreSQL-приложениям работать с YDB без изменений на стороне клиента и при этом использовать возможности распределённой СУБД: горизонтальное масштабирование, отказоустойчивость и строгую согласованность.

Проект уже показал результаты на ряде приложений, работающих с PostgreSQL. Ближайшая задача — развивать производительность и обеспечивать полноту поддержки PostgreSQL-семантики в архитектуре YDB и в слое PostgreSQL-совместимости.

Мы ищем разработчика с опытом работы в ядре PostgreSQL, пониманием распределённых систем и уверенным владением C++.

Что предстоит делать:
Проектирование архитектуры расширения и слоя совместимости

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

Настройка производительности

Вам предстоит профилирование горячих путей, оптимизация выполнения запросов, работа с планировщиком. Цель — эффективное выполнение типовых OLTP-нагрузок и масштабируемая работа на больших данных и распределённых сценариях.

Реализация парсера и транзакционного механизма

Необходимо будет обеспечивать поддержку PostgreSQL-диалекта SQL (DDL, DML, CTE, оконные функции, рекурсивные запросы), а также минимизацию семантических расхождений в пределах технических возможностей. Цель — достичь поведения приложений, использующих распределённые транзакции YDB, неотличимого от поведения при работе с PostgreSQL.

Горизонтальное масштабирование PostgreSQL-шлюзов

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

Обеспечение совместимости с экосистемой

Вам предстоит обеспечивать корректную работу драйверов (libpq, JDBC, asyncpg, pgx) без модификаций на стороне клиента, поддержку ORM, миграционных инструментов и BI-систем.

Техническое лидерство в команде

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

Больше о том, что под капотом платформы Yandex Cloud, — в канале Inside Yandex Cloud

Требования:
• Уверенно владеете C++ и понимаете устройство высоконагруженных и распределённых систем
• Готовы разбираться во внутренностях PostgreSQL, YDB и СУБД в целом, включая расширения, внутренние структуры, планировщик. Опыт СУБД-разработки не обязателен — важна способность работать со сложными чужими кодовыми базами на этом уровне
• Умеете доводить архитектурные решения от идеи до согласованного дизайна и работающего кода

Будет плюсом:
• Разрабатывали расширения PostgreSQL или работали с его внутренними API (Hooks, FDW, Custom Scan, Background Workers)
• Знаете внутренности PostgreSQL или родственные системы (Greenplum, Citus, CockroachDB, YugabyteDB)

Открыть и откликнуться →

Отклик ведёт на сайт работодателя. Бесплатная регистрация открывает отклик и разбор резюме.

Многих вакансий каталога нет на агрегаторах

11500+ вакансий от 1700+ компаний — в основном напрямую с карьерных сайтов и из Telegram-каналов. У 950+ из них есть контакт нанимающего: пишешь человеку, а не в общую очередь. Регистрация бесплатная — откроет контакты и подбор вакансий под твоё резюме.