Давайте отключим vacuum?!
Такой призыв часто возникает, когда в PostgreSQL возникают проблемы, и главным подозреваемым оказывается vacuum. По опыту, многие наступают на эти грабли, и мне с коллегам по Data Egret нередко приходится разгребать последствия, так как потом всё становится ещё хуже. Но если обратить внимание на сам vacuum, то, пожалуй, нет такого человека, который бы использовал Postgres, и при этом ничего не знал про вакуум. Ведь история вакуума начинается относительно давно, и в интернете можно найти массу как старых, так и новых постов про вакуум, объемные дискуссии в списках рассылки. Несмотря на то, что тема вакуума подробно описана в официальной документации к PostgreSQL, новые посты и новые дискуссии будут появляться и дальше. Возможно, поэтому с вакуумом связано очень много мифов, баек, страшилок и заблуждений. Между тем, вакуум является одним из важнейших компонентов PostgreSQL, и его работа напрямую сказывается на производительности. В одном докладе невозможно рассказать про вакуум абсолютно всё, но я бы хотел раскрыть ключевые моменты, связанные с вакуумом, такие как его внутреннее устройство, основные подходы к его настройке, наблюдение за производительностью, мониторинг, и что делать в случае, когда вакуум - главный подозреваемый во всех бедах. Ну и, конечно же, хочется развеять распространенные мифы и заблуждения, связанные с вакуумом.
Слайды
Видео
Другие доклады
-
Дмитрий Шитов ООО "ЦТП" специалист
Хроники 1Сников: миграция с Windows+1С+PostgreSQL на Linux+1C+PostgreSQL
Во что может вылиться желание не платить за винду 1С-нику? Есть ли жизнь без COM-а (консоли сервера 1С нет, но есть RAS; ODBC из 1С как вызывать)? Гарем постгресов, адресация и нюансы. i9-7900x и Linux, жизнь без turboboost 3. Планирование дисковых ресурсов. Как побороли падения OC CentOS.
-
Алексей Клюкин Zalando SE Database EngineerАлександр Кукушкин Zalando SE Database Engineer
Мастер-класс: Управление высокодоступными PostgreSQL кластерами с помощью Patroni
Patroni - это Python-приложение для создания высокодоступных PostgreSQL кластеров на основе потоковой репликации. Оно используется такими компаниями как Red Hat, IBM Compose, Zalando и многими другими. С его помощью можно преобразовать систему из ведущего и ведомых узлов (primary - replica) в высокодоступный кластер с поддержкой автоматического контролируемого (switchover) и аварийного (failover) переключения. Patroni позволяет легко добавлять новые реплики в существующий кластер, поддерживает динамическое изменение конфигурации PostgreSQL одновременно на всех узлах кластера и множество других возможностей, таких как синхронная репликация, настраиваемые действия при переключении узлов, REST API, возможность запуска пользовательских команд для создания реплики вместо pg_basebackup, взаимодействие с Kubernetes и т.д.
Слушатели мастер-класса подробно узнают, как работает Patroni, получат практические навыки настройки высокодоступных кластеров на его основе, познакомятся с различными дополнительными возможностями и поучаствуют в диагностике проблем. Будут рассмотрены следующие темы:
- область применения: какие задачи HA успешно решаются Patroni
- обзор архитектуры
- создание тестового кластера
- утилита patronictl
- изменение конфигурации PostgreSQL для кластера, управляемого Patroni
- мониторинг с помощью API
- подходы к переключению клиентов
- дополнительные возможности: ручное переключение, перезагрузка по расписанию, режим паузы
- настройка синхронной репликации
- расширяемость и универсальность
- частые ошибки и их диагностика
Для полного участия в мастер-классе вам понадобится ноутбук с установленным git, vagrant и virtual box.
Vagrant можно загрузить со страницы https://www.vagrantup.com или установить с помощью пакетов в вашем дистрибутиве. Virtualbox: https://www.vagrantup.com
После установки Vagrant и Virtualbox нужно выполнить:
$ git clone https://github.com/alexeyklyukin/patroni-training $ cd patroni-training $ vagrant up
После того, как patroni box поднимется и установит необходимые пакеты к нему можно подключиться с помощью vagrant ssh.
-
Анатолий Солдатов Компания - ЗАО ЛАНИТ Старший разработчик баз данных
Как деплоить в 5 раз быстрее или рассказ о нашей реализации параллельного выполнения миграций в Liquibase
Liquibase - очень удобный инструмент последовательных миграций баз данных, используемый как на наших проектах, так и в большом числе других проектов и фреймворков. Он позволяет держать код базы вместе с кодом приложения в VSC, отслеживать попытки повторных миграций и много-много чего еще. Но рано или поздно проект вырастает, данные занимают терабайты, а liquibase все еще накатывает миграции последовательно.
Мы не смогли позволить себе деплоиться по 100 часов и придумали тулзу (фреймворк) для liquibase, которая расширяет его возможности и позволяет выполнять паралллельно целый ряд скриптов или разбивать одну большую миграцию на маленькие партиции и параллельно мигрировать их.
-
Александр Коротков Postgres Professional Руководитель разработки
Credereum – Postgres с поддержкой блокчейн
Соединяем доказуемость и неизменяемость блокчейна с производительностью и эффективностью традиционных СУБД.
Технология блокчейн имеет ряд уникальных свойств, среди которых есть доказуемость и неизменямость. Каждая транзакция в блокчейне имеет цифровую подпись своего автора, которая может быть проверена любым участником сети. Кроме этого, однажды попавшие в блокчейн данные уже не могут быть изменены в дальнейшем. Тем не менее, для большинства современных информационных систем запись всех данных в публиный блокчейн оказалась бы слишком дорогой.
Credereum – это платформа, которая позволяет создавать и поддерживать базы данных, содержимое и история которых доказуемы и неизменяемы, без принесения в жертву производительности и эффективности традиционных СУБД. Благодаря Credereum владелец базы данных может доказывать корректность результатов запроса, а пользователи могут их проверять. Владельцу базы данных не обязательно раскрывать всё содержимое базы данных или всю историю транзакций для того, чтобы доказывать корректность результатов отдельного запроса к базе данных. Таким образом, база данных Credereum подходит и для хранения приватной информации. Credereum использует передовые технологии, такие как децентрализованное облако и блокчейн с шардингом. Credereum – это зарождающаяся тенология приватных и доверенных баз данных.
Мы объясним, почему PostgreSQL является подходящей основной для проекта Credereum, а также расскажем, что потребовалось доработать в постгресе для поддержки цифровых подписей и криптографического хранилища данных.