Год Профессионального Постгреса в России
Исполнилось год с момента создания российского вендора постгреса - компании Postgres Professional. Что полезного для сообщества было сделано компанией, над чем она работает сейчас - о разработках, о сертификации, о русской документации и об образовательной программе.
Слайды
Видео
Другие доклады
-
Константин Книжник Postgres Professional Ведущий разработчик
Менеджер распределённых транзакций для кластера PostgreSQL
В корпоративных информационных системах от СУБД требуется поддержка кластеров, для обеспечения требуемого уровня масштабирования и надёжности. К сожалению, многочисленные попытки реализовать кластеры для Постгреса, такие как Postgres-XL/XC, так и не были доведены до коммерческого уровня и не были приняты сообществом. Другие существующие решения, например, pg_shard, plproxy не поддерживают глобальных ACID транзакций. Наша команда разработала менеджер распределённых транзакций (DTM) как расширение Постгреса, позволяющее достичь глобальной целостности для нескольких экземпляров Постгреса, объединённых в один кластер. DTM - это конструктор, позволяющий реализовать различные решения на его основе. В качестве демонстрации возможностей DTM мы интегрировали его в pg_shard и postgres_fdw. Мы надеемся, что наш подход с расширяемым менеджером транзакций будет включён в версию 9.6 Постгреса и позволит разрабатывать различные кластерные решения на его основе.
-
Andres Freund Citus Data
Улучшая Buffer Manager
Менеджер буферов Postgresql разработан достаточно давно и его возраст даёт о себе знать в некоторых аспектах. Мы обсудим, как он работает сейчас, каковы его недостатки, и что делается сейчас, чтобы их исправить.
- Поиск в кеше обходится дорого
- Таблица сопоставлений буфера организована в виде хеш-таблицы, что затрудняет эффективную реализацию предвыборки, совмещение операция записи и очистки содержимого кеша
- Расширение отношений плохо масштабируется
- Вытеснение из кеша неэффективно
- При вытеснении из кеша замещаются неправильные буферы
-
Николай Шаплов Postgres Professional Fuzzing Engeener
«Что у него внутри» - хранение данных на низком уровне
Знание внутреннего устройства СУБД на уровне хранения данных позволяет ускорить её работу и уложить данные более компактно. На данном мастер-классе будет представлен инструмент pageinspect, одним из разработчиков которого недавно стал московский программист Николай Шаплов. На практике этот инструмент будет использован для изучения того, как в БД лежат данные и как их можно разложить оптимально. Будут и задачи для самостоятельного исследования.
-
Kevin Grittner EnterpriseDB
Всё об изоляции транзакций в PostgreSQL для разработчиков приложений
Когда множество пользователей, процессов или потоков выполнения одновременно модифицируют их общие данные, это может вызывать проблемы, если каким-то образом не урегулировать условия гонки. Эти проблемы особенно остро проявляются в базах данных, реализующих семантику ACID. Набор изменений, объединённых в транзакцию базы данных, должен проявляться атомарно, и для параллельных транзакций, и для процесса восстановления после сбоя. Каждая транзакция должна переводить базу данных из одного согласованного состояния (с точки зрения бизнес-правил) в другое. Для эффективной разработки необходимо иметь возможность запрограммировать каждую транзакцию независимо от других транзакций, которые по стечению обстоятельств могут выполняться в то же самое время. В случае сбоя все изменения, внесённые транзакциями, об успешном завершении которых были уведомлены приложения, а также все изменения, ставшие видимыми для других транзакций, должны оставаться в базе после восстановления. За многие годы были выработаны различные стратегии обеспечения этих гарантий, а иногда гарантии корректировались тем или иным способом. В данном докладе будет рассказано, каким образом обеспечиваются эти гарантии или их компромиссные варианты, с упором на методику сериализуемой изоляции снимков (SSI, Serializable Snapshot Isolation), применяемую в PostgreSQL (и ни в какой другой производственной СУБД на данный момент). Хотя SSI уже работает быстрее и с большей степенью параллельности, чем любая другая методика управления условиями гонки с наиболее типичной нагрузкой, есть много путей для дальнейшего увеличения производительности, некоторые из которых требуют помощи эксперта по различным методам доступа индексов; эти вопросы и будут обсуждены в данном докладе. Кроме того, на докладе будут представлены некоторые общие идеи о том, как можно использовать методики SSI с XTM в распределённой системе. В конце мы оставили время для группового обсуждения оптимизации и возможных применений в распределённой среде.