title

text

Gregory Stark
Gregory Stark
17:00 05 февраля
45 мин

Сортировка - прошлое, настроящее и будущее

When new versions of Postgres are released most of the attention is focused on new features. Inevitably a release note claiming speed improvements seems relatively mundane and doesn't provide the compelling argument for upgrading. However the reality is that these speed improvements represent pain points that have been identified and solved.

Reviewing the changes to the sort code in Postgres over the last 10 years clearly shows the kinds of problems users have run into. As usage patterns changed over years, databases scaled up, and hardware changed new problems arose and drove further development to solve them.

Upcoming changes in 9.5 and 9.6 will dramatically change the experience further. Making sorting UTF8 and other encodings less of a problem and handling scaling to larger machines with many processors and memory cache more effectively.

Слайды

Видео

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

  • Ильдар Мусин
    Ильдар Мусин Postgres Professional Разработчик
    22 мин

    Секционирование без границ

    Механизм секционирования в Postgres имеет ряд ограничений, которые не позволяют использовать концепцию секционирования в полной мере. Среди таких ограничений можно выделить неэффективность планирования запросов для секционированных таблиц (линейный рост времени планирования при увеличении количества секций), отсутствие HASH-секционирования, необходимость ручного управления секциями. Однако, средства расширяемости Postgres предоставляют разработчику широкие возможности, позволяющие обойти некоторые ограничения. В докладе будет рассказано, как внедрившись в код планировщика удалось оптимизировать время планирования запросов. Так метод бинарного поиска позволяет добиться логарифмического роста времени планирования для RANGE-секционированных таблиц. Поэтому использование даже тысяч секций не будет приводить к существенным накладным расходам. Также удалось реализовать HASH-секционирование с близким к константному времени планирования.

  • Ronan Dunklau
    Ronan Dunklau Dalibo DBA
    45 мин

    Multicorn: разработка Foreign Data Wrapper'ов на языке Python

    Multicorn - это обобщенный Foreign Data Wrapper (FDW, интерфейс для подключения внешних источников данных, устоявшегося русского названия пока нет), предоставляющий возможность разработки конкретных FDW на языке Python, что упрощает их разработку.

    Мы узнаем:

    • Что такое FDW, как работает Multicorn, и какие готовые FDW поставляются вместе с ним.
    • Как написать свой FDW на python, включая новый интерфейс IMPORT FOREIGN SCHEMA, появившийся в версии 9.5.
    • Внутренности Multicorn: что он делает и что не делает внутри.

    После общего рассмотрения FDW и Multicorn, мы детальнее рассмотрим некоторые FDW, поставляемые с ним.

    Затем проведем полный тур по API Multicorn, чтобы научить вас создавать FDW на Python, включая следующие детали:

    • испольование определений таблиц
    • пробрасывание WHERE
    • ограничения колонок
    • как влиять на планировщик
    • как писать во внешнюю таблицу
    • как работать с импортом внешней схемы
    • пробрасывание ORDER BY
    • управление транзакциями

    Все это будет объяснено наглядно, с примерами кода, позволяющими слушателям с нуля создать свой FDW на Python.

  • Юрий Соболев
    Юрий Соболев ООО "МедиаТех" Генеральный Директор

    PostgreSQL как ядро биржи интернет-рекламы Adsterra.com

    Общая информация об adsterra.com

    • adsterra.com - биржа интернет рекламы
    • В данный момент имеет порядка 150 млн показов баннеров в сутки.120 положение в alexa.com на 30.11.2015. Записывает в postgresql до 10000(и больше) событий в секунду. Читает до 5000
    • 20 отдельных серверов под БД с различными ролями
    • Активно использует логику внутри БД. Много PL/pgsql и SQL функций.

    Причины выбора Postgresql

    • История создания adsterra.com.
    • Сжатые сроки отведенные на разработку определили выбор в пользу готовых систем хранения данных.
    • Postgresql привлек своей бесплатностью и рядом фишек, которых не было у конкурентов. Некоторые в итоге оказались полезными, некоторые не очень.

    Описание архитектуры проекта

    • Общая схема взаимодействия
    • Роли групп серверов
    • Использование различных методов для взаимодействия серверов: Потоковая репликация, Londiste, postgres_fdw. Плюсы и минусы каждого.
    • Шардинг
    • Использование SQL под OLTP

    Проблемы возникшие в ходе разработки/использования и варианты решения:

    • Материализованные представления. Проблемы с обновлением и поддержкой. Что сделали в итоге.
    • Londiste. Какие проблемы были решены в ходе разработки, а какие так и не были.
    • Проблемы потоковой репликации.
    • Автовакум и вакум.
    • Странности планировщика.
    • Конкурентный доступ.

    Крутые штуки Postgresql, которые сильно помогли

    • Массивы, intarray и GIN индексы. Но не все гладко.
    • Партиционирование. Но не все есть, что хочется.
    • PL/pgsql. Но не всегда следует его использовать.
    • unlogged таблицы. Но с умом.

    Текущие разработки и нерешенные проблемы

    • Реализация колоночной аналитики штатными средствами.
    • Проблемы странных планов запросов.
    • Логическая репликация мечты
    • Мультимастер...

  • Евгений Тюменцев
    Евгений Тюменцев ООО "Здравствуй мир! Технологии" Генеральный диреткор
    22 мин

    Об опыте применения JSONB в реальных проектах

    Будут рассмотрены преимущества и недостатки решений на основе JSONB по сравнению с традиционным реляционным подходом на примере реальных проектов, в том числе: 1. Производительность 2. Версионность данных 3. Масштабируемость 4. Надежность 5. Построение отчетов