title

text

Иван Картышов
Иван Картышов Postgres Professional Разработчик ядра
Дмитрий Иванов
Дмитрий Иванов Postgres Professional Developer
18:15 06 февраля
22 мин

Басня про тестирование и postgres

Однажды вот Питон и Слон
Вести тестирование взялись.
И вместе все в него впряглись!

В нашей компании (Postges Professional) разрабатываются разные проекты: multimaster, pg_probackup, pg_pathman, pg_shardman, RUM, и другие. Совладать со всей этой оравой весьма непросто, поэтому нам необходим инструмент, который способен облегчить и ускорить написание всевозможных тестов.

В данном докладе мы расскажем о фреймворке testgres, написанном на Python, который уже позволил решить множество проблем и протестировать функциональность, которую нельзя так просто покрыть прямолинейными регрессионными тестами.

Вы узнаете, как при помощи нескольких строчек кода запускать узлы PostgreSQL, настраивать всевозможную репликацию и создавать бекапы, меняя параметры на лету, и про многое другое. Также мы расскажем, как эти возможности позволяют нам проверять "самые труднодоступные места" и улучшать качество наших продуктов.

Мы стремимся сделать testgres фреймворком для проведения функциональных тестов пользовательских запросов, хранимых процедур и прочей серверной логики, привнося практику TDD на уровнь разработки БД.

Слайды

Видео

Другие доклады

  • Николай Рыжиков
    Николай Рыжиков Health Samurai CTO
    45 мин

    Использование PostgreSQL и Сlojure для разработки приложений, ориентированных на работу с базами данных

    Если честно взглянуть на большинство наших бизнес-приложений, то они через провод собирают данные в базу и раздают их в обратном направлении. Что, если не пытаться воздвигать стену абстракций между приложением и базой данных (ORM), а постараться использовать их симбиоз - сильные стороны и индивидуальные особенности.

    Я расскажу как мы используем postgresql и clojure для создания data intensive приложений для медицины.

    • functional relational programming
    • jsonb для моделирования сложной предметной области
    • функциональные индексы и расширение json-knife для поиска в jsonb
    • реализация graphql на postgres
    • logical replication для построения реактивных интеграций
    • асинхронный JDBC-free коннектор к postgresql на netty

  • Александр Погодин
    Александр Погодин Корпорация ПАРУС, МГОТУ руководитель отдела
    А
    Александр Панкратов НПЦ Парус Генеральный директор
    45 мин

    Технология миграции тиражных клиент-серверных приложений с СУБД Oracle в СУБД PostgreSQL: Принципы, подходы и особенности

    В докладе рассматриваются подходы и варианты реализации миграции клиент-серверного приложения Парус-Бюджет 8 с платформы Oracle Database на платформу PostgreSQL без изменения клиентского приложения для Desctop и Web. Предлагаемое решение позволяет осуществить прозрачный переход существующих пользовательских рабочих мест.

  • Виктор Егоров
    Виктор Егоров Data Egret DBA
    45 мин

    Сравнительный обзор архитектуры PostgreSQL и ORACLE

    Доклад рассмотрит следующие компоненты СУБД PostgreSQL, сравнивая архитектурные решения с СУБД ORACLE:

    1. Что представляет из себя экземпляр работающей базы, какие процессы присутствуют и за что они отвечают?
    2. Какими структурами оперирует база?
    3. Механизм отказоустойчивости.
    4. MVCC механизм и возможности восстановления базы.
    5. Хранение базы на физических носителях.

    Каждое из рассматриваемых решений будет оценено с точки зрения накопленного опыта работы в выбранных СУБД, удобства администрирования и доступных способов развития в будущем.

    Доклад будет интересен:

    • пользователям PostgreSQL, т.к. позволит взглянуть на другую СУБД и её особенности;
    • администраторам PostgreSQL, т.к. ORACLE предлагает большие административные возможности, которые могли бы быть реализованы и в Postgres;
    • разработчикам PostgreSQL, т.к. Postgres активно развивается и этот доклад может задать новые направления развития;
    • желающим перейти с ORACLE (или другой СУБД) на проекты с открытым исходным кодом, т.к. доклад продемонстрирует возможности открытой СУБД Postgres в сравнении с коммерческим продуктом, в котором Postgres выглядит очень достойно!

  • Максим Милютин
    Максим Милютин Wildberries Разработчик/DBA
    Дмитрий Иванов
    Дмитрий Иванов Postgres Professional Developer
    45 мин

    Встроенное партицирование в постгресе и сторонние решения

    В 10-й версии постгреса появилось встроенное партицирование таблиц. Однако ставить точку на развитии этого функционала, начало работы над которым ведётся с августа 2015 года, пока рано. В новом 11-ом релизе ведутся несколько параллельных работ по преодолению ограничений встроенного партицирования (update ключа партицирования, вставка в foreign партиции, локальные и глобальные индексы) и внедрение оптимизаций (runtime partition pruning, parallel append нода и partition-wise aggregation/grouping), которые восполнят многолетний пробел в этой области.

    Помимо этого получили развитие сторонние решения для партицирования таблиц - pg_pathman и timescaledb, каждый из которых предоставляет свои дополнительные возможности, отсутствующие в ваниле.

    В своём доклады мы постараемся рассказать про возможности каждого из решений, обрисовать нишу, сделав упор на разрабатываемые фичи в ванильном постгресе.