Яндекс в качестве эксперимента в сервисе «Почта» провёл успешную замену одной из баз Oracle на свободную СУБД PostgreSQL для инструмента сборки электронной почты с других ящиков и продолжает работать в этом направлении.
При переходе на PostgreSQL в Яндексе натолкнулись на следующие проблемы:
- выделили много памяти под shared_buffer, что привело к большим пикам ввода/вывода при Checkpoint;
- много времени уделили оптимизации дисковой подсистемы;
- в новой схеме шардинга использовали 32 логических шарда, что привело к мультипликации одного запроса в прокси до 32 запросов к шардам (т.к. сборщики одного пользователя могли храниться на разных шардах и могли быть показаны только при запросе с RUN ON ALL на все 32 шарда). Из-за частого запроса «показать все сборщики пользователя» происходило переполнение соединениями в прокси.
Также Владимир отмечает, что в PostgreSQL для целей компании не хватает ряда возможностей:
- интерфейс ожиданий и трассировки сессии, как в Oracle;
- возможность выделить для shared_buffer всю память и включить O_DIRECT, как в Oracle или MySQL;
- нормальное партиционирование;
- полусинхронная репликация;
- параллелизм.
По итогу доклада отмечается, что опыт перехода в целом оказался положительным и компания уже задействует PosgreSQL в других своих проектах.
Источник: www.nixp.ru