Над пропастью WAL-G
Что мы ожидаем от системы резервного копирования? Что отличает хорошую систему бэкапов? И самое главное - как выбрать для этого процесса подходящие инструменты? При подготовке резервных копий возникает немало насущных вопросов.
В докладе я расскажу историю построения системы снятия и верификации бэкапов в отдельно взятой компании. Обсудим вопросы выбора инструмента по работе с резервными копиями, адаптации к изменяющимся реалиям, проблемы облачных хранилищ и безграничные возможности open-source коллаборации.
Приглашаю вас в увлекательное путешествие длиной 2 года.
Видео
Другие доклады
-
Дарья Вилкова Postgres Professional младший инженер баз данных
Обзор новой функциональности и настройка Zabbix Agent 2 для мониторинга PostgreSQL
В версии Zabbix Server 5.0.1 для Zabbix Agent 2 стал доступен плагин мониторинга PostgreSQL. Он был разработан компанией Postgres Professional совместно с Zabbix. В презентации будет рассказано о принципе работы плагина, вариантах его настройки, а также о возможности добавления кастомных метрик.
-
Михаил Цветков Intel Технический директор
Технологии Intel для PostgreSQL
Расскажем о продуктах и решениях Intel для сегмента Data Platform Group: серверных процессорах Xeon 3rd Gen (4S Cooper Lake), памяти PMEm 200 Series, и FPGA.
-
Павел Борисов Postgres Professional программист
Ускорение быстрого текстового поиска с помощью индекса RUM
Быстрый текстовый поиск в PostgreSQL существенно ускоряется, если использовать обратные составные индексы по лексемам внутри типа tsvector. Индекс RUM - это свободное расширение, основанное на индексе GIN. Оно индексирует не только лексемы, но и их положение в текстовом поле, а также включает дополнительную информацию - вес лексемы, это позволяет полнее поддерживать возможности tsvector.
До недавних пор запросы с весами лексем в индексе RUM требовали перепроверки по таблице. Моя модификация (2020) в разы ускоряет такие запросы, делая их index-only.
В докладе будут представлены различные сценарии использования быстрого текстового поиска и применение индекса RUM для его существенного ускорения, а также бенчмарки по сравнению с встроенным в PostgreSQL индексом GIN.
-
Yugo Nagata SRA OSS, Inc. Japan Chief Scientist
Автоматическое инкрементальное обновление материализованных представлений
Материализованное представление служит для хранения результатов запросов определения представления в БД, чтобы добиться более быстрого ответа на запрос. Однако данные в представлении устаревают после изменения базовых таблиц. Следовательно, для поддержания актуальности содержимого необходимо обновлять представление. В PostgreSQL есть команда REFRESH MATERIALIZED VIEW для обновления материализованного представления, но эта команда вычисляет его содержимое с нуля, что неэффективно в случаях, когда изменяется только небольшая часть базовой таблицы.
Инкрементальное обновление представлений (IVM) - это метод эффективного обновления материализованных представлений, который вычисляет и применяет к материализованным представлениям только инкрементальные изменения вместо повторного вычисления. Эта функциональность требуется для быстрого обновления материализованных представлений, но еще не реализована в PostgreSQL.
Поэтому мы разработали IVM для PostgreSQL и предлагаем реализовать его в качестве основной функции. Патч сейчас обсуждается в списке рассылки hackers. Наша реализация делает возможным автоматическое инкрементальное обновление материализованных представлений при изменении базовой таблицы. Вам не нужно писать собственную триггерную процедуру для обновления представлений. После продолжительной работы нашей команды текущая реализация IVM поддерживает некоторые возможности аггрегации, подзапросы, соединение одной таблицы (self-join), внешние соединения (outer join) и CTE (предложения WITH) в запросе определения представления. Результат оценки производительности с использованием запросов TPC-H показывает, что наша реализация IVM может обновлять материализованное представление в 200+ раз быстрее, чем повторное вычисление с помощью команды REFRESH.
В данном докладе мы опишем нашу реализацию IVM и ее возможности.