Наша команда разрабатывает слой совместимости с 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-систем.
Техническое лидерство в команде
В круг ваших задач будет входить дизайн-ревью, менторство, задание инженерной планки.