Общий объем – 10 занятий по 2-3+ ак.часа по 45 минут
Старт – 28 января 2025 года
Даты и время – суббота, воскресенье в 10:00 по МСК
Формат занятий – вебинары на платформе Яндекс.Телемост
Среда для обучения: PostgreSQL 17 на ВМ Ubuntu 24.04
Возможно получить курс заочно в записи со скидкой, если нет времени посещать занятия в указанное время
Все занятия и материалы будут доступны в записи
В версии 3.1 добавлена новая практика (уже на 17 PostgreSQL) и дополнительные исследования, рассматриваются новые пулеры odyssey vs pgagroal, на что можно заменить fsync, киллер фичи синхронного коммита, новые подходы к проектированию (более 5 новых пунктов только в занятии по оптимизации схемы данных), parameter sniffing caveat и многое другое
Материалы прошлого запуска 3.0 (сентябрь-октябрь 2024, 30+ ак.часов) можно заказать отдельно
Заказать материалы или записаться на курс
Количество мест на курсе ограничено
Автор – Архитектор с 25+ опытом на хайлоад проектах (100+ Тб, 1 млн+ TPS)
Цель курса – освоение лучших практик , которые позволят ускорить существующие решения, минимизировать простои и избежать граблей:
- Практический курс уникален для России и мира, предназначен для ДБА, архитекторов, девопсов
- Каждое занятие включает тестирование примеров на стендах
- Построен только на актуальных кейсах по реальным задачам, без воды
- Экономит время и ресурсы как для текущих проектов, так и для модернизации существующих
- Позволить ускорить поиск проблемных мест. Все собрано в одном месте с учетом экспертизы
- Увеличивает быстродействие баз данных как Постгреса, так и остальных субд
- Позволяет осознанно подходить к проектированию больших баз данных, изменению схемы данных
- Оптимизирует планирование ресурсов для новых БД за счёт подробных инструкций, позволяет прогнозировать будущие проблемы
- Бест практис, чеклисты и антипаттерны к каждой лекции
- Сотни примеров по подходам к траблшутину БД
- По желанию домашние задания идут к каждой лекции
Состав лекций:
1. Первичная настройка ОС и PostgreSQL
- проблематика
- первоначальная конфигурация ВМ, ОС и PostgreSQL
- особенности бенчмарков
- варианты измерения производительности
- архитектура уникальной авторской БД по Тайским перевозкам
- генерация и варианты использования от 6 до 600 млн. записей
- неочевидный count
2. Коннектинг к PostgreSQL. Права пользователя
- проблематика
- на что стоит обратить внимание при работе с сетью
- docker caveats
- best practice по обмену данными
- варианты connection pooling
- варианты балансировщиков
- архитектуры построения отказоустойчивых соединений
- тестирование производительности пулконнекторов
- pgbouncer vs odyssey vs pgagroal
- нюансы при работе с правами пользователя
3. Настройка файловой системы
- проблематика
- табличные пространства
- toast и сжатие данных
- json vs jsonb – что с ними не так?
- типы технологий хранения
- типы файловых систем
- fsync – быстро ли это? и какие есть варианты
- trim for SSD
- контрольные суммы добро или зло
- data corruption
- шифрование данных
- журналы транзакций – варианты тюнинга
- каталог со статистикой – пути оптимизации
- pg_class и связанные с ним проблемы
- batch insert/update
- unlogged table – киллер фича?
4. Настройка бэкапов и репликации
- проблематика
- варианты настройки бэкапов и тестирование производительности
- преимущества Data Domain
- варианты физической конфигурации
- пять уровней синхронного коммита
- варианты логической конфигурации
- мастер мастер репликация – киллер фича?
- подключаемся репликой к DBaaS primary
- PITR
5. Мониторинг, профилирование и логирование
- варианты мониторинга
- список основных параметров для мониторинга и причины
- особенности профилирования
- особенности логирования
- инструменты анализа исторической нагрузки
- pg_stat*
- auto_explain
- autovacumm_worker max load
- audit
6. Тюнинг shared_buffers, background writer, checkpoint, WAL
- проблематика
- особенности работы MVCC PostgreSQL
- буферный кеш – всё ли так очевидно?
- принцип работы и тюнинг background writer
- checkpoint, влияние на производительность и варианты тюнинга
- восстановление после сбоев
- pg_prewarm
- WAL под капотом
- контрольные суммы зло или нет?
- движок OrioleDB
7. Особенности работы Vacuum, work_mem, statistic collector, locks
- проблематика
- принцип работы и тюнинг vacuum/autovacuum
- vacuum on long transaction
- Transaction ID wraparound
- HOT Update
- особенности выделения памяти при работы c work_mem и связанные с эти caveats
- особенности работы со статистикой
- блокировки, что с ними не так?
- deadlock норма или ошибка архитектора?
- idle, idle in transaction – насколько плохо?
8. Оптимизация схемы данных
- что и почему нужно оптимизировать
- как обновить схему данных и избежать проблем
- добавление колонки, когда миллионы строк – паттерны
- soft delete caveats
- секционирование – киллер фича?
- виртуальные колонки
- использование предагрегатов mat.view vs triggers
- индексы как серебряная пуля. или нет?
- HypoPG
- int VS bigint
- caveat порядка колонок
- типичные ошибки при изменении схемы данных
- использование колоночного хранения
- timescale db
- варианты использования postgres_fdw для ускорения работы
- проблемы миграции
9. Оптимизация запросов
- проблематика
- пути оптимизации
- возможные ошибки
- анализ запросов – определяем узкие места
- pg_hintplan
- GEQO – генетический оптимизатор
- использование IN & EXISTS & ANY
- prepared statements
- parameter sniffing caveat
- принцип работы СТЕ и причины его использования
- best practice & caveats
10. Обслуживание СУБД. Работа на стенде
- причины обслуживания СУБД
- отличие явного от неявного коммита
- обновление мажорной версии
- freeze
- stat
- index, redindex, concurrently
- materialized view refresh, concurrently
- pg_repack vs pgcompacttable vs pg_squeeze
- особенности выгрузки данных для дев стенда
- security
- debug && trace stored procedure
- STONITH && chaos engeneering
- стенд с проблемами производительности и чеклист, что нужно проверить. Оптимизируем работу
Каждая лекция сопровождается обширнейшей практикой на стендах для глубокого разбора той или иной проблемы.
После завершения курса будет предоставлено электронное свидетельство о прохождении курса. Пример https://aristov.tech/certs/AristovEvgeniy.pdf
Добавить комментарий