Басня про тестирование и postgres
Однажды вот Питон и Слон
Вести тестирование взялись.
И вместе все в него впряглись!
В нашей компании (Postges Professional) разрабатываются разные проекты: multimaster, pg_probackup, pg_pathman, pg_shardman, RUM, и другие. Совладать со всей этой оравой весьма непросто, поэтому нам необходим инструмент, который способен облегчить и ускорить написание всевозможных тестов.
В данном докладе мы расскажем о фреймворке testgres, написанном на Python, который уже позволил решить множество проблем и протестировать функциональность, которую нельзя так просто покрыть прямолинейными регрессионными тестами.
Вы узнаете, как при помощи нескольких строчек кода запускать узлы PostgreSQL, настраивать всевозможную репликацию и создавать бекапы, меняя параметры на лету, и про многое другое. Также мы расскажем, как эти возможности позволяют нам проверять "самые труднодоступные места" и улучшать качество наших продуктов.
Мы стремимся сделать testgres фреймворком для проведения функциональных тестов пользовательских запросов, хранимых процедур и прочей серверной логики, привнося практику TDD на уровнь разработки БД.
Слайды
Видео
Другие доклады
-
Olivier Courtin DataPink Owner & DataScientist
Продвинутый анализ пространственных данных с помощью PostgreSQL, PostGIS и Python
PostGIS на протяжении двух десятилетий завовевал известность как лучшее опенсорсное решение для анализа пространственных данных. В докладе я остановлюсь на продвинутом анализе пространственных данных с помощью PostGIS, расскажу о дальнейшем развитии с помощью GeoDataScience, библиотек и фреймворков Python, сочетаемых с PostgreSQL/PostGIS, включая технологии машинного и глубокого обучения.
-
Марк Локшин Мэйл Ру Старший программист
Опыт миграции высоконагруженных игровых проектов с MySQL на PostgreSQL
В докладе будет рассказано о том, как мы переносили два высоконагруженных игровых проекта, изначально разработанных для работы с MySQL на Postgres. Какие проблемы мы видели изначально при миграции на Postgres, с какими очевидными и не очень сложностями столкнулись во время миграции и как их решали. Какие проблемы выявились в процессе эксплуатации. Какие фичи Postgres нам оказались очень полезными, а чего нам не хватало при переносе.
-
Игорь Успенский Rambler&Co Системный администратор
PostgreSQL SaaS в Rambler&Co
Rambler&Co - это множество изданий, сервисов и проектов. Появляются новые и растут существующие. Такой среде нужна надежная, отказоустойчивая, масштабируемая, автоматизированная система.
Расскажу об устройстве нашего PostgreSQL SaaS, какие инструменты и технологии мы используем. Кворум из 3 Дата-центров. Единая точка входа для клиентов на основе динамической маршрутизации. Аварийное переключение мастера. Прозрачное масштабирование на чтение. Создание реплики без нагрузки на кластер. Прозрачный перенос PostgreSQL cluster на другие серверы. Актуализация dev окружения из prod для разработки. Резервное копирование с компрессией и использованием нескольких CPU на стороне database, восстановление одной БД из basebackup. Мониторинг sql запросов.
-
Александр Коротков Postgres Professional Руководитель разработки
Подключаемые хранилища
Тема подключаемых хранилищ для PostgreSQL стала уже притчей во языцех. Период споров о том, нужны ли подключаемые хранилища, или нет закончился. Позиции скептиков, говорящих, что подключаемые хранилища не нужны, поскольку являются источником неконсистентного поведения СУБД, заметно ослабли после критики реализации MVCC в PostgreSQL со стороны Uber'а. Стало понятно, что подключаемые хранилища нужны как-минимум для альтернативной реализации MVCC через undo-лог, и это стало одним из ориентиров для проектирования интерфейса.
На текущий момент работа над подключаемыми хранилищами перешла в практическую плоскость: ведётся тред, в котором несколько человек разрабатывают набор патчей, и ещё больше делают ревью.
В данном докладе будут рассмотрены следующие вопросы:
- обзор получившегося интерфейса для подключаемых хранилищ;
- изменения в ядре PostgreSQL, которые потребовались для реализации данного интерфейса;
- текущие и потенциальные применения данного интерфейса, включая heap с undo-логом и in-memory OLTP движок;
- текущее состояние патчей и перспектива их принятия в ядро;
- дальнейшее развитие интерфейса с целю расширения возможностей подключаемых хранилищ (columnar, index-organized, LSM и т.д.).