Федор Сигаев

Postgres Professional

технический директор

Вперед в прошлое

Доклад

Иной раз есть большое желание вернуть базу данных в прошлое, на день, два или несколько дней. Причины самые разные, но чаще всего: посмотреть, что поменялось, приложение после обновления повело себя некорректно, повеление свыше сделать как вчера. Классический способ все знают - держим опорные резервные копии и наборы WAL-логов для возможности восстановления на произвольный момент. И такой способ - головная боль для DBA/администраторов и быстро не делается. Безусловно, есть способы несколько оптимизировать этот процесс, но без downtime это не обходится. PostgresPro предлагает новый способ - снапшоты или снимки состояния БД и возможность вернуться к ним.

Слайды

Павел Труханов

okmeter.io

CEO

Мониторинг Postgres по USE и RED

Доклад

Есть две методологии перформанс мониторинга: USE (Utilization, Saturation, Errors) Брендана Грегга и RED (Requests, Errors, Durations) от Тома Уилки. В докладе я хочу рассказать о том, как мы на них ориентировались и продолжаем ориентироваться, когда реализуем мониторинг Postgres в okmeter.io.

Слайды

Павел Лузанов

Постгрес Профессиональный

Руководитель образовательных программ

Обучение и сертификация: что нового и ближайшие планы

Доклад

В сентябре 2015 года компания "Постгрес Профессиональный" выпустила первый учебный курс "DBA1.Администрирование PostgreSQL. Базовый курс". Курс основывался на актуальной тогда версии PostgreSQL 9.4. С тех пор вышло несколько новых курсов, да и СУБД PostgreSQL не стояла на месте.

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

Слайды

Александр Кузьменков

Postgres Professional

Программист

Новые планы выполнения запросов в PostgreSQL 11 и будущих версиях

Доклад

Одна из важных задач СУБД -- по декларативному SQL-запросу построить эффективный план его выполнения, используя разные алгоритмы сканирования и объединения таблиц. Над улучшением планирования запросов идёт непрерывная работа. Какие методы применяет PostgreSQL, чтобы получить эффективный план, что нового в этой области в версии 11, и что сейчас находится в разработке? Например, при планировании запроса можно удалять ненужные соединения, или сводить внешние и полусоединения к внутренним. Есть патчи, позволяющие выполнять merge join по пересечению интервалов, или улучшающие оценку селективности соединения с помощью многоколоночной статистики. Если говорить о сканировании отдельных таблиц, покрывающие индексы позволяют чаще использовать index-only scan. Инкрементальная сортировка и более точная оценка стоимости сортировки улучшают планы, где нужен сортированный вывод, например, для GROUP BY и ORDER BY или merge join. Мы обсудим эти и другие подобные оптимизации, которые уже реализованы или находятся в разработке.

Слайды

Александр Коротков

Postgres Professional

Руководитель разработки

Узкие места PostgreSQL

Доклад

Хорошо, когда база работает предсказуемо. Если сервер не справляется с нагрузкой, то только знай добавляй процессорные ядра, терабайты оперативной памяти и миллионы IOPS'ов – всё станет хорошо. Гораздо неприятнее, когда у сервера куча свободных ресурсов, но база данных всё равно тормозит. И особенно обидно, когда при нагрузочном тестировании всё работало как часы, а при реальной нагрузке такого же объёма – встаёт колом.

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

Слайды

Павел Молявин

2ГИС

Инженер Инфраструктуры

Готовим PostgreSQL в эпоху DevOps. Опыт 2ГИС

Доклад

После перехода к микросервисной архитектуре для PostgreSQL наступили «темные времена». Каждая из десяти команд действовала самостоятельно — ставила свою базу данных, выбирала версию, писала деплои. Пришло время создать общий инструмент.

Мы собрали кластер на основе PostgreSQL, repmgr, PgBouncer, Barman. Несмотря на то, что система получилась достаточно сложной для неподготовленного специалиста, нам удалось создать повторяемый деплой, который позволяет быстро разворачивать рабочую систему. А также мы смогли консолидировать все базы в нескольких кластерах и снять с команд обязанности по администрированию.

Failover работает, мы проверяли :-)

Слайды

Василий Пучков

ООО "ИТСК"

Эксперт

Интеграция серверов PostgreSQL в корпоративную сеть

Доклад

Корпоративные стандарты защиты информации, обеспечения надёжности и унификации ПО: Аутентификация Kerberos (на Windows и Linux) в среде Active Directory. Особенности 1С Предприятие. Подключение к системе резервного копирования (HP Data Protector). Подключение к системе мониторинга Solarwinds.

Слайды

Эстебан Зимани

ULB

Профессор

MobilityDB: расширение PostgreSQL для управления мобильными данными

Доклад

В ходе доклада мы представим MobilityDB - расширение PostgreSQL, которое раздвигает границы системы типов в PostgreSQL и PostGIS на абстрактные данные для адекватного представления изменяющихся данных об объектах. Эти типы данных могут представлять эволюцию во времени значений некоторого типа элементов, называемого базовым темпоральным типом. Например, темпоральный целочисленный тип данных может использоваться для демонстрации изменения во времени количества сотрудников департамента. В данном случае базовым типом данных будет целочисленный или темпоральный целочисленный. Аналогично, темпоральный тип данных с плавающей точкой может использоваться для записи изменения во времени температуры в помещении или местоположения автомобиля по GPS-координатам. Темпоральные типы данных оказываются полезны, поскольку для работы многих приложений, например, мобильных, принципиально необходимо обрабатывать изменяющиеся во времени величины.

В расширении MobilityDB темпоральные типы данных основаны на булевых, целочисленных, с плавающей точкой и текстовых типах данных от PostgreSQL, а также на геометрических и географических типах данных от PostGIS (ограниченных размерностью 2D или 3D). MobilityDB соответствует действующим стандартам по перемещаемым объектам OGC http://www.opengeospatial.org/standards/movingfeatures, в частности, OGC Moving Features Access, в котором определены операции, применимые к изменяющимся во времени геометриям.

Для проведения разноообрзаных операций над темпоральными типами данных доступен богатый набор функций и операторов. В общем случае они разделюятся на три типа:

  • Пожизненные функции и операторы: операторы над базовыми типами (такие как арифметические операции над целыми числами и числами с плавающей точкой, пространственные отношения и расстояния для геометрий) интуитивно обобщаются на случай изменяющихся во времени значений. Пространственно-темпоральные функции в MobilityDB обобщают пространственные функции PostGIS как для геометрических, так и для географических типов данных, к примеру для "ST_Intersection". На базовом уровне, MobilityDB принимает в расчет аспект темпоральности и делегирует обработку пространственных данных в PostGIS.
  • Темпоральные функции и операторы обрабатывают изменяющиеся во времени размерности величины, которая может представлять собой единичное значение, диапазон значений, массив значений или массив диапазонов. Примерами являются функции периодов, которые ограничивают темпоральный тип заданным массивом временных диапазонов, а также функции продолжительности, которые извлекают время определения значения величины.
  • Пространственно-темпоральные функции и операторы - в эту категорию попадают все остальные функции. Примеры: speed(tgeompoint/tgeogpoint), azimuth(tgeompoint/tgeogpoint), maxValue(tfloat/tint), взвешенное по времени среднее twAvg(tfloat) и т.д.

Как GiST, так и SP-GiST индексы были расширены для поддержки темпоральных типов данных. Индекс GiST реализует R-дерево для темпоральных численно-буквенных типов данных, а TB-дерево - для темпоральных координат. Индекс SP-GiST реализует Quad-дерево для темпоральных численно-буквенных типов данных, а Oct-дерево - для темпоральных координат. Подход, использованный в MobilityDB при разработке SP-GIST индекса, позволил нам добавить индексы SP-GIST для двумерных, трехмерных и n-мерных геометрий в PostGIS.

Доступны два типа числовых функций аггрегирования. В дополнение к традиционным функциям min, max, count, sum, and avg, теперь есть и их оконные версии (также известные как кумулятивные). Для заданного промежутка времени w, оконная аггрегативная функция вычисляет значение функции в момент времени t, принимая в расчет значения на интервале [t − w, t]. В противоположность стандартной аггрегации, темпоральная аггрегация может возвращать результат большего размера, чем входящие данные. По этой причине темпоральные функции аггрегирования были подвергнуты жесткой оптимизации, чтобы обеспечить их эффективную работу.

В MobilityDB также есть предварительная реализация функций сбора статистики и селективности для темпоральных типов данных.

С точки зрения размера, расширение состоит из 67k строк кода на C, 19k строк SQL кода и 67k строк модульных тестов SQL. В нем определены 40 типов, 2300 функций и 1350 операторов.

В ходе доклада будет проиллюстрирована пространственно-темпоральная концепция и модель данных для темпорального типа. Кратко остановимся на основных компонентах MobilityDB: индексах, аггрегировании, функциях и операторах, а также SQL-интерфейсе. Рассказ будет дополнен примерами запросов и практических случаев использования. Также будет рассказано о текущем статусе проекта MobilityDB и планируемых разработках.

Слайды

Дорофей Пролесковский

Kontur

Product Manager

PostGIS от катастроф

Доклад

PostGIS - расширение PostgreSQL для обработки пространственных данных.

В этом докладе будет подробно рассмотрено, какие его функции и как применять для работы с информацией о катаклизмах.

Слайды

Александр Коротков

Postgres Professional

Руководитель разработки

Что PostgreSQL 12 нам готовит?

Доклад

"Заморозка разработки" (feature freeze) PostgreSQL 12 запланирована на апрель 2019, который ещё не настал. Но контуры будущего релиза уже проступают. В данном доклае я расскажу о том, что уже попало в PostgreSQL 12, а также о том что с большой вероятностью может туда попасть. С особым пристрастием расскажу про SQL/JSON, Merge, pluggable table access methods и zheap.

Александр Кукушкин

Zalando SE

Database Engineer

Типичные ошибки при построении высокодоступных кластеров и как их избежать

Доклад

Вы только что установили PostgreSQL и запустили ваш первый кластер, создали несколько таблиц, загрузили данные, и даже немного подкрутили конфигурацию Постгреса для улучшения производительности. Теперь вы думаете о том, как сделать ваш кластер высокодоступным. К сожалению, Постгрес не умеет сам выполнять автоматическое переключение при недоступности мастера, но, к счастью для нас, этого можно достичь с помощью сторонних утилит. Задача ясна, и вы начинаете изучать преимущества и недостатки всех утилит, чтобы выбрать лучшую. И... вы уже на неправильном пути, потому что в первую очередь вы должны определиться со значениями SLA, RTO и RPO. В этом докладе я планирую рассказать о ряде ошибок, которые допускают администраторы баз данных при настройке и эксплуатации высокодоступного кластера Постгреса с автоматическим переключением.

Слайды

Вадим Подольный

Московский завод "Физприбор"

Заместитель генерального директора

Высоконагруженная распределенная система управления современной АЭС

Доклад

В докладе будет представлена новая платформа распределенной системы управления АЭС.

Вы узнаете, как обеспечивается управление сложнейшими объектами автоматизации в мире. В режиме жесткого реального времени обеспечивается работа более 150 специальных подсистем, управляющих различными технологическими процессами АЭС, таких как система управления реактором мощностью выше 1000 МВт и турбиной весом более 2000 тонн. Более 100К источников данных от датчиков и до 500К расчетных параметров. 5 разновидностей физических процессов: нейтронная кинетика, гидродинамика, химия и радиохимия и физика прочности.

При некоторых отклонениях вся система превращается в огромный источник DDoS полезной диагностической информации, которой всегда больше, чем способна переварить сеть и вычислительные ресурсы автоматизированной системы, что мешает нормальному управлению объектом. Вы узнаете, как мы «разруливаем» такие проблемы.

Из доклада вы узнаете об аппаратной и программной архитектуре таких систем, узнаете, как обеспечивается резервирование и репликация данных в таких системах, зачем нужна избыточность данных и технологическое разнообразие. Как обеспечивается управление нагрузками, как устроен QoS. И что будет, если отключится система нормальной эксплуатации, как, например было на Фукусиме.

Но мы все же про кодинг. Никаких SSD и HDD, только InMemory, структуры данных из десятков миллионов элементов, забудьте про кэш процессора, он не работает. Ваш новый Xeon 4-го поколения потерял все преимущества и превратился в "тыкву", поэтому закатываем рукава и ковыряемся в таймингах, жесточайшей аcинхронике и выжимаем из железа максимум. Кто слабое звено - процессор, память, ОС или сеть. Выясняем это.

Слайды

Константин Евтеев

Avito

Руководитель разработки юнита DBA

Стендбай в бою

Доклад

В докладе рассмотрю различные варианты использования и конфигурацию standby сервера. Расскажу о том, как сделать standby, согласованный с вашим архивом, чтобы после аварии primary и промотирования standby сервера новый стендбай можно было пересоздать из архива. Слушатели познакомятся с опытом Avito: как использовать standby для read-only запросов, какие возникали проблемы и как мы их решили. Поговорю про мониторинг standby - на какие метрики стоит обратить внимание.

Слайды

Алексей Лесовский

Data Egret

PostgreSQL DBA

Поиск и устранение проблем в Postgres с помощью pgCenter

Доклад

Время от времени при эксплуатации Postgres'а возникают проблемы, и чем быстрее найдены и устранены источники проблемы, тем благодарнее пользователи. pgCenter это набор CLI утилит которые является мощным средством для выявления и устранения проблем в режиме "здесь и сейчас". В этом докладе я расскажу как эффективно использовать pgCenter для поиска и устранения проблем, в каких направлениях осуществлять поиск и как реагировать на те или иные проблемы, в частности, как:

  • проверить, все ли в порядке с Postgres'ом;
  • быстро найти плохих клиентов и устранить их;
  • выявлять тяжелые запросы;
  • и другие полезные приемы с pgCenter.

Слайды

Олег Бартунов

Postgres Professional

генеральный директор

Профессиональный постгрес

Доклад

Известнейший российский разработчик PostgreSQL Олег Бартунов откроет конференцию своим докладом том, как и почему из университетского open source проекта PostgreSQL превратился в современную индустриальную базу данных.

Слайды

Джошуа Дрейк

Command Prompt, Inc.

Ведущий консультант

Сила логической репликации

Доклад

Одной из наиболее приятных фич после выхода релиза Postgres v10 стала логическая репликация. В ходе доклада мы рассмотрим, что из себя представляет логическая репликация, как она соотносится с потоковой репликацией, как она работает, конфигурируется, какими ограничениями обладает, с какими подводными камнями можно столкнуться, как решаются вопросы безопасности и управления. Мы также обсудим возможные для развертывания архитектуры с логической и потоковой репликацией и некоторые черты базовой технологии.

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

Андрей Фефелов

Mastery.pro

Технический директор

Простой отказоустойчивый кластер на postgres, patroni, consul, s3, walg, ansible

Мастер-класс

Patroni становится де-факто стандартом для построения отказоустойчивых кластеров Постгрес.

В мастер-классе мы построим простой отказоустойчивый кластер из 3х нод на перечисленном стеке (на первый взгляд не выглядит простым).

Мы кратко познакомимся с архитектурой patroni, обсудим наиболее интересные параметры конфигураций.

Посмотрим как работает файловер и какими способами можно проинициализировать кластер.

После мастер-класса вы сможете запустить такой кластер с нуля, используя предоставленные плейбуки ansible.

Слайды

Николай Рыжиков

Health Samurai

CTO

Марат Сурмашев

Health Samurai

Программист

Эксплуатация JSONB

Мастер-класс

JSONB в PostgreSQL обладает рядом интересных свойств, которые могут пригодиться при проектировании и разработке бизнес-систем с тяжелой предметной областью, помогая бороться со сложностью и вариабельностью. На мастер-классе мы обсудим преимущества и недостатки использования JSONB. На примере открытой медицинской базы данных - fhirbase - мы с вами:

  • загрузим синтетические медицинские данные в PostgreSQL
  • научимся искать и индексировать эти данные (gin, jsquery, json-knife)
  • посмотрим, как использовать JSON агрегацию для постороения сложных запросов (GraphQL)
  • покажем, как эти данные можно модифицировать и валидировать
  • поговорим об архитектурных последствиях использования JSONB

Технические требования:

  • docker
  • docker-compose

Инструкция по подготовке

Иван Панченко

Postgres Professional

заместитель генерального директора

NoSQL/PL: Программирование на не SQL-образных процедурных языках

Мастер-класс

Мастер-класс по Server-Side разработке на процедурных языках PL/Perl ,PL/Python, PL/v8 в PostgreSQL и PostgresPro. Вы узнаете не только, для чего они нужны, но и как ими правильно пользоваться, и каких результатов можно достичь благодаря им.

Слайды

Андрей Сальников

Data Egret

DBA

Мажорное обновление PostgreSQL

Мастер-класс

На данном мастер-классе будет показано мажорное обновление PostgreSQL. На практике сталкиваясь с большим количеством серверов PostgreSQL, наша компания видит, что многие команды разработки, однажды установив PostgreSQL, не поддерживают его версию в актуальном состоянии. Причин для этого много, а результат один - отказ от нового функционала базы данных и важных улучшений производительности. На мастер-классе я детально объясню каждый свой шаг, почему так делаю, почему именно в данной последовательности, и что будет, если пропустить этот пункт обновления. Обновляться будем на версию 11, с версии 9.0. В результате, я надеюсь, каждый из пришедших на мастер-класс, вернувшись к своим базам, проведет апгрейды их всех до 11 версии.

Дмитрий Белявский

Технический центр Интернет

Ведущий специалист

Федор Сигаев

Postgres Professional

технический директор

LTREE: расширяем синтаксис

Доклад

В конце прошлого года мне поступил заказ на доработку расширения ltree с более полным набором символов. Доклад рассказывает о

  • изначальном состоянии расширения
  • расширенном синтаксисе
  • процессе доработки и тестирования расширения.

Слайды

Камиль Исламов

Stickeroid Ai

CTO

CTE запросы как основа бизнес-логики

Доклад

Рассмотрены особенности разработки и некоторые варианты реализации бизнес-логики высоконагруженных web-приложений на базе хранимых процедур в парадигме широкого применения Common Table Expression запросов.

Слайды

Федор Сигаев

Postgres Professional

технический директор

Малоизвестные, но достойные расширения Постгреса

Доклад

Постгрес хорошо известен своей расширяемостью, которая делает его универсальным и пригодным практически для любого проекта. Многие расширения хорошо известны и широко используются, как, например, PostGIS - фактический стандарт для open sourc'ных ГИС, или hstore - расширение для хранения данных "ключ-значение". Я расскажу о менее известных, но очень полезных расширениях, которые дают полезную функциональность и/или повышают производительность.

Благодаря наличию API для создания расширений, их может разрабатывать программист без компетенции "ядерного" разработчика, и создавать в них свои функции, типы данных, операторы, индексы, и даже методы доступа (знаете, что это?)

Для этого доклада из сотен расширений я выбрал два:

  • VOPS - заметно улучшает производительность OLAP-запросов с помощью векторных операций,
  • pg_variables - обеспечивающее сессионные переменные, которые можно использовать в том числе и на read-only репликах

Слайды

Александр Смолин

Красноярский ИВЦ - СП ГВЦ - ОАО "РЖД"

Программист 1 категории

Настройка и профилирование виртуальной инфраструктуры VMware для интенсивного ввода/вывода PostgreSQL

Доклад

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

Слайды

Юрий Жуковец

Digital Design / Docsvision

Руководитель экспертной группы

Технические особенности портирования T-SQL кода на plpgsql и данных из MS SQL в PG на примере перевода СЭДО «Приоритет» на Postgres

Доклад

Доклад посвящен продолжению проекта по переводу нашей системы электронного документооборота «Приоритет» с MS SQL на Postgres. Будут затронуты технические решения и моменты переписывания с T-SQL на plpgsql, оптимизации результативного кода и переноса данных. Дополнительно рассмотрим аспекты тестирования производительности с точки зрения поиска «плохого кода» pgplsql как кандидата на оптимизацию. Основная задача презентации - ответить на вопрос: "У нас так на T-SQL - как это перенести на PG?". Доклад предназначается для начинающих разработчиков на Postgres и является продолжением предыдущего доклада сделанного на конференции в 2017 (https://youtu.be/v6_4Szr8t14).

Слайды

Борис Ещенко

Commvault

Технический консультант

Управление и защита PostgreSQL c помощью Commvault

Доклад

Надежное резервное копирование и восстановление данных уровня предприятия для среды PostgreSQL. Больше никаких традиционных резервных копий. Технология CBT (Change Block Tracking) - это следующее поколение инкрементного резервного копирования. Быстрее, чем моментальные снимки, CBT создает резервные копии только блоков, которые изменяются, а не всех ваших данных, уменьшая нагрузку на сервер и сетевой трафик и устраняя необходимость в традиционных резервных копиях. Преимущества: • Защита данных в режиме близком к Real-Time • Обновление с легкостью

Слайды

Лев Драгунов

Juno

GIS Research TeamLead

PostgreSQL и Docker

Доклад

СУБД внутри контейнера - ночной кошмар для администратора баз данных. Я расскажу, как PostgreSQL в контейнерах используется в Juno, с какими сложностями мы столкнулись и как их преодолели.

Слайды

Иван Муратов

ООО "Первая Мониторинговая Компания"

Team Lead

PostgreSQL + PostGIS + TimescaleDB - хранилище для систем мониторинга транспорта

Доклад

PostgreSQL + PostGIS + TimescaleDB - это готовый к эксплуатации симбиоз из надежной РСУБД, мощного набора географических объектов и вычислений и работа с time-series данными. Данная связка прекрасно решает проблему хранения телеметрии, при этом оставляя в ваших руках всю экосистему PostgreSQL.

Слайды

Андрей Хитрин

JKiss.org

Разработчик

Александр Федоров

ArSysOp

CEO

Самый важный инструмент: Xobot IDE

Доклад

В мире программирования особняком стоит создание исходного кода для "процедурных расширений" баз данных. Большинство СУБД предлагает процедурные языки и "хранимые процедуры" для создания процедурных расширений. В Postgres количество поддерживаемых официально и не очень процедурных языков уже перевалило за десяток.

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

Особенности жизненного цикла хранимых процедур затрудняют применение стандартных инструментов и практик по контролю изменений. Необходимо адаптировать работу с хранимыми процедурами к стандартам Change Management, оставаясь в рамках привычных для разработчика действий.

Мы рассмотрим проблемы разработки процедурных расширений и обсудим решения, которые мы реализуем в IDE XOBOT.

Слайды

Александр Любушкин

ООО "ФОРС Телеком"

Технический директор

Рустам Абдрахимов

ООО "ФОРС Телеком"

Ведущий эксперт

Live Universal Interface (LUI) - средство коллективной разработки WEB-интерфейса прикладных систем для Postgres

Доклад

В нашей компании разработан программный продукт Live Universal Interface (LUI), - инструмент для быстрого создания и изменения унифицированных экранных форм для WEB-браузеров без компиляции программного кода, при этом достаточно знать только SQL.

LUI нацелен на сегменты В2В, В2G, G2C и B2C, и предназначен для использования в системах биллинга, управления финансами, учета и контроля производства, где необходимо решать, в первую очередь, функциональные задачи, а не демонстрировать излишние графические элементы.

Коллективная разработка обеспечивается хранением всего объема наработок в базе данных, которая может располагаться как на корпоративном сервере, так и в «облаке» на сторонней площадке.

Слайды

Александр Павлов

Modulbank

.NET разработчик

Как получить нагрузку в БД на пустом месте?

Доклад

Мы - обычные разработчики, которые думали о том, как разработать систему, способную выдерживать неплохие нагрузки, и это даже получилось.

На уровне архитектуры всё было OK, но объём данных возрастал, и начали вылезать не самые приятные моменты, о которых ранее никто не думал и не понимал. Иногда это приводило нас к самым потрясающим запросам, которые мы не понимали, как можно было написать. Мой небольшой рассказ будет о том, как получить нагрузку в БД на пустом месте и как потом от неё избавиться.

Слайды

Джигнеш Шах

Amazon Web Services

Менеджер службы реляционной базы данных PostgreSQL

Глубокое погружение во вселенную RDS PostgreSQL

Доклад

В ходе доклада мы с головой окунемся в пространство восхитительных возможностей службы Amazon RDS для PostgreSQL, включая новые версии релизов PostgreSQL, новые расширения, более крупные таблицы. Мы посмотрим на бенчмарки новых типов сущностей RDS и их ценность, на то, как работают высокая доступность и масштабируемость по чтению. Разберем уроки, которые мы вынесли из опыта управления большим парком сущностей с помощью PostgreSQL, включая важные настройки и возможные подводные камни, связанные с pg_upgrade.

Слайды

Максим Вихарев

Alytics

Технический директор

GreenHouseSQL - масштабируемая система аналитики на postgresql, greenplum и clickhouse

Доклад

На pgconf’17 я рассказывал про нашу велосипедную систему аналитики на основе PostgreSQL. После этого мы посматривали в сторону хадупов, s3, престо, друидов, вертики, пентахо и прочих страшил. А потом перестали cтрадать и сомневаться и просто добавили к постгресу готовые Greenplum и Clickhouse. Получив в итоге потрясающую скорость, простую миграцию, простое обслуживание, надежность и горизонтальное масштабирование, восстановление после сбоев в две команды, уменьшение костов на инфрастуктуру и широкие функциональные возможности за счет сочетания ANSI SQL, MPP и In-memory. Оставаясь в парадигме Open-source и полноценного SQL. В итоге у нас получилось то, что мы назвали GreenHouseSQL - наша внутренняя платформа данных полного цикла. В докладе вскроем простоту внутренностей решения и рассмотрим компоненты стека под микроскопом, расскажем об их достоинствах и недостатках, фишках начала работы с Greenplum, зачем нам Clickhouse, что осталось PostgreSQL'у и как вообще все это работает.

Слайды

Андрей Бородин

Яндекс

Разработчик

Резервные копии с WAL-G. Что там в 2019?

Доклад

Доклад будет состоять из 3 частей: 1. Экспресс-настройка PITR в Облако 2. Последние доработки бекапостроения в WAL-G 3. Почему это может быть нужно или вредно для вашего типа требований и нагрузки.

Слайды

Андрей Бородин

Яндекс

Разработчик

DIY индекс

Доклад

В докладе я расскажу об актуальных технологиях в области индексов общего назначения в РСУБД. Обсудим различные подходы, делающие индексы быстрее для различных типов нагрузки. Поговорим о том, какие вещи приходят к нам из академических исследований и какие находят отклик среди разработчиков, со стороны сообществ и крупных компаний. Будет небольшая live-код сессия по созданию DIY индекса в PostgreSQL.

Слайды

Иван Фролков

Postgres Professional

инженер-консультант

Типичные ошибки приложений при работе с Postgres

Доклад

По роду своей деятельности мне все время приходится иметь дело с приложениями, работающими с Postgres. Некоторые работают хорошо; некоторые не совсем - и доклад будет как раз об ошибках последних.

Слайды

Денис Смирнов

Arenadata

Разработчик

Greenplum: внутреннее устройство MPP PostgreSQL для аналитики

Доклад

PostgreSQL архитектурно является классической вертикально-масштабируемая СУБД для OLTP нагрузок. Параллельно с PostgreSQL много лет существует его альтернативная горизонтально-масштабируемая MPP версия Greenplum, заточенная под большие данные и OLAP нагрузку. В докладе будет рассказано про внутреннее устройство Greenplum (распределенные транзакции, шардирование данных, секционирование с гибридным хранением во внешних системах, колоночные движки хранения со сжатием и много другое), проведено сравнение с внутренним устройством PostgreSQL и показаны области применения каждого решения.

Слайды

Джигнеш Шах

Amazon Web Services

Менеджер службы реляционной базы данных PostgreSQL

Секреты работы со службой Amazon RDS для PostgreSQL

Доклад

Услуги управляемых служб баз данных набирают популярность. В ходе доклада мы посмотрим, как наилучшим образом сконфигурировать службу Amazon RDS для PostgreSQL, и разберем наиболее частые команды RDS. Мы также заглянем за пределы привычных пользовательских операций и рассмотрим несколько вариантов оптимизации, связанных с обновлением, логической репликацией, повышением производительности и сокращением времени простоя PostgreSQL.

Слайды

Андрей Фефелов

Mastery.pro

Технический директор

Как мы выбирали среди patroni, stolon, repmgr для нашего отказоустойчивого Постгреса

Доклад

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

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

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

Слайды

Джошуа Дрейк

Command Prompt, Inc.

Ведущий консультант

Производительность и эксплуатация Postgres

Мастер-класс

Когда вы оптимизируете Postgres, обычно вопросы эксплуатации оказываются задвинуты на обочину. Каким образом наладить autovacuum? Почему bloat? Из-за чего я получаю IO spikes? Как мне заставить RDS правильно себя вести?! Почему коммиты при репликации происходят так медленно? Ответ на все эти вопросы лежит в понимании взаимосвязи между надлежащей эксплуатацией Postgres и его производительностью. Приглашаю присоединиться к увлекательному 3-часовому путешествию по хитрому миру отладки Postgres!

Джошуа Дрейк

Command Prompt, Inc.

Ведущий консультант

Репликация Postgres на практике

Мастер-класс

В ходе данного мастер-класса мы обсудим потоковую и логическую репликацию с точки зрения практика, включая вопросы нативных технологий репликации Postgres, конфигурации и управления ими. Мы также обсудим производительность и недостатки различных архитектур, таких как sync vs async и пр. По итогам слушатели смогут провести конфигурацию развертывания базовой репликации с HOT Standby, а также приобретут понимание других технологий, таких как Point in Time Recovery и каскадная репликация.

Антон Дорошкевич

ИнфоСофт

Руководитель Отдела-ИТ

Первый в России BlockChain на 1С+PostgreSQL

Доклад

В ходе доклада хотелось бы поделиться опытом реализации BlockChain в реальной бизнес-задаче на базе 1С+PostgreSQL. Откуда возникла такая задача? От кого защищаем данные с помощью технологии? Как получать отчёт о целостности цепочки в десятки миллионов записей за считанные секунды?

Слайды

Александр Шелудченков

ГК "Митра"

Программист

Нестандартный кластер 1C

Доклад
  • Перенос стандартного кластера 1С в MPI окружение - "миграция сервисов между машинами".
  • Перенос postgreSQL на GPU.

Слайды

Тацуро Ямада

NTT

Старший эксперт

Настройка автопланировщика с использованием цикла обратной связи

Доклад

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

Для того, чтобы решить эту проблему, я разработал инструмент под названием pg_plan_advsr - это расширение для PostgreSQL, которое исправляет ошибки оценки путем неоднократного возвращения в планировщик информации, собранной в ходе исполнения запроса.

Расширение содержит три фичи:

  1. Автоматическая оптимизация плана запроса за счет неоднократного возвращения информации о ходе выполнения запроса в планировщик.
  2. Сохранение всех выработанных при оптимизации планов запросов в таблицу истории.
  3. Создание и сохранение хинтов оптимизатора с тем, чтобы иметь возможность воспроизвести выработанные планы исполнения запросов в процессе настройки.

Я верифицировал эффективность pg_plan_advsr путем запуска join order benchmark (JOB) на PG 10.4, в ходе чего наблюдалось сокращение времени исполнения запроса до 50% от первоначального. Таким образом, расширение будет полезно пользователям, который хотят настроить планировщик для OLAP и пакетной обработки данных.

В ходе презентации я расскажу о следующие моментах:

  • Принципы построения и архитектура pg_plan_advsr.
  • Подробная информация о результатах тестирования JOB.
  • Направления улучшений в будущем.
  • Совместное использование расширений aqo и pg_plan_advsr together (экспериментальное).

Слайды

Алексей Лустин

SilverBulleters, LLC

CTO

Анализ проблемных запросов как средство регулярного рефакторинга кода 1С

Доклад
  1. Принципы поиска проблемных запросов в PostgreSQL
  2. Оценка гипотетических индексов и степени их влияния на планы запросов
  3. Наиболее часто встречающиеся ошибки у 1С-программистов
  4. Базовые методы рефакторинга кода с учетом особенностей PostgreSQL
  5. Хранение аналитической информации журнала работы PostgreSQL для оценки качества рефакторинга

Ирина Фаст

Bi Partner

DBA

Администрирование PostgreSQL глазами Oracle DBA

Доклад

Имея опыт администрирования Oracle, я обнаружила некоторые отличительные особенности в администрировании PostgreSQL, которыми я хотела бы поделиться с вами. Мы рассмотрим набор необходимых инструментов для администраторов баз данных, их возможности и полезность по сравнению с аналогами Oracle. Также я собираюсь обобщить основные различия между Oracle DB и PostgreSQL с точки зрения администрирования.

Слайды

Дмитрий Юхтимовский

Gilev.ru

технический лидер

Магические фокусы с последующим разоблачением (1С+PG)

Доклад

Магические фокусы с последующим разоблачением (1С+PG):

  • Фокус первый. Как убедить бухгалтерию купить новый сервер.
  • Фокус второй. Как показать, что MS SQL быстрее PostgreSQL.
  • Фокус третий. Как показать, что PostgreSQL быстрее MS SQL Server.

Слайды

Артем Иванов

Atos IT S&S

Пресейл-менеджер

Алексей Игнатов

Postgres Professional

Старший администратор

Миграция на СУБД PostgreSQL/Postgres Pro с многоядерными серверами Bull. Реальный опыт

Доклад

При миграции на СУБД PostgreSQL/Postgres Pro многоядерные серверы требуют к себе внимательного отношения и знания настроек для параллельной работы процессов. Как обеспечить корректную и быструю работу при многотерабайтных конфигурацях?

В своем докладе Артем Иванов и Алексей Игнатов расскажут об опыте тестирования PostgreSQL и Postgres Pro на BullSequana S и Bullion S.

  • Особенности данной аппаратной платформы для высонагруженных конфигураций
  • Многопроцессорные Scale-up серверы и PostgreSQL/Postgres Pro
  • Результаты стрессового тестирования оборудования для СУБД PostgreSQL/Postgres Pro.

Артемий Рябинков

Avito

Software Engineer

Практики, особенности и нюансы при работе с Postgres в Go

Доклад

В докладе расскажу о практиках работы с Postgres в сервисах на Go. Поговорим о преимуществах и недостатках основных инструментов, которые принято использовать при работе с Postgres в Go. Конечно, коснёмся нюансов, которые нужно учитывать, когда ваши сервисы работают внутри Kubernetes облака. Также расскажу об опыте Avito в предоставлении базы данных разработчикам продукта. Доклад будет интересен разработчикам, которые хотят избежать проблем при работе с Postgres и полезен DBA, которые хотят узнать с какими трудностями сталкиваются клиенты их базы данных.

Слайды

Анна Акентьева

Postgres Professional

младший разработчик

Autovacuum: что можно узнать, если прочитать код, а не документацию

Доклад

В докладе будут рассмотрены детали реализации автовакуума и практические выводы, следующие из них. Будет также дан краткий обзор патчей для автовакуума, которые рассматриваются сообществом разработчиков на данный момент и возможно будут включены в следующие версии PostgreSQL.

Слайды

Петр Грибанов

Технологический евангелист

1С:Предприятие и PostgreSQL

Доклад
  • 1С:Предприятие -как среда кросс-платформенной разработки бизнес-приложений
  • 1С и PostgreSQL - вместе с 2006 года
  • Работа 1С с PostgreSQL в облачном сервисе 1cFresh
  • Что улучшено в платформе 1С:Предприятие для работы с PostgreSQL - Общие рекомендации по работе 1С с PostgreSQL.

Степан Данилов

РТ Лабс

Разработчик

Оптимизация оптимизированного и не очень

Доклад

Хочу поделиться опытом оптимизации запросов PostgreSQL для Региональной Медицинской Информационной Системы (РМИС). Опыт работы с PostgreSQL и с этой системой - более 6 лет.

Сергей Андреев

ООО "Ортикон-Групп"

Архитектор

Что останавливает переход на PostgreSQL и как это побороть

Доклад

Несколько реальных кейсов от тех кто остановил переход на PostgreSQL.

Артур Закиров

Postgres Professional

Разработчик

Использование pg_variables в качестве временных таблиц

Доклад

PostgreSQL предоставляет возможность создания временных таблиц. Хотя временная таблица доступна только для сессии, которая ее создала, и удаляется по окончании этой сессии, вся информация о ней хранится в системном каталоге PostgreSQL. С этим связаны несколько проблем, которые затрудняют или делают невозможным использование временных таблиц в некоторых случаях. Есть различные попытки решения этой особенности, в том числе в нашей компании. Но они пока не увенчались успехом, главным образом из-за движка PostgreSQL. В докладе я хочу рассказать о довольно простом и небольшом расширении pg_variables. Оно позволяет создавать табличные переменные наряду со скалярными. Я расскажу, в каких случаях оно может заменить временные таблицы, какие у него есть достоинства и недостатки.

Слайды

Александр Стрижевский

АО "123 АРЗ"

Начальник отдела ИТ

Работа 1C+PostgreSQL в Docker контейнерах

Доклад
  1. Работоспособность сервера 1С в Linux
  2. Простота установки и запуска нескольких экземпляров различных версий 1С в docker контейнере в Linux
  3. Настройка получения лицензий сервером 1С в docker контейнере в Linux от аппаратного ключа HASP
  4. Простота установки и запуска нескольких экземпляров различных версий PostgreSQL в docker контейнере Linux
  5. Взаимодействие контейнеров 1С и PostgreSQL между несколькими серверами посредством docker swarm
  6. Мониторинг и управление PostgreSQL в docker контейнере Linux

Алексей Фадеев

SibEDGE

Разработчик

ORM: как писать запросы и не сводить с ума СУБД

Доклад

Многие специалисты, обслуживающие СУБД не любят эти три буквы - ORM, потому что не раз видели сгенерированные многоэтажные запросы для простейших операций. Однако, практика показывает, что источник проблемы - не ORM, а разработчики, не умеющие ими пользоваться. В этом докладе я расскажу основные принципы, как писать код для ORM, генерирующий «хорошие» запросы, а также покажу «плохие» примеры кода, и что из них получается на выходе. Основные идеи – при написании кода мыслить в SQL, научиться заранее видеть, какой запрос будет сгенерирован. Но даже обретя такой навык нужно всегда проверять выходной SQL для сложных запросов. Приведу конкретный пример, когда незначительное изменение в ORM-логике меняет объём выходного SQL в десятки(!) раз. Расскажу о дополнительных инструментах и хитростях. А именно – отключение трекинга, конструкция Include, разный синтаксис для JOIN, как получить больше данных за меньшее число запросов, как эффективно писать запросы с группировкой, и зачем нужны проекции. Не обойду стороной и случаи, когда эффективно решить задачу средствами ORM не получается (например, запросы с рекурсией). Кроме SELECT-запросов немного расскажу о средствах Batch-Update/Delete, позволяющих обновлять и удалять данные средствами ORM без загрузки на клиент. Несколько слов будет и о вставке – как заставить ORM быстро вставлять большие объёмы данных через Multi-Insert и COPY. Будет упомянуто и о поддержке в ORM специфичных для PostgreSQL типов данных – массивов, hstore и jsonb. Может возникнуть вопрос – а есть ли вообще смысл использовать ORM, раз нужно столькому научиться. Преимущества их использования есть, и об этом тоже будет сказано. Все примеры будут на технологии Entity Framework для платформ .Net Core и .Net Framework на языке C#. Для Hibernate/NHibernate могут быть отличия в некоторых тонкостях, но основные принципы те же, поэтому доклад будет полезен разработчикам, использующим различные технологии.

Слайды

Петр Ярмуз

Allegro sp. z.o.o

Старший инженер по базам данных

Хакинг с Postgres 11 - pg_threads

Доклад

Мое выступление будет посвящено написанию расширений для Postgres. Я создал модуль pg_threads, который реализует упрощенную версию API POSIX потоков внутри базы данных Postgres. Он дает разработчикам баз данных новый мощный инструмент для параллельного написания кода и использования преимуществ многоядерной CPU. Существует дополнительное API для транзакционных и нетранзакционных IPC между потоками. Я покажу пример приложения, в котором реализовано преимущество нового API - линейное масштабирование равномерно на два узла. Презентация сопровождается живой демонстрацией на vagrant с двумя виртуальными машинами на Ubuntu и двуми базами данных Postgres.

Слайды

Жульян Руо

-

Разработчик

HypoPG 2: поддержка гипотетического секционирования в PostgreSQL

Доклад

Декларативное секционирование было долгожданной фичей, которая претерпела улучшение с момента ее появления в релизе PostgreSQL 10. Однако для многих пользователей нахождение оптимальных схем секционирования, дающих наибольший эффект, все еще является нелегкой задачей. По этой причине мы добавили в HypoPG новую фичу гипотетического секционирования, которая помогает пользователям проектировать схему секционирования. В ходе презентации я сделаю небольшое введение в HypoPG и декларативное секционирование, а затем покажу применение гипотетического секционирования и объясню, как работает расширение.

Слайды

Мирослав Шедиви

solute GmbH

Старший разработчик ПО

Битемпоральность: отслеживание воспроизводимых изменений в PostgreSQL с помощью типа данных RANGE

Доклад

Итак, вы наконец создали модель базы данных для вашего приложения и наполнили ее текущими данными. Каким образом обеспечить их актуальность? Хотя команда INSERT может быть все еще прозрачной, команды UPDATE и DELETE перезапишут ваши предыдущие данные, так что вы не сможете их воспроизвести. Клонирование целиком огромного контента при каждом небольшом обновлении - не вариант. Для богатых и сложных данных о сотнях тысяч электрогенераторов в Германии и по всему миру я построил базу данных, используя тип данных range, недавно появившийся в PostgreSQL. Это позволило мне добавлять, обновлять и удалять данные, при том обладая полным доступом к состоянию базы данных в любой исторический момент. Во время выступления я представлю очень упрощенную версию базы данных, чтобы аудитория смогла тут же применить знания на практике. Также я покожу несколько хитрых приемов в работе с Python и Psycopg2, которые позволят всей команде подготавливать, просматривать и развертывать все изменения в базе данных без конфликтов слияния. И подкину несколько идей о том, как можно эти данные эффективно извлекать.

Слайды

Николай Самохвалов

Nombox LLC

Основатель

Промышленный подход к тюнингу PostgreSQL: эксперименты над базами данных

Доклад

Shared_buffers = 25% – это много или мало? Или в самый раз? Как понять, подходит ли эта – довольно устаревшая – рекомендация в вашем конкретном случае?

Пришло время подойти к вопросу подбора параметров postgresql.conf "по-взрослому". Не с помощью слепых "автотюнеров" или устаревших советов из статей и блогов, а на основе:

  1. строго выверенных экспериментов на БД, производимых автоматизированно, в больших количествах и в условиях, максимально приближенных к "боевым",
  2. глубокого понимания особенностей работы СУБД и ОС.

Используя Nancy CLI (https://gitlab.com/postgres.ai/nancy), мы рассмотрим конкретный пример – пресловутые shared_buffers – в разных ситуациях, в разных проектах и попробуем разобраться, как же подобрать оптимальную настройку для нашей инфраструктуры, БД и нагрузки.

Слайды

Кристофер Трэверс

Adjust GmbH

Администратор баз данных

Восстановление данных в PostgreSQL при поврежденной файловой системе

Доклад

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

Слайды

Мирослав Шедиви

solute GmbH

Старший разработчик ПО

Python и PostgreSQL с использованием psycopg2

Мастер-класс

Python, может быть, не самый быстрый язык программирования на CPU, но быстрая и простая разработка на нем экономит массу усилий того, кто находится между креслом и клавиатурой. В ходе мастер-класса мы разберем "psycopg2" - наиболее популярную библиотеку для доступа к серверу PostgreSQL, а также напишем небольшое приложение, используя некоторые его полезные свойства.

Мирослав Шедиви

solute GmbH

Старший разработчик ПО

Асинхронный Python и PostgreSQL с использованием asyncpg

Мастер-класс

Возможно, Python не самый быстрый язык программирования на CPU, но быстрая и простая разработка на нем экономит массу усилий того, кто находится между креслом и клавиатурой. Поскольку программные клиенты базы данных большую часть времени находятся в ожидании отклика от сервера базы данных, аснихронная функциональность Python, ставшая доступной в последних версиях (3.5+), может оказаться полезной для значительной оптимизации скорости работы приложения за счет того, что время подготовки ответа сервером может быть использовано приложением для работы над другими задачами. Асинхронный интерфейс между Python и PostgreSQL называется "asyncpg". В ходе мастер-класса я разберу работу с данной библиотекой и напишу короткое приложение, использую некоторые полезные свойства библиотеки.

Альваро Эрнандес

OnGres

Миграция с Oracle на PostgreSQL

Мастер-класс

Хватит платить за яхту Ларри!

PostgreSQL - это полнофункциональная система управления базами данных с открытым кодом уровня предприятия, которая дважды кряду получает статус "СУБД года". И это также наилучший кандидат для миграции с Oracle. PostgreSQL поддерживает продвинутый SQL, она проста в администрировании, а pl/pgsql является заменой ораклового PL/SQL. Пора прекратить тратить сотни тысяч или миллионы долларов на лицензии для СУБД - лучше направьте эти деньги на инвестиции в свою команду, улучшение инфраструктуры или ПО.

Присоединяйтесь к мастер-классу, чтобы за полдня изучить лучшие практики, инструменты и некоторые секреты успешного мигрирования с Oracle на PostgreSQL. Учитесь у команды, которая провела миграцию на PostgreSQL Blackberry на GCP с 150М пользователей с практически нулевым временем простоя, и у ключевого создателя orafce - набора Oracle-совместимых функций поверх PostgreSQL.