Курс «Hacking PostgreSQL»
Курс «Hacking PostgreSQL» был подготовлен и прочитан разработчиками нашей компании. Курс состоит из нескольких занятий, на которых исследуются особенности архитектуры и внутреннего устройства PostgreSQL . Курс проводился в феврале - мае 2016 г.
Курс собран из личного опыта разработчиков нашей компании, материалов с конференций, статей и вдумчивого чтения документации и исходников. В первую очередь он адресован начинающим разработчикам ядра PostgreSQL. Но он будет интересен и DBA, которым иногда приходится влезать в код, и просто всем неравнодушным к архитектуре большой системы, желающим узнать “А как это работает на самом деле?”.
Программа курса
1. Обзор архитектурыПервая лекция призвана дать общее представление о подсистемах PostgreSQL и их связи, а также кратко определить термины, которые мы будем использовать в следующих лекциях. | видеозапись лекции |
2. Сообщество PostgreSQL и инструменты разработчикаЛирическое отступление о том, как устроено сообщество PostgreSQL, как координируется международная разработка, какие шаги нужно пройти, чтобы ваш патч приняли, и некоторые полезные мелочи, которые пригодятся начинающему разработчику ядра. А также обзор инструментов, которыми нужно уметь пользоваться. | видеозапись лекции |
3. РасширяемостьВ третьей лекции пошагово разобрано создание своего расширения (contrib). Это самый простой и естественный способ приобщиться к разработке и добавить в PostgreSQL новую функциональность. Кроме этого, будет рассмотрена внутренняя расширяемость постгреса на примере добавления нового типа данных. | видеозапись лекции |
4. Обзор исходного кодаВ этой лекции мы проследим путь выполнения различных запросов от получения текста запроса до выдачи результата. | видеозапись лекции |
5. Физическое представление данныхПосле этой лекции вы будете знать, как уложены атрибуты в строке, строки на странице, страницы в таблице, а таблицы в базе. А также то, как Postgres справляется с выравниванием данных и хранением больших атрибутов. Это поможет увидеть некоторые ограничения архитектуры и понять (а может и придумать новые) приемы проектирования оптимальной схемы БД. | видеозапись лекции |
6. Разделяемая память и блокировкиИз этой лекции вы узнаете, как устроен менеджер памяти в PostgreSQL, сколько разных видов блокировок используется, чтобы параллельные транзакции работали правильно, и что на самом деле меняют настройки памяти в postgresql.conf. | видеозапись лекции |
7. Локальная память процессовНа этой лекции было рассказано об устройстве памяти в PostgreSQL. Локальная память процессов используется для кэширования данных каталога и планов запросов, для выполнения сортировок, для работы некоторых служебных процессов, а также для размещения временных таблиц. | видеозапись лекции |
8. Базовое устройство планировщика и экзекьютора запросовЭтот семинар провели Юрий Журавлев и Дмитрий Иванов. Лекция была посвящена планировщику и экзекьютору СУБД PostgreSQL. Докладчики сопровождали объяснение примерами кода и поясняющими картинками | видеозапись лекции |
Подробнее о курсе «Hacking PostgreSQL» читатйте в нашем блоге на Habrahabr.ru - http://habrahabr.ru/company/postgrespro/blog/273623/
Видеозапись прошедших занятий: