![Михаил Балаян Михаил Балаян](/media//2017/12/09/balayan.jpg.180x180.jpg)
MVCC в картинках и когда длинные транзакции - это проблема
Многие из нас знают о том, что именно MVCC обеспечивает многопользовательский доступ к данным во многих реляционных базах данных, которые гарантируют согласованность и изолированность транзакций. Но именно глубокое понимание реализации этого механизма в PostgreSQL позволяет нам лучше понимать процессы, происходящие в базе, проектировать логику работы приложений и структуры таблицы, чтобы быть наиболее эффективными в мире высоких нагрузок. На примере одного из процессов в нашем продукте мы разберемся в том, как реализована MVCC в PostgreSQL и раскопаем одну из особенностей, когда казалось бы, несвязанные активности могут влиять друг на друга.
Слайды
Видео
Другие доклады
-
ННиколай Ларин Microsoft Program Manager
Azure Database for PostgreSQL – как мы сделали глобальный масштабируемый сервис
Azure Database for PostgreSQL - управляемый сервис баз данных на основе PostgreSQL Community Edition. Мы расскажем об архитектуре сервиса и реализации ключевых преимущств PostgreSQL сервиса в Azure, таких как высокий уровень доступности, масштабирование сервиса, встроенная защита и автоматическое резервное копирование. Включает демонстрацию возможностей сервиса с облачными приложениями и интеграцию с другими сервисами Azure.
-
Дорофей Пролесковский Juno GIS Engineer
PostGIS и системы реального времени
PostGIS - расширение для Postgres, приносящее в него пространственные типы данных, методы их быстрой индексации и функции для выполнения геометрических операций над ними.
В типичном сценарии использования PostGIS применяют для выбора из большого массива статичных данных небольшого подмножества. В этом докладе будут рассмотрены проблемы, возникающие при необходимости работы с большими динамическими потоками данных, и подходы к их решению, на реальных примерах, встретившихся при разработке бекенда сервиса заказа такси Juno.
-
Дмитрий Иванов Postgres Professional DeveloperМаксим Милютин Wildberries Разработчик/DBA
Встроенное партицирование в постгресе и сторонние решения
В 10-й версии постгреса появилось встроенное партицирование таблиц. Однако ставить точку на развитии этого функционала, начало работы над которым ведётся с августа 2015 года, пока рано. В новом 11-ом релизе ведутся несколько параллельных работ по преодолению ограничений встроенного партицирования (update ключа партицирования, вставка в foreign партиции, локальные и глобальные индексы) и внедрение оптимизаций (runtime partition pruning, parallel append нода и partition-wise aggregation/grouping), которые восполнят многолетний пробел в этой области.
Помимо этого получили развитие сторонние решения для партицирования таблиц - pg_pathman и timescaledb, каждый из которых предоставляет свои дополнительные возможности, отсутствующие в ваниле.
В своём доклады мы постараемся рассказать про возможности каждого из решений, обрисовать нишу, сделав упор на разрабатываемые фичи в ванильном постгресе.
-
Григорий Смолкин Ozon Инженер
Резервное копирование PostgreSQL с помощью pg_probackup: высокая производительность и острая форма паранойи
Как бэкапировать PostgreSQL? Как хранить сделанные бэкапы? Как валидировать бэкап? Как валидировать PostgreSQL и можно ли ему вообще доверять? Можно ли доверять твоему инструменту? Как сделать всю эту паранойю удобной и производительной, если СУБД не помогает в этом деле? На какие компромиссы можно идти и на какие ни в коем случае нельзя? Создавая свой инструмент бэкапирования, мы были вынуждены искать ответы на эти и многие другие вопросы, о чем и хотелось бы рассказать.