SlideShare une entreprise Scribd logo
1  sur  24
Обработка статистики в системе
управления баннерной рекламой
         Артём Вольфтруб
Общая архитектура системы
        Балансировщик
           нагрузки                 Балансировщик нагрузки


 Merchant
                                                  ….
                                        Баннер сервера

                  Портал
 Affiliate

                            База
                                      Сервер обработки
                           данных
                                         статистики

                                                             2
Размеры рекламной сети
• Более 200 000 рекламных площадок
• Более 20 000 рекламодателей
• Более 450 000 000 регистрируемых событий
  ежедневно



                                             3
Нагрузка на систему
• 15 000 запросов к баннерным машинам в секунду
• Около 500 запросов к порталу в секунду




                                                  4
ок




                   100 000 000
                                 200 000 000
                                               300 000 000
                                                             400 000 000
                                                                           500 000 000
                                                                                         600 000 000
                                                                                                       700 000 000




               0
       т.
          0
    ян 3
       в.
          0
    ап 4
       р.
    ию 0 4
       л.
         0
     ок 4
       т.
          0
    ян 4
       в.
          0
    ап 5
       р.
    ию 0 5
       л.
         0
     ок 5
       т.
          0
    ян 5
       в.
          0
    ап 6
       р.
         0
    ию 6
       л.
          0
     ок 6
       т.
          0
    ян 6
       в.
          0
    ап 7
       р.
    ию 0 7
       л.
         0
     ок 7
       т.
          0
    ян 7
       в.
          08
                                                                                                                     Число регистрируемых событий




5
• Распределение нагрузки
  – Балансирвка запросов с помощью аппаратного LB


• Повышение отказоустойчивости
  – Взаимозаменяемость баннерных машин
  – Дублирование ключевых компонентов системы


                                                    6
Особенности бизнес модели
• Качество сервиса определяется количеством
  участников
• Отсутствует комиссия за показы
• Площадки заинтересованы в эффективном
  размещении
• Вовлёченность в процесс
                                              7
Что регистрируем
• Показы
• Клики
• Транзакции




                                  8
ок
       т.
          0




               0%
                    20%
                          40%
                                   60%
                                         80%
    ян 3
       в.                                      100%
          0
    ап 4
       р.
    ию 04
       л.
          0
     ок 4
       т.
          0
    ян 4
       в.
          0
    ап 5
       р.
    ию 05
       л.
          0
     ок 5
       т.
          0
    ян 5
       в.
          0
    ап 6
       р.
    ию 06
       л.
          0
     ок 6
       т.
          0
    ян 6
       в.
          0
    ап 7
       р.
    ию 07
       л.
          0
     ок 7
       т.
          0
    ян 7
       в.
          08
                           Клики
                           Транзакции
                                                      Комиссия за клики и транзакции




9
Основные проблемы
• Очень много данных
• Очень мало времени на обработку
• Система должна работать непрерывно




                                       10
Способы уменьшения объема данных
• Предварительная группировка
• Проверка кликов




                                11
Способы ускорения обработки
•   Ускорение загрузки там, где это возможно
•   Задачи не должны блокировать друг друга
•   Запуск процессов по расписанию
•   Взаимосвязанность задач – это хорошо



                                               12
Этапы обработки статистики
•   Загрузка логов с баннерных серверов
•   Предварительная группировка данных
•   Проверка кликов
•   Загрузка данных в БД
•   Расчет статистики

                                          13
Проблемы базы данных
• Гигантский объем таблиц с показами и
  кликами
• Необходимо блокировать загрузку на время
  расчета статистики



                                             14
Предварительное заполнение БД
                  Триггеры                      Хранимые
                                                процедуры

    Pageviews                Pageviews_stg




      Clicks                    Clicks_stg                  Stats_stg




   Transactions              Transactions_stg




                                                                        15
Денормализация данных
                   Stats_stg


   Рекламные                       Рекламные
    кампании                         места


    Площадки                      Рекламодатели



    Баннеры                         Баннеры



  Статистика для                  Статистика для
 рекламодателей                    владельцев
                               рекламных площадок

                                                    16
Отображение статистики




            Кэш приложения
Merchant
                              Front End

                                           База
                                          данных
Affiliate

                             Web Сервер
                                                   17
Почему мы кэшируем данные
• Запросы часто повторяются
• Статистика обновляется по расписанию. Если
  нет новых данных, зачем обращатся к БД?
• Сортировка средствами БД работает медленнее




                                            18
Контроль работоспособности
• Остановка системы приводит к лавинообразному
  накоплению необработанной информации
• Клиенты хотят видеть свои данные
• Обработка статистики используется для биллинга



                                                   19
Основные индикаторы
• Число необработанных файлов на сервере
• Задержка загрузки файлов с баннер сервера
• Задержка обработки статистики




                                              20
Что мы контролируем
• Баннерные сервера
• Сервер обработки статистики
• База данных




                                 21
Как мы контролируем
• Готовые решения для контроля на аппаратном
  уровне (Nagios)

• Собственные разработки для контроля на уровне
  приложения

                                                  22
Как защититься от сбоев
• Раньше знаешь, больше спишь
• Проблему нужно предвидеть
• С проблемой нужно научиться бороться




                                         23
Вопросы?
Email: artem@gramant.ru

Contenu connexe

Tendances

Profit Backlog | В погоне за эффективным бэклогом
Profit Backlog | В погоне за эффективным бэклогомProfit Backlog | В погоне за эффективным бэклогом
Profit Backlog | В погоне за эффективным бэклогомNikita Filippov
 
Digest#14(81)
Digest#14(81)Digest#14(81)
Digest#14(81)kabirvan
 
как открыть компьютерный им ноутбуков
как открыть компьютерный им ноутбуковкак открыть компьютерный им ноутбуков
как открыть компьютерный им ноутбуковguest6d8996
 
Не просто опрос. Удаленные юзабилити-исследования
Не просто опрос. Удаленные юзабилити-исследованияНе просто опрос. Удаленные юзабилити-исследования
Не просто опрос. Удаленные юзабилити-исследованияUIDesign Group
 
Урлагийн үүсэл, хөгжил мөн чанар
Урлагийн үүсэл, хөгжил мөн чанарУрлагийн үүсэл, хөгжил мөн чанар
Урлагийн үүсэл, хөгжил мөн чанарRayya Jakhynbyek
 
Лучше практики центров оценки
Лучше практики центров оценкиЛучше практики центров оценки
Лучше практики центров оценкиVitaliy Mazurenko
 
Для конференции "Интранет в России"
Для конференции "Интранет в России"Для конференции "Интранет в России"
Для конференции "Интранет в России"Mikhail Galushko
 
Работа с интерактивной обоучающей оболочкой MOODLE
Работа с интерактивной обоучающей оболочкой MOODLEРабота с интерактивной обоучающей оболочкой MOODLE
Работа с интерактивной обоучающей оболочкой MOODLEYana
 
Программа лояльности
Программа лояльностиПрограмма лояльности
Программа лояльностиvseneshtiak
 
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...wud
 
РИФ 2008: Онлайн оплата электронного авиабилета (Аэрофлот)
РИФ 2008: Онлайн оплата электронного авиабилета (Аэрофлот)РИФ 2008: Онлайн оплата электронного авиабилета (Аэрофлот)
РИФ 2008: Онлайн оплата электронного авиабилета (Аэрофлот)E-Money News
 
Продвижение портала новостроек. Как SEO помогает стать лидером рынка?
Продвижение портала новостроек. Как SEO помогает стать лидером рынка?Продвижение портала новостроек. Как SEO помогает стать лидером рынка?
Продвижение портала новостроек. Как SEO помогает стать лидером рынка?collaborator.pro
 
РИФ 2008: Электронные платежные системы: универсализация или специализация? (...
РИФ 2008: Электронные платежные системы: универсализация или специализация? (...РИФ 2008: Электронные платежные системы: универсализация или специализация? (...
РИФ 2008: Электронные платежные системы: универсализация или специализация? (...E-Money News
 
Etarget Partner programme - Bulgaria
Etarget Partner programme - BulgariaEtarget Partner programme - Bulgaria
Etarget Partner programme - BulgariaJan Sifra
 

Tendances (15)

Profit Backlog | В погоне за эффективным бэклогом
Profit Backlog | В погоне за эффективным бэклогомProfit Backlog | В погоне за эффективным бэклогом
Profit Backlog | В погоне за эффективным бэклогом
 
Digest#14(81)
Digest#14(81)Digest#14(81)
Digest#14(81)
 
как открыть компьютерный им ноутбуков
как открыть компьютерный им ноутбуковкак открыть компьютерный им ноутбуков
как открыть компьютерный им ноутбуков
 
Slide analyst
Slide analystSlide analyst
Slide analyst
 
Не просто опрос. Удаленные юзабилити-исследования
Не просто опрос. Удаленные юзабилити-исследованияНе просто опрос. Удаленные юзабилити-исследования
Не просто опрос. Удаленные юзабилити-исследования
 
Урлагийн үүсэл, хөгжил мөн чанар
Урлагийн үүсэл, хөгжил мөн чанарУрлагийн үүсэл, хөгжил мөн чанар
Урлагийн үүсэл, хөгжил мөн чанар
 
Лучше практики центров оценки
Лучше практики центров оценкиЛучше практики центров оценки
Лучше практики центров оценки
 
Для конференции "Интранет в России"
Для конференции "Интранет в России"Для конференции "Интранет в России"
Для конференции "Интранет в России"
 
Работа с интерактивной обоучающей оболочкой MOODLE
Работа с интерактивной обоучающей оболочкой MOODLEРабота с интерактивной обоучающей оболочкой MOODLE
Работа с интерактивной обоучающей оболочкой MOODLE
 
Программа лояльности
Программа лояльностиПрограмма лояльности
Программа лояльности
 
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
 
РИФ 2008: Онлайн оплата электронного авиабилета (Аэрофлот)
РИФ 2008: Онлайн оплата электронного авиабилета (Аэрофлот)РИФ 2008: Онлайн оплата электронного авиабилета (Аэрофлот)
РИФ 2008: Онлайн оплата электронного авиабилета (Аэрофлот)
 
Продвижение портала новостроек. Как SEO помогает стать лидером рынка?
Продвижение портала новостроек. Как SEO помогает стать лидером рынка?Продвижение портала новостроек. Как SEO помогает стать лидером рынка?
Продвижение портала новостроек. Как SEO помогает стать лидером рынка?
 
РИФ 2008: Электронные платежные системы: универсализация или специализация? (...
РИФ 2008: Электронные платежные системы: универсализация или специализация? (...РИФ 2008: Электронные платежные системы: универсализация или специализация? (...
РИФ 2008: Электронные платежные системы: универсализация или специализация? (...
 
Etarget Partner programme - Bulgaria
Etarget Partner programme - BulgariaEtarget Partner programme - Bulgaria
Etarget Partner programme - Bulgaria
 

En vedette

Verksamhets-IT - den sista sovjetstaten
Verksamhets-IT - den sista sovjetstatenVerksamhets-IT - den sista sovjetstaten
Verksamhets-IT - den sista sovjetstatenJonas Söderström
 
Brand-ology:Tips and Tricks for Personal Branding
Brand-ology:Tips and Tricks for Personal Branding Brand-ology:Tips and Tricks for Personal Branding
Brand-ology:Tips and Tricks for Personal Branding Lauren Cooney
 
Internet Educativo 29985
Internet Educativo 29985Internet Educativo 29985
Internet Educativo 29985Tais Ramos
 
The Universe Problem: Poll results, Facebook and the 2012 Presidential campaign
The Universe Problem: Poll results, Facebook and the 2012 Presidential campaignThe Universe Problem: Poll results, Facebook and the 2012 Presidential campaign
The Universe Problem: Poll results, Facebook and the 2012 Presidential campaignIan Lurie
 
Mantra for life
Mantra for lifeMantra for life
Mantra for liferamrag2001
 
Regulación para la Inversión
Regulación para la InversiónRegulación para la Inversión
Regulación para la Inversiónguestb2c12
 
Main Examination
Main ExaminationMain Examination
Main Examinationguest6f300b
 

En vedette (8)

Verksamhets-IT - den sista sovjetstaten
Verksamhets-IT - den sista sovjetstatenVerksamhets-IT - den sista sovjetstaten
Verksamhets-IT - den sista sovjetstaten
 
Brand-ology:Tips and Tricks for Personal Branding
Brand-ology:Tips and Tricks for Personal Branding Brand-ology:Tips and Tricks for Personal Branding
Brand-ology:Tips and Tricks for Personal Branding
 
Internet Educativo 29985
Internet Educativo 29985Internet Educativo 29985
Internet Educativo 29985
 
The Universe Problem: Poll results, Facebook and the 2012 Presidential campaign
The Universe Problem: Poll results, Facebook and the 2012 Presidential campaignThe Universe Problem: Poll results, Facebook and the 2012 Presidential campaign
The Universe Problem: Poll results, Facebook and the 2012 Presidential campaign
 
Mantra for life
Mantra for lifeMantra for life
Mantra for life
 
Sustainable design
Sustainable design Sustainable design
Sustainable design
 
Regulación para la Inversión
Regulación para la InversiónRegulación para la Inversión
Regulación para la Inversión
 
Main Examination
Main ExaminationMain Examination
Main Examination
 

Plus de Ontico

Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)Ontico
 
Встреча докладчиков HL++ 2015
Встреча докладчиков HL++ 2015Встреча докладчиков HL++ 2015
Встреча докладчиков HL++ 2015Ontico
 
Вебинар о конференции HighLoad++
Вебинар о конференции HighLoad++Вебинар о конференции HighLoad++
Вебинар о конференции HighLoad++Ontico
 
Call for papers (2014) ru
Call for papers (2014) ruCall for papers (2014) ru
Call for papers (2014) ruOntico
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Ontico
 
Как разработать социальную сеть, Олег Бунин
Как разработать социальную сеть, Олег БунинКак разработать социальную сеть, Олег Бунин
Как разработать социальную сеть, Олег БунинOntico
 
Конференции Онтико (2011)
Конференции Онтико (2011)Конференции Онтико (2011)
Конференции Онтико (2011)Ontico
 
Программный комитет HighLoad++, 6 октября
Программный комитет HighLoad++, 6 октябряПрограммный комитет HighLoad++, 6 октября
Программный комитет HighLoad++, 6 октябряOntico
 
Конференции 2010 / описание
Конференции 2010 / описаниеКонференции 2010 / описание
Конференции 2010 / описаниеOntico
 
Онтико, 2009
Онтико, 2009Онтико, 2009
Онтико, 2009Ontico
 
Конференции 2010
Конференции 2010Конференции 2010
Конференции 2010Ontico
 
Economy of project development
Economy of project developmentEconomy of project development
Economy of project developmentOntico
 
Ok2009 Пленарка
Ok2009 ПленаркаOk2009 Пленарка
Ok2009 ПленаркаOntico
 
Highload sites, master-class, OK-2009
Highload sites, master-class, OK-2009Highload sites, master-class, OK-2009
Highload sites, master-class, OK-2009Ontico
 
HighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg BuninHighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg BuninOntico
 
I Safety 1c Bitrix
I Safety 1c BitrixI Safety 1c Bitrix
I Safety 1c BitrixOntico
 
I Safety 1c Bitrix
I Safety 1c BitrixI Safety 1c Bitrix
I Safety 1c BitrixOntico
 
Gmr Highload Presentation Revised
Gmr Highload Presentation RevisedGmr Highload Presentation Revised
Gmr Highload Presentation RevisedOntico
 
Wonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusWonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusOntico
 
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusOntico
 

Plus de Ontico (20)

Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
 
Встреча докладчиков HL++ 2015
Встреча докладчиков HL++ 2015Встреча докладчиков HL++ 2015
Встреча докладчиков HL++ 2015
 
Вебинар о конференции HighLoad++
Вебинар о конференции HighLoad++Вебинар о конференции HighLoad++
Вебинар о конференции HighLoad++
 
Call for papers (2014) ru
Call for papers (2014) ruCall for papers (2014) ru
Call for papers (2014) ru
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013
 
Как разработать социальную сеть, Олег Бунин
Как разработать социальную сеть, Олег БунинКак разработать социальную сеть, Олег Бунин
Как разработать социальную сеть, Олег Бунин
 
Конференции Онтико (2011)
Конференции Онтико (2011)Конференции Онтико (2011)
Конференции Онтико (2011)
 
Программный комитет HighLoad++, 6 октября
Программный комитет HighLoad++, 6 октябряПрограммный комитет HighLoad++, 6 октября
Программный комитет HighLoad++, 6 октября
 
Конференции 2010 / описание
Конференции 2010 / описаниеКонференции 2010 / описание
Конференции 2010 / описание
 
Онтико, 2009
Онтико, 2009Онтико, 2009
Онтико, 2009
 
Конференции 2010
Конференции 2010Конференции 2010
Конференции 2010
 
Economy of project development
Economy of project developmentEconomy of project development
Economy of project development
 
Ok2009 Пленарка
Ok2009 ПленаркаOk2009 Пленарка
Ok2009 Пленарка
 
Highload sites, master-class, OK-2009
Highload sites, master-class, OK-2009Highload sites, master-class, OK-2009
Highload sites, master-class, OK-2009
 
HighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg BuninHighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg Bunin
 
I Safety 1c Bitrix
I Safety 1c BitrixI Safety 1c Bitrix
I Safety 1c Bitrix
 
I Safety 1c Bitrix
I Safety 1c BitrixI Safety 1c Bitrix
I Safety 1c Bitrix
 
Gmr Highload Presentation Revised
Gmr Highload Presentation RevisedGmr Highload Presentation Revised
Gmr Highload Presentation Revised
 
Wonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusWonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 Rus
 
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 Rus
 

Hl++ Stats

  • 1. Обработка статистики в системе управления баннерной рекламой Артём Вольфтруб
  • 2. Общая архитектура системы Балансировщик нагрузки Балансировщик нагрузки Merchant …. Баннер сервера Портал Affiliate База Сервер обработки данных статистики 2
  • 3. Размеры рекламной сети • Более 200 000 рекламных площадок • Более 20 000 рекламодателей • Более 450 000 000 регистрируемых событий ежедневно 3
  • 4. Нагрузка на систему • 15 000 запросов к баннерным машинам в секунду • Около 500 запросов к порталу в секунду 4
  • 5. ок 100 000 000 200 000 000 300 000 000 400 000 000 500 000 000 600 000 000 700 000 000 0 т. 0 ян 3 в. 0 ап 4 р. ию 0 4 л. 0 ок 4 т. 0 ян 4 в. 0 ап 5 р. ию 0 5 л. 0 ок 5 т. 0 ян 5 в. 0 ап 6 р. 0 ию 6 л. 0 ок 6 т. 0 ян 6 в. 0 ап 7 р. ию 0 7 л. 0 ок 7 т. 0 ян 7 в. 08 Число регистрируемых событий 5
  • 6. • Распределение нагрузки – Балансирвка запросов с помощью аппаратного LB • Повышение отказоустойчивости – Взаимозаменяемость баннерных машин – Дублирование ключевых компонентов системы 6
  • 7. Особенности бизнес модели • Качество сервиса определяется количеством участников • Отсутствует комиссия за показы • Площадки заинтересованы в эффективном размещении • Вовлёченность в процесс 7
  • 8. Что регистрируем • Показы • Клики • Транзакции 8
  • 9. ок т. 0 0% 20% 40% 60% 80% ян 3 в. 100% 0 ап 4 р. ию 04 л. 0 ок 4 т. 0 ян 4 в. 0 ап 5 р. ию 05 л. 0 ок 5 т. 0 ян 5 в. 0 ап 6 р. ию 06 л. 0 ок 6 т. 0 ян 6 в. 0 ап 7 р. ию 07 л. 0 ок 7 т. 0 ян 7 в. 08 Клики Транзакции Комиссия за клики и транзакции 9
  • 10. Основные проблемы • Очень много данных • Очень мало времени на обработку • Система должна работать непрерывно 10
  • 11. Способы уменьшения объема данных • Предварительная группировка • Проверка кликов 11
  • 12. Способы ускорения обработки • Ускорение загрузки там, где это возможно • Задачи не должны блокировать друг друга • Запуск процессов по расписанию • Взаимосвязанность задач – это хорошо 12
  • 13. Этапы обработки статистики • Загрузка логов с баннерных серверов • Предварительная группировка данных • Проверка кликов • Загрузка данных в БД • Расчет статистики 13
  • 14. Проблемы базы данных • Гигантский объем таблиц с показами и кликами • Необходимо блокировать загрузку на время расчета статистики 14
  • 15. Предварительное заполнение БД Триггеры Хранимые процедуры Pageviews Pageviews_stg Clicks Clicks_stg Stats_stg Transactions Transactions_stg 15
  • 16. Денормализация данных Stats_stg Рекламные Рекламные кампании места Площадки Рекламодатели Баннеры Баннеры Статистика для Статистика для рекламодателей владельцев рекламных площадок 16
  • 17. Отображение статистики Кэш приложения Merchant Front End База данных Affiliate Web Сервер 17
  • 18. Почему мы кэшируем данные • Запросы часто повторяются • Статистика обновляется по расписанию. Если нет новых данных, зачем обращатся к БД? • Сортировка средствами БД работает медленнее 18
  • 19. Контроль работоспособности • Остановка системы приводит к лавинообразному накоплению необработанной информации • Клиенты хотят видеть свои данные • Обработка статистики используется для биллинга 19
  • 20. Основные индикаторы • Число необработанных файлов на сервере • Задержка загрузки файлов с баннер сервера • Задержка обработки статистики 20
  • 21. Что мы контролируем • Баннерные сервера • Сервер обработки статистики • База данных 21
  • 22. Как мы контролируем • Готовые решения для контроля на аппаратном уровне (Nagios) • Собственные разработки для контроля на уровне приложения 22
  • 23. Как защититься от сбоев • Раньше знаешь, больше спишь • Проблему нужно предвидеть • С проблемой нужно научиться бороться 23