Разработка форка PostgreSQL
Доработки в ядре СУБД PostgreSQL и разработка расширений в рамках импортозамещения и перехода с MS SQL Server.
Важные доработки в планировщике, оптимизация кеширования запросов, шардирование.
Чистый C, PostgreSQL.
Профит для компании
- мои доработки ядра являются критически важными для всей компании, без них миграция продуктов на PostgreSQL была невозможна
- закрыл большое количество сложных задач
- показ для клиентов, к которому готовились полгода, прошел успешно, поскольку я успел сделать все важные доработки к дедлайну
- много помогал менее опытным коллегам, когда они застревали со своими непростыми задачами
- сыграл важную роль в проекте для банка из топ-5, связанном с шардированием БД на PostgreSQL
Мой профит
- стал разработчиком ядра СУБД
- попробовал роль техлида и успешно с этим справился
- еще раз убедился, что умею быстро разбираться с ранее незнакомыми технологиями и большими объемами кода
Причина ухода
- изменение глобальных планов компании на продукт
- компания в одностороннем порядке изменила изначальные договорённости
Задачи
- доработки в планировщике: запросы, которые работали по 20 минут и вываливались по таймауту, стали работать как в MS SQL Server, за несколько секунд (подробности)
- решил проблему с деградацией работы Postgres через несколько часов работы при высокой нагрузке
- участвовал в доработках, связанных с оптимизацией инвалидации кеша
- большие доработки pg_hint_plan
- доработка Patroni для Astra Linux 1.6
- доработки расширений для контроля целостности дистрибутива, целостности хранимок
- эксперименты по использованию Tarantool в качестве in-memory кеша для Postgres
- аналитическая работа по шардированию, предложил вариант решения
- в кратчайшие сроки реализовал прототип балансировщика, который в зависимости от запроса посылает его на тот или иной шард, для клиента балансировщик выглядит обычным сервером PostgreSQL
- доработка расширения sr_plan для PostgreSQL 15, реализация функционала для миграции сохраненных планов между БД
- доработки ядра по поводу 64-битного счетчика транзакций
- успешные эксперименты со сжатой файловой системой (аналог CFS от Postgres Pro)