Пост-релиз
Доклады
Архив докладов
-
Юрий Соболев ООО "МедиаТех" Генеральный ДиректорОбщая информация об 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 таблицы. Но с умом.
Текущие разработки и нерешенные проблемы
- Реализация колоночной аналитики штатными средствами.
- Проблемы странных планов запросов.
- Логическая репликация мечты
- Мультимастер...
-
Камиль Исламов Stickeroid Ai CTOПриводится методика, с помощью которой можно автоматизировать обновление результатов предварительной обработки аналитических данных. Предварительная обработка и кэширование отчётов позволяет моментально получать результаты отчётов по большим объёмам данных. В докладе описывается способ обновления кэшированных отчётов с минимальной нагрузкой на сервер и с управляемой степенью актуальности.
-
Дмитрий Мельник ИСП РАН разработчикВ настоящее время в PostgreSQL для исполнения SQL-запросов используется интерпретатор. Это приводит к накладным расходам, связанным с неявными вызовами функций-обработчиков и проверок, которых можно было бы избежать при создании исполняемого кода "на лету" (JIT-компиляции) под конкретный SQL-запрос: в этом случае во время выполнения уже известна структура используемых таблиц и типы данных. Особенно это актуально для сложных запросов, где производительность процессора является основным ограничением. В настоящий момент существует два известных проекта, реализующих JIT-компиляцию в PostgreSQL: коммерческое решение Vitesse DB и open-source проект PGStorm. В первом проекте за счет использования LLVM JIT авторам удается получить ускорение до 8 раз на тестах из набора TPC-H. Второй проект реализует JIT-компиляцию запроса с использованием CUDA для исполнения его на GPU, что позволяет ускорить выполнение некоторых типов запросов на порядок.
Наша работа посвящена добавлению поддержки JIT-компиляции SQL-запросов в PostgreSQL с использованием компиляторной инфраструктуры LLVM. В докладе будет подробно рассмотрено, как JIT-компиляция может быть использована для ускорения различных этапов исполнения SQL-запросов, а также особенности трансляции SQL-запросов в LLVM-биткод для получения эффективного исполняемого кода. Также будут представлены предварительные результаты тестирования JIT-компилятора на наборе тестов TPC-H.
-
Константин Книжник Postgres Professional Ведущий разработчикВ корпоративных информационных системах от СУБД требуется поддержка кластеров, для обеспечения требуемого уровня масштабирования и надёжности. К сожалению, многочисленные попытки реализовать кластеры для Постгреса, такие как Postgres-XL/XC, так и не были доведены до коммерческого уровня и не были приняты сообществом. Другие существующие решения, например, pg_shard, plproxy не поддерживают глобальных ACID транзакций. Наша команда разработала менеджер распределённых транзакций (DTM) как расширение Постгреса, позволяющее достичь глобальной целостности для нескольких экземпляров Постгреса, объединённых в один кластер. DTM - это конструктор, позволяющий реализовать различные решения на его основе. В качестве демонстрации возможностей DTM мы интегрировали его в pg_shard и postgres_fdw. Мы надеемся, что наш подход с расширяемым менеджером транзакций будет включён в версию 9.6 Постгреса и позволит разрабатывать различные кластерные решения на его основе.
Фотографии
Архив фотографий