title

text

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

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 мин

    Расширенные возможности аудита в СУБД PostgreSQL в дистрибутиве ОС "Astra Linux Special Edition"

    Базовая версия СУБД PostgreSQL предоставляет возможность регистрации событий:

    - входа и выхода пользователей;
    - отказа в доступе к защищаемому ресурсу;с указанием даты, времени и имени пользователя.
    

    Требования руководящих документов к подсистеме регистрации событий намного шире возможностей базовой версии СУБД PostgreSQL.

    ОАО «НПО РусБИТех» проводит необходимые доработки СУБД PostgreSQL для расширения ее функциональных возможностей.

    В результате доработок подсистема регистрации событий СУБД PostgreSQL в составе ОС «AstraLinux Special Edition» дополнительно обеспечивает возможность регистрации:

    - создания и уничтожения объектов баз данных;
    
    - изменения правил разграничения доступа;
    
    - как отказов, так и успешных попыток доступа к объектам баз данных;
    
    - изменений полномочий субъектов доступа и статуса объектов доступа.
    

    Для всех событий указываются:

    - дата и время; 
    
    - пользователь, осуществляющий регистрируемое действие;
    
    - объект, над которым проводится действие;
    
    - тип события;
    
    - результат операции.
    

    Подсистема регистрации событий доработанного PostgreSQL интегрирована в централизованную систему аудита ОС «Astra Linux Special Edition». Обеспечена настройка правил регистрации событий без останова (перезапуска) СУБД.

  • Валентин Гогичашвили
    Валентин Гогичашвили Zalando Head of Data Engineering

    Интеграция данных в мире микросервисов

    Стремительно стартовав в 2008 году, Zalando продолжает развиваться, не снижая скорости. На пути от скромного стартапа к многонациональной корпорации возникает множество сложнейших задач, особенно для Zalando Technology. Команда из 900 человек, распределенных в Берлине, Дортмунде, Дублине и Хельсинки, продолжает расти, планируя еще до конца 2016 года увеличиться в два раза.

    Столь динамичный рост научил нас оперативно менять процессы и перестраивать организационную структуру в зависимости от актуальных задач. С марта 2015 года мы применяем Radical Agility — новейшую стратегию, провозглашающую Автономность, Целеустремленность и Мастерство (Autonomy, Purpose and Mastery) ключевыми принципами — для сплоченной работы команд программистов и менеджеров продукта.

    Реализуя автономность, команды теперь могут самостоятельно выбирать стеки технологий для разработки своих продуктов. Микросервисы, использующие для коммуникации RESTful API, предполагают снижение стоимости интегрирования между такими командами. Изолированные AWS аккаунты, при поддержке разработанной в Zalando open-source PaaS платформы (STUPS.io), дают возможность каждой автономной команде использовать нужное ей количество вычислительных ресурсов для проведения экспериментов и выкатывания новых функций.

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

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

    В моем докладе я расскажу об open-source прототипе, разработанном в Zalando для сбора информации из изолированных PostgreSQL баз данных, применяющем возможности потоковой логической репликации в PostgreSQL с преобразованием данных для использования в разных системах их обработки (Data Lake, Operational Data Store, системы вычисления КПЭ или автоматического мониторинга за процессами). Слушатели узнают, как именно можно использовать логическую потоковую репликацию в мире микросервисов.

  • Fabio Telles Rodriguez
    Fabio Telles Rodriguez Timbira Owner / Consultant
    45 мин

    Высокий уровень параллелизма в Postgres: Банк Бразилии в реальной жизни

    Проблемы и решения в системе электронного документооборота и процессинга банковских чеков в Банке Бразилии.

  • Евгений Сергеев
    Евгений Сергеев
    45 мин

    Lua в Postgres(из alpha в beta)

    В докладе хотел бы рассказать про возможности использования языка луа в постгресе, способы расширения функциональности при помощи готовых модулей, возможности удаленной отладки, про проделанные изменения с версии 1.0, отличия в стиле написания кода plpgsql и pllua при использовании функций как аргументов. Так же можно рассказать про некоторые спорные моменты, такие как расширение поддерживаемых типов данных в этом языке. Если интересна другая сторона, то могу поделиться опытом доработки фунциональности скриптового языка в постгресе.