Яндекс в качестве эксперимента в сервисе «Почта» провёл успешную замену одной из баз Oracle на свободную СУБД PostgreSQL для инструмента сборки электронной почты с других ящиков и продолжает работать в этом направлении.

При переходе на PostgreSQL в Яндексе натолкнулись на следующие проблемы:

  • выделили много памяти под shared_buffer, что привело к большим пикам ввода/вывода при Checkpoint;
  • много времени уделили оптимизации дисковой подсистемы;
  • в новой схеме шардинга использовали 32 логических шарда, что привело к мультипликации одного запроса в прокси до 32 запросов к шардам (т.к. сборщики одного пользователя могли храниться на разных шардах и могли быть показаны только при запросе с RUN ON ALL на все 32 шарда). Из-за частого запроса «показать все сборщики пользователя» происходило переполнение соединениями в прокси.

Также Владимир отмечает, что в PostgreSQL для целей компании не хватает ряда возможностей:

  • интерфейс ожиданий и трассировки сессии, как в Oracle;
  • возможность выделить для shared_buffer всю память и включить O_DIRECT, как в Oracle или MySQL;
  • нормальное партиционирование;
  • полусинхронная репликация;
  • параллелизм.

По итогу доклада отмечается, что опыт перехода в целом оказался положительным и компания уже задействует PosgreSQL в других своих проектах. 

Источник: www.nixp.ru