title

text

Андрей Лепихов
Андрей Лепихов Postgres Professional Программист
15:00 01 марта
22 мин

Постгрессовый планнер с памятью

Постгрес умеет строить оптимальные планы запросов для большинства практических случаев. Однако иногда, по объективным причинам, для сложных запросов или из-за ошибок в самом планнере, он может ошибаться и выдавать неоптимальный план. Из-за этого, время выполнения такого запроса может возрастать в десятки раз. Если запрос выполняется часто, то из раза в раз этот запрос выполняется дольше, чем мог бы, и СУБД в целом выдает меньший TPS. Если планнер сможет фиксировать свои ошибки и учитывать их при последующем планировании того же запроса, то это позволит улучшать характеристики СУБД в процессе её эксплуатациии. Мы представляем результаты разработки расширения для СУБД PostgreSQL, которое хранит историю выполнения запросов и реализует рекомендательный механизм для планнера. Показываем, как знание о ранее выполнявшихся запросах позволяет улучшить выполнение последующих.

Материалы к докладу

Видео

Другие доклады

  • Andreas Scherbaum
    Andreas Scherbaum Pivotal Principal Software Engineer
    45 мин

    Управление PostgreSQL с помощью Ansible

    Ansible — открытый бесплатный инструмент для управления конфигурацией и развёртываниями, который можно применять для управления серверами и установленным на них программным обеспечением. В данном докладе мы вкратце обсудим сам Ansible, а затем объясним, как использовать его для установки и настройки PostgreSQL на сервере. Примеры будут демонстрироваться на протяжении всего доклада.

  • Егор Рогов
    Егор Рогов Postgres Professional эксперт
    45 мин

    Новое в учебных курсах Postgres Professional

    Образовательные проекты нашей компании создаются, чтобы помочь в изучении PostgreSQL. В прошлом году мы сосредоточились на курсах для прикладных разработчиков: обновили базовый курс DEV1 и выпустили совершенно новый курс DEV2. Что изменилось в нашем подходе к учебным материалам, как мы видим дальнейшее развитие курсов и есть ли у нас что-то кроме них, будут ли обновлены курсы для администраторов и как это отразится на сертификации – обо всем этом я и расскажу.

  • Андрей Фефелов
    Андрей Фефелов Mastery.pro Технический директор
    22 мин

    Как обфусцировать базу в Postgres для задач нагрузочного тестирования веб-приложений

    Postgres - отличная база данных для высоконагруженных веб-приложений. В свою очередь для таких веб-приложений периодически встает задача нагрузочного/стресс тестирования. Кроме очевидных сложностей: эмуляции рабочего окружения близкого к продуктовому и генерации трафика есть задача подготовки базы данных для тестового окружения. В эпоху борьбы за приватность персональных данных (152-ФЗ, GDPR, HIPAA) использование базы с прода выглядит плохой идеей. Выход один - обфусцировать данные.

    Существуют различные инструменты для обфускации данных в Postgres. В докладе я расскажу, какие из них мы выбрали и почему, с какими трудностями столкнулись во время использования, насколько удачно решили задачу.

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

  • Robert Bernier
    Robert Bernier Percona Старший консультант по PostgreSQL
    45 мин

    Продвинутые техники pg_upgrade

    На сегодняшний день утилита командной строки pg_upgrade является наиболее популярным инструментом для обновления между мажорными версиями Postgres. Однако помимо достоинств, у неё есть и известные проблемы. Одна из наиболее критичных: что делать, если произошёл сбой? Цель данного доклада - раскрыть те маленькие секреты, благодаря которым любой из слушателей сможет существенно улучшить процесс выполнения обновлений.

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

    Список подтем доклада приведён ниже:

    • Как работает pg_upgrade? Общая картина
    • О pg_upgrade (вызов из командной строки)

      • аргументы и опции

    • Пошаговое выполнение обновления
    • О репликации на основе РОЛИ

      • с атрибутом REPLICATION
      • с атрибутом LOGIN

    • Опции для обновления: копирование или жёсткие ссылки?
    • Что делать после обновления?

      • о производительности
      • об анализе
      • о команде REPACK
      • о переиндексации

    • Когда что-то идёт не так, и точка невозврата уже пройдена (пройдена ли?)
    • Обновляем РЕПЛИКУ
      • Метод по умолчанию: pg_basebackup
      • Продвинутый метод:
        • - используем rsync
        • предупреждение: закольцовка vacuum