![Дмитрий Сарафанников Дмитрий Сарафанников](/media/2017/12/27/300.jpg.180x180.jpg)
Как сохранить статистику при мажорном обновлении, и что за это бывает
Ни для кого не секрет, что статистика не переносится при мажорном обновлении. Для небольших и не сильно нагруженных баз это не проблема, можно быстро собрать новую статистику. Но у нас есть базы объемом порядка 5ТБ и нагрузкой порядка 100k rps, для которых это стало большой проблемой: взлетая без статистики, реплики даже не могли накатывать WAL. В своем докладе расскажу, на какие хитрости мы пошли, чтобы произвести обновление этих баз в условиях требований 100% доступности read only, о том, какие ошибки допустили, и о том как эти ошибки мучительно исправляли. Результатом этих ошибок стало расширение pg_dirty_hands, в котором мы будем собирать различные хаки, которые можно назвать «фол последней надежды».
Слайды
Видео
Другие доклады
-
Olivier Courtin DataPink Owner & DataScientist
Продвинутый анализ пространственных данных с помощью PostgreSQL, PostGIS и Python
PostGIS на протяжении двух десятилетий завовевал известность как лучшее опенсорсное решение для анализа пространственных данных. В докладе я остановлюсь на продвинутом анализе пространственных данных с помощью PostGIS, расскажу о дальнейшем развитии с помощью GeoDataScience, библиотек и фреймворков Python, сочетаемых с PostgreSQL/PostGIS, включая технологии машинного и глубокого обучения.
-
Александр Алексеев Postgres Professional Software Developer
PostgreSQL и пожатые документы
Одно из преимущество документо-ориентированных баз данных, таких как MongoDB и Cochbase, перед РСУБД заключается в возможности изменять схему данных легко, быстро и часто. Традиционный подход мира РСУБД заключается в использовании дорогостоящего ALTER TABLE, медленной миграции существующих данных, и подобных вещей. Этот подход часто слишком медлен и неудобен для разработчиков приложений.
Для решения описанной проблемы PostgreSQL предоставляет типы JSON и JSONB. Также существуют расширения zson, pg_protobuf и другие. Из этого доклада вы узнаете, как пользоваться описанными решениями, каковы их сильные и слабые стороны, и т.д. Также вы узнаете о связанных работах, которые сейчас находятся в процессе.
-
Марк Локшин Мэйл Ру Старший программист
Опыт миграции высоконагруженных игровых проектов с MySQL на PostgreSQL
В докладе будет рассказано о том, как мы переносили два высоконагруженных игровых проекта, изначально разработанных для работы с MySQL на Postgres. Какие проблемы мы видели изначально при миграции на Postgres, с какими очевидными и не очень сложностями столкнулись во время миграции и как их решали. Какие проблемы выявились в процессе эксплуатации. Какие фичи Postgres нам оказались очень полезными, а чего нам не хватало при переносе.
-
Алексей Клюкин 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.