Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Осторожно, Pgpool! Игорь Буренков, Аурига, CEE-...

CEE-SECR
October 21, 2017

Осторожно, Pgpool! Игорь Буренков, Аурига, CEE-SECR 2017

Pgpool-II: Гладко было на бумаге…

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

Вы также узнаете, почему в итоге нам пришлось отказаться от использования Pgpool-II и какое решение было использовано вместо него. Доклад будет интересен архитекторам и разработчикам, которые планируют или уже имели опыт работы с pgpool-II либо аналогичным решением.

CEE-SECR

October 21, 2017
Tweet

More Decks by CEE-SECR

Other Decks in Technology

Transcript

  1. 2 5 + Y E A R S O F

    E N G I N E E R I N G L E A D E R S H I P Осторожно PGPOOL ОКТЯБРЬ 2017 Игорь Буренков 2 5 + Y E A R S O F E N G I N E E R I N G L E A D E R S H I P
  2. Требования › Производительность XX млн. запросов в сутки latency в

    пределах 100мс › Масштабирование и отказоустойчивость на уровне сервиса на уровне источника данных › PostgreSQL + PGPOOL
  3. Тестирование Что делали: › Jmeter 10threads › Отключение серверов ›

    VM, docker pause › Сетевые проблемы › Миграция VM между хостами Что мерили: ›время обработки запроса ›время на обработку в базе ›время на обработку запроса в коде
  4. Fail › Время на запрос в пределах 200..600мс › Ошибки

    в приложении при attach/detach PG в пуле › “Зависания” при attach/detach PG в пуле › Самопроизвольное “Выключение” PG из пула (failover) › Рассинхронизация состояний PGPOOL › Какой PGPOOL активен?
  5. Рассинхронизация и “Выключение” PG из пула Источник › Проблемы с

    подключением к PG › PGPOOL-II Failover Решение › Внешний сервис failback
  6. Ошибки и зависания при attach/detach PG Источник › Настройки PGPOOL

    Решение › Зависания при вводе/выводе › Ошибки при вводе › Ошибки при выводе
  7. Время обработки запроса Источник › Напрямую к базе в разы

    быстрее!!! › Настройки PG и пула ? Решение › Уменьшить количество запросов › Работать напрямую с PG
  8. PGPOOL II Итог › Медленно при большом количестве SQL запросов

    › Ошибки в приложении при выводе PG из пула Повтор запроса из приложения › Самопроизвольное “Выключение” PG из пула (failover) Внешний сервис › Рассинхронизация состояний PGPOOL-II Внешний сервис
  9. Proxy DataSource › Обращение напрямую к базе › Пул коннектов

    HikariCP › Полный контроль failover/failback › Управление пулом PG › Удаление и добавление PG ”на ходу”
  10. DataSource Failover/Failback › Random балансировка › Ловим ошибки java.sql.*Statement, java.sql.Connection

    › Реагируем только на SQLException с кодами кодами 08* HZ* или IOException › База отключается сразу, только при возникновении ошибки › Отключенные базы постоянно мониторятся на доступность
  11. Итог › Прямое обращение к PG без “прокладки” › Полный

    контроль над Failover/Failback › Экономия “железа” › Поддерживает любую базу если есть jdbc драйвер
  12. 2 5 + Y E A R S O F

    E N G I N E E R I N G L E A D E R S H I P Спасибо за внимание! Задавайте вопросы. Игорь Буренков [email protected]
  13. 2 5 + Y E A R S O F

    E N G I N E E R I N G L E A D E R S H I P АУРИГА ОФИС В БОСТОНЕ 400 TradeCenter Ste 5900 Woburn, MA 01801, USA Тел: +1 (866) 645-1119 Факс: + 1 (603) 386-6097 ОФИС В ЕВРОПЕ Ukmergės g. 322, LT- 12106, Vilnius, Lithuania Тел: +370 (5) 203-1571 Факс: +370 (5) 203-1573 [email protected] www.auriga.ru ОФИС В РОССИИ 117587, Россия, г. Москва, Варшавское ш., д. 125, стр. 16А Тел: +7 (495) 713-9900 Факс: +7 (495) 939-0300