Темпоральные типы и их использование
Я пересмотрел за жизнь много всякого кода, и очень часто встречал некоторый разнобой в обработке дат и времени: то у сторон не сходились отчеты за месяц, то суточные отчеты получались разные в Москве и Сан-Франциско, то еще чего-нибудь в таком же роде. Это не сказать чтобы сильно страшно, но довольно утомительно. Причина такого рода проблем всегда была связана с неаккуратной обработкой дат и времени. Тому, как этого можно постараться избежать, и посвящен мой доклад.
Слайды
Видео
Другие доклады
-
Игорь Косенков Postgres Professional Инженер
КУК без потерь
Катастрофоустойчивый кластер (КУК) подразумевает небольшую потерю данных при катастрофе основного Дата-центра (ДЦ) и переключении на резервный. Это обусловлено асинхронной репликацией между основным и резервным ДЦ. Но есть решение, которое позволит исправить эту ситуацию - обеспечить нулевую потерю данных при катастрофе основного ДЦ. Об этом решении и пойдет речь в моем докладе.
-
ДДенис Волков Яндекс Разработчик
SPQR - легковесное шардирование
Stateless Postgres Query Router - новая система для роутинга запросов по диапазоном. Система написана на Go и стремится решить проблемы OLTP шардирования. Также система предполагает управление перемещением данных между шардами.
-
Александр Кукушкин Zalando SE Database Engineer
Как Patroni решает проблему потери слотов логической репликации?
Более семи лет назад вышел PostgreSQL 9.4, в котором впервые появились функции логического декодирования и слоты репликации. И, спустя несколько лет, на базе этих функций в PostgreSQL 10 наконец то появилась поддержка логической репликации встроенная в ядро. Казалось бы, наступило солнечное будущее к которому мы так долго шли, если бы не пара неприятных моментов: логическая репликация не работает на репликах, плюс в PostgreSQL нет механизмов создания логических слотов на реплике. Это означает что при переключении мастера на новый узел слоты репликации теряются и на практике делает невозможным использование логической репликации и CDC для серьезных промышленных решений.
Postgres-hackers уже много лет пытаются найти решение данной задачи, но к сожалению большинство попыток и горяих дискуссий в рассылке не привели ни к чему конкретному. Но, оказывается в PostgreSQL 11 была добавлена одна маленькая функция, которая позволила решить проблему потери слотов логической репликации с помощью внешних инструментов.
В докладе я расскажу как Patroni решает данную проблему используя исключительно на возможности PostgreSQL. Мы поговорим о плюсах и минусах данного решения, и попытаемся понять безопасно ли это немного погрузившись во внутренности Postgres.
-
Павел Толмачев Postgres Professional Специалист образовательного отдела
Коллапс в планах запросов. Достигаем и управляем
Чем больше таблиц участвует в запросе, тем сложнее планировщику выбрать подходящий план выполнения (увеличивается время и используемая память). Как бы подсказать планировщику, что лучше эту пару таблиц соединить первой, а остальные - потом? Как поступить, если видно, что часть запроса можно улучшить, но оптимизатор этого не делает? В докладе я расскажу про управление порядком соединений - вы узнаете, как можно повлиять на формирование плана запроса стандартными способами "ванильного" PostgreSQL.