Доработки в ядре СУБД PostgreSQL и разработка расширений в рамках импортозамещения и перехода с MS SQL Server. Важные доработки в планировщике, оптимизация кеширования запросов, шардирование.
Чистый C, PostgreSQL.

Q.DataBase.


Профит для компании

  • мои доработки ядра являются критически важными для всей компании, без них миграция продуктов на 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)