Hl++ Stats

Post on 17-Dec-2014

392 views 0 download

description

 

Transcript of Hl++ Stats

Обработка статистики в системе управления баннерной рекламой

Артём Вольфтруб

2

Общая архитектура системы

Баннер сервера

….

Балансировщик нагрузки

Сервер обработки статистики

База данных

Портал

Merchant

Affiliate

Балансировщик нагрузки

3

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

ежедневно

3

4

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

4

5

Число регистрируемых событий

5

0

100 000 000

200 000 000

300 000 000

400 000 000

500 000 000

600 000 000

700 000 000

6

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

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

7

Особенности бизнес модели • Качество сервиса определяется количеством

участников• Отсутствует комиссия за показы• Площадки заинтересованы в эффективном

размещении• Вовлёченность в процесс

7

8

Что регистрируем• Показы• Клики• Транзакции

8

9

Комиссия за клики и транзакции

0%

20%

40%

60%

80%

100%

Транзакции

Клики

10

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

10

11

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

11

12

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

13

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

13

14

Проблемы базы данных• Гигантский объем таблиц с показами и

кликами• Необходимо блокировать загрузку на время

расчета статистики

15

Предварительное заполнение БД

15

Pageviews

Clicks

Transactions

Pageviews_stg

Clicks_stg

Transactions_stg

Stats_stg

Триггеры Хранимые процедуры

16

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

16

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

Stats_stg

Статистика для рекламодателей

Площадки

Баннеры

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

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

Баннеры

Статистика для владельцев

рекламных площадок

17

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

17

Merchant

Affiliate

База данных

Web Сервер

Кэш

при

лож

ени

я

Front End

18

Почему мы кэшируем данные• Запросы часто повторяются

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

• Сортировка средствами БД работает медленнее

18

19

Контроль работоспособности• Остановка системы приводит к лавинообразному

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

19

20

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

21

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

21

22

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

уровне (Nagios)

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

22

23

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

23

Вопросы?

Email: artem@gramant.ru