title

text

Александр Кукушкин
Александр Кукушкин Zalando SE Database Engineer
18:00 20 июня
45 мин

Как Patroni решает проблему потери слотов логической репликации?

Более семи лет назад вышел PostgreSQL 9.4, в котором впервые появились функции логического декодирования и слоты репликации. И, спустя несколько лет, на базе этих функций в PostgreSQL 10 наконец то появилась поддержка логической репликации встроенная в ядро. Казалось бы, наступило солнечное будущее к которому мы так долго шли, если бы не пара неприятных моментов: логическая репликация не работает на репликах, плюс в PostgreSQL нет механизмов создания логических слотов на реплике. Это означает что при переключении мастера на новый узел слоты репликации теряются и на практике делает невозможным использование логической репликации и CDC для серьезных промышленных решений.

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

В докладе я расскажу как Patroni решает данную проблему используя исключительно на возможности PostgreSQL. Мы поговорим о плюсах и минусах данного решения, и попытаемся понять безопасно ли это немного погрузившись во внутренности Postgres.

Видео

Видео доступно участникам мероприятия, выполнившим вход в личный кабинет

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

  • Алексей Борщев
    Алексей Борщев Postgres Professional Инженер
    22 мин

    NULLs в Postgres

    Доклад посвящён реализации специального значения NULL в бд PostgreSQL: * Что такое NULL? * Как он обрабатывается различными функциями? * Как хранится в БД? * Индексирование NULL

  • Андрей Зеленский
    Андрей Зеленский Береста РК ведущий специалист
    22 мин

    Методы силового бэкапа крупных СУБД Postgres Pro

    Объемы хранимых данных в БД под управлением Postgres Pro стремительно растут. В некоторых организациях объемы БД уже превышают десятки TB. Использование существующих подходов к резервному копированию не позволяет обеспечить своевременное резервирование и восстановление данных. Мы дополнили хорошо известные и проверенные средства бэкапа Postgres Pro функционалом, который позволит обеспечивать бэкап и восстановление крупных БД, дополнительно мы позаботились об удобстве для администраторов.

  • Алексей Фадеев
    Алексей Фадеев Sibedge Старший разработчик .NET, евангелист Postgres.
    22 мин

    Сборка plv8: от архива с бинарниками до компактного докер-образа

    Расширение plv8 очень недооценено, хотя оно позволяет значительно упростить разработку для ряда задач. Уже год как мы используем его в наших проектах. Но главная причина низкой популярности – сложность сборки расширения, к тому же требующей много трафика и места на диске для временных файлов. Поэтому мы решили собирать plv8 сами и поставлять готовые бинарники (не только поставлять нашим заказчикам, а вообще выложить в открытый доступ). Сначала просто выложили бинарные файлы на github. Потом сделали докер-образ Postgres с уже установленным plv8 на основе Debian. Образ получился тяжеловатым, поэтому стали смотреть в сторону alpine, но сборка под alpine оказалась сложнее, чем мы предполагали. Я расскажу, с какими трудностями мы столкнулись и как их преодолели. Так же кратко расскажу, для каких задач хорошо подходит plv8 и как сделать процесс разработки удобнее. И, конечно, поделюсь ссылками на наши докер-образы для последних версий Postgres 13 и 14, действительно компактные и открытые для любого использования.

  • Вадим Яценко
    Вадим Яценко Tantor Lab Генеральный директор
    45 мин

    Autovacuum. Вредные советы

    В архитектуре PostgreSQL есть ряд особенностей, которые стоит учитывать не только при эксплуатации БД, но и в процессе проектирования схемы данных. Опытным пользователям PostgreSQL хорошо известен такой механизм как очистка/заморозка(vacuum). На просторах интернета есть большое количество материалов на тему внутреннего устройства, настройки и мониторинга. Множество полезных докладов было сделано на конференциях. Тем не менее, все еще происходят случаи переполнения счетчика транзакций(xid), казалось бы, в достаточно небольших БД. В этом докладе я расскажу об одном интересном, на мой взгляд, случае у нашего клиента. Поделюсь тем, как череда ошибок на разных этапах жизненного цикла БД, однажды привела к ее полной остановке более чем на неделю, wraparound-у, битым блокам, проблемам с обслуживанием и бессонным ночам в поисках решения. Локальная победа была достигнута - БД удалось восстановить, но история еще не закончена. Тем она и интересна.