title

text

Eren Basak
Eren Basak Citus Data Software Development Engineer
12:15 07 февраля
45 мин

Использование PITR в распределенных cистемах на базе PostgreSQL

В Postgres есть возможность восстановления данных на момент времени (PITR), которая позволяет нам "отправляться" в прошлое. В этом докладе мы обсудим, какие существуют основные сценарии использования этой функциональности, как подготовить базу данных к восстановлению на момент времени, настроив хорошую систему бэкапов и транcляции WAL-файлов, а также рассмотрим конкретные примеры. Мы подробнее остановимся на том, как применять PITR на распределенных системах и кластерах с шардингом, затронув типичные проблемы подобных конфигураций, такие как разница во времени, и предложим возможные способы их решения - например, двухфазный коммит и pg_create_restore_point.

Слайды

Видео

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

  • Константин Книжник
    Константин Книжник Postgres Professional Ведущий разработчик
    45 мин

    VOPS: Векторное расширение Постгреса

    СУБД Постгрес успешно используется во многих OLTP приложениях, выполняющих большое число простых запросов. Но для аналитики, требующей обработки большого количества данных, Постгрес на порядки отстаёт от специализированных СУБД, оптимизированных для массовой обработки данных. Скорость работы Постгреса для OLAP запросов сдерживается следующими факторами:

    • Большие накладные расходы на распаковку записей.
    • Затраты на интерпретацию запроса (Постгрес интерпретирует план выполнения запроса)
    • Поддержка работы с абстрактными типами
    • Недостатки PULL модели выполнения запроса
    • Издержки MVCC

    Все эти проблемы могут быть в большой степени решены за счёт использования векторного исполнителя запросов, который за одну операцию в состоянии обработать целый блок (вектор) значений. В этом докладе описывается способ добавления векторных операций в Посгрес, с помощью стандартного механизма расширения Посгреса, без внесения изменений в ядро. Такие механизмы Посгреса как UDT (определяемые пользователем типы), FDW (абстракция внешнего поставщика данных), расширения исполнителя запросов позволяют реализовать в Постгресе вертикальный таблицы, с которыми можно работать как с обычными таблицами. Но на порядки быстрее благодаря использованию векторных операций.

  • Максим Милютин
    Максим Милютин Wildberries Разработчик/DBA
    Дмитрий Иванов
    Дмитрий Иванов Postgres Professional Developer
    45 мин

    Встроенное партицирование в постгресе и сторонние решения

    В 10-й версии постгреса появилось встроенное партицирование таблиц. Однако ставить точку на развитии этого функционала, начало работы над которым ведётся с августа 2015 года, пока рано. В новом 11-ом релизе ведутся несколько параллельных работ по преодолению ограничений встроенного партицирования (update ключа партицирования, вставка в foreign партиции, локальные и глобальные индексы) и внедрение оптимизаций (runtime partition pruning, parallel append нода и partition-wise aggregation/grouping), которые восполнят многолетний пробел в этой области.

    Помимо этого получили развитие сторонние решения для партицирования таблиц - pg_pathman и timescaledb, каждый из которых предоставляет свои дополнительные возможности, отсутствующие в ваниле.

    В своём доклады мы постараемся рассказать про возможности каждого из решений, обрисовать нишу, сделав упор на разрабатываемые фичи в ванильном постгресе.

  • Антон Дорошкевич
    Антон Дорошкевич Инфософт Руководитель отдела ИТ
    45 мин

    1С-Батл. PostgreSQL vs MS SQL

    Сравнение возможностей PostgreSQL и MS SQL для работы с 1С. Что даёт pg_restore для 1С-ника. Результаты нагрузочного тестирования "Восстановления последовательности партионного учёта" на базе 1С размером более 1 ТБ. 2 года, 500+ баз 1С, 4ТБ данных, Каскадная репликация - История одного Production 1C

  • Константин Евтеев
    Константин Евтеев X5 FoodTech Главный архитектор
    Михаил Тюрин
    Михаил Тюрин ИТ предприниматель предприниматель
    45 мин

    Кейсы использования логической репликации для восстановления данных в PostgreSQL 10

    В Avito объявления хранятся в базах данных PostgreSQL. При этом уже на протяжении многих лет активно применяется логическая репликация. С помощью неё успешно решаются вопросы роста объема данных и количества запросов к ним, масштабирования и распределения нагрузки, доставки данных в DWH и поисковые подсистемы, межбазные и межсервисные синхронизации данных и пр.

    Но ничего не бывает "бесплатно" - на выходе мы имеем сложную распределенную систему. Отказы оборудования - это норма, к ним нужно быть готовым. Можно найти много примеров конфигурации логической репликации и success stories ее использования, при этом практических примеров по восстановлению после аварий почти нет, не говоря уже про готовые инструменты. За годы эксплуатации репликации PgQ мы наработали обширный опыт, многое переосмыслили, реализовали собственные надстройки и расширения для восстановления и согласования данных после аварий в распределенных системах обработки данных.

    В докладе мы покажем, как наш опыт можно переложить на новую подсистему логической репликации в 10-ке. В текущей реализации это нетривиальные решения – остается ряд вопросов для комьюнити, сводящихся к реализации простых механизмов восстановления - таких же простых как и настройка репликации в 10-ке.