Пост-релиз
Доклады
Архив докладов
-
Федор Сигаев Postgres Professional
Анастасия Лубенникова Postgres Professional Разработчик
Александр Коротков Postgres Professional Руководитель разработкиНа мастер-классе будет рассказано про устройство внутренних интерфейсов PostgreSQL, о том, как их использовать для написания собственных патчей или расширений, и как продвигать результаты своей работы в сообществе. Анастасия Лубенникова — российский разработчик PostgreSQL, уже известный мировому сообществу – работает над курсом «молодого бойца» для программистов PostgreSQL, что уже анонсировалось в Facebook и на Хабре: Hacking PostgreSQL.
Отдельные части этого курса, подкрепленные многолетним опытом Федора Сигаева и Александра Короткова, составят основу мастер-класса. Мастер-класс рассчитан на программистов, владеющих языком C.
-
Kevin Grittner EnterpriseDBКогда множество пользователей, процессов или потоков выполнения одновременно модифицируют их общие данные, это может вызывать проблемы, если каким-то образом не урегулировать условия гонки. Эти проблемы особенно остро проявляются в базах данных, реализующих семантику ACID. Набор изменений, объединённых в транзакцию базы данных, должен проявляться атомарно, и для параллельных транзакций, и для процесса восстановления после сбоя. Каждая транзакция должна переводить базу данных из одного согласованного состояния (с точки зрения бизнес-правил) в другое. Для эффективной разработки необходимо иметь возможность запрограммировать каждую транзакцию независимо от других транзакций, которые по стечению обстоятельств могут выполняться в то же самое время. В случае сбоя все изменения, внесённые транзакциями, об успешном завершении которых были уведомлены приложения, а также все изменения, ставшие видимыми для других транзакций, должны оставаться в базе после восстановления. За многие годы были выработаны различные стратегии обеспечения этих гарантий, а иногда гарантии корректировались тем или иным способом. В данном докладе будет рассказано, каким образом обеспечиваются эти гарантии или их компромиссные варианты, с упором на методику сериализуемой изоляции снимков (SSI, Serializable Snapshot Isolation), применяемую в PostgreSQL (и ни в какой другой производственной СУБД на данный момент). Хотя SSI уже работает быстрее и с большей степенью параллельности, чем любая другая методика управления условиями гонки с наиболее типичной нагрузкой, есть много путей для дальнейшего увеличения производительности, некоторые из которых требуют помощи эксперта по различным методам доступа индексов; эти вопросы и будут обсуждены в данном докладе. Кроме того, на докладе будут представлены некоторые общие идеи о том, как можно использовать методики SSI с XTM в распределённой системе. В конце мы оставили время для группового обсуждения оптимизации и возможных применений в распределённой среде.
-
Юрий Соболев ООО "МедиаТех" Генеральный ДиректорОбщая информация об 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 таблицы. Но с умом.
Текущие разработки и нерешенные проблемы
- Реализация колоночной аналитики штатными средствами.
- Проблемы странных планов запросов.
- Логическая репликация мечты
- Мультимастер...
-
Ronan Dunklau Dalibo DBAMulticorn - это обобщенный 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.
Фотографии
Архив фотографий