Общий объем – 10 занятий по 2-3 ак.часа по 45 минут
Старт – 14 сентября 2024 года
Даты и время – суббота, воскресенье в 10:00 по МСК
Формат занятий – вебинары на платформе Яндекс.Телемост
Среда для обучения: PostgreSQL 16 на ВМ Ubuntu 24.04
Все занятия и материалы будут доступны в записи
В версии 3.0 добавлена новая практика и дополнительные исследования, новые подходы к проектированию, data corruption, idle in transaction, chaos engineering и многое другое
Материалы прошлого запуска 2.1 (май-июнь 2024, 28 ак.часов) можно заказать отдельно
Заказать материалы или записаться на курс
Количество мест на курсе ограничено
Автор – Архитектор с 25+ опытом на хайлоад проектах (100+ Тб, 1 млн+ TPS)
Цель курса – освоение лучших практик, которые позволят ускорить существующие решения, минимизировать простои и избежать граблей:
- Практический курс уникален для России и мира, предназначен для ДБА, архитекторов, девопсов
- Построен только на актуальных кейсах по реальным задачам, без воды
- Экономит время и ресурсы как для текущих проектов, так и для модернизации существующих
- Позволить ускорить поиск проблемных мест. Все собрано в одном месте с учетом экспертизы
- Увеличивает быстродействие баз данных как Постгреса, так и остальных субд
- Позволяет осознанно подходить к проектированию больших баз данных, изменению схемы данных
- Оптимизирует планирование ресурсов для новых БД за счёт подробных инструкций, позволяет прогнозировать будущие проблемы
- Бест практис, чеклисты и антипаттерны к каждой лекции
- Сотни примеров по подходам к траблшутину БД
- По желанию домашние задания идут к каждой лекции
Состав лекций:
1. Первичная настройка ОС и PostgreSQL
- проблематика
- первоначальная конфигурация ВМ, ОС и PostgreSQL
- особенности бенчмарков
- варианты измерения производительности
- архитектура уникальной авторской БД по Тайским перевозкам
- генерация и варианты использования от 6 до 600 млн. записей
- работа на стенде
- неочевидный count
2. Коннектинг к PostgreSQL. Права пользователя
- проблематика
- на что стоит обратить внимание при работе с сетью
- docker caveats
- best practice по обмену данными
- варианты connection pooling
- варианты балансировщиков
- архитектуры построения отказоустойчивых соединений
- тестирование производительности пулконнекторов
- pgbouncer vs odyssey
- нюансы при работе с правами пользователя
3. Настройка файловой системы
- проблематика
- табличные пространства
- toast и сжатие данных
- типы технологий хранения
- типы файловых систем
- контрольные суммы добро или зло
- 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. Оптимизация схемы данных
- что и почему нужно оптимизировать
- как обновить схему данных и избежать проблем
- добавление колонки, когда миллионы строк – паттерны
- виртуальные колонки
- индексы как серебряная пуля. или нет?
- HypoPG
- типичные ошибки при изменении схемы данных
- использование колоночного хранения
- timescale db
- варианты использования postgres_fdw для ускорения работы
- проблемы миграции
- рассматриваем реальные кейсы на стенде
9. Оптимизация запросов
- проблематика
- пути оптимизации
- возможные ошибки
- анализ запросов – определяем узкие места
- pg_hintplan
- использование IN & EXISTS
- prepared statements
- принцип работы СТЕ и причины его использования
- 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
Добавить комментарий