здесь - Gramant

advertisement
Масштабирование системы баннерной
рекламы с централизованной базой
данных
Сергей Нековаль
Компания «Грамант»
Что масштабируем?
• Японская система баннерной рекламы
более 450 млн. показов в сутки
Система на базе DART Enterprise
более 50 млн. показов в сутки
Что рассказываем?
• Эволюционное развитие архитектуры системы
или Как мы докатились до такой жизни
• Выгоды и проблемы централизации данных
• Capacity Planning и риски
Бизнес-модель
Пользователи
Агенство
Affiliate
Владелец рекламной площадки
Merchant
Рекламодатель
Начало пути
Oracle
• СУБД Oracle
• Веб-сервер
Веб-сервер
Портал
Баннер-сервер
Проблемы
• Нагрузка на баннер-сервер многократно
превышает нагрузку на Портал
• Что будет, если баннер-сервер сломается?
теряем деньги!
Вариант 2
Баннер-сервер
banner01
Баннер-сервер
Oracle
banner02
Баннер-сервер
Портал
banner03
Сервер портала
Load Balancer
Преимущества
• Балансировка загрузки
• Отказоустойчивость баннер-серверов
• Возможность независимого обновления
баннер-серверов
Проблемы
• Мы балансируем загрузку CPU!?
• BLOBs
за сутки
События
• Impression (Показ)
• ClickThrough (Клик)
• Sale (Продажа)
450 млн.
1,5 млн.
35 тыс.
Исходящие данные
BCG_FLIGHT
Ad Network
Flight-файлы
10 млн. связей
200 тыс. сайтов
Бизнесправила
5 млн. строк
HTML-код, ссылки
BCG_CREATIVE
300 тыс. cтрок
Banner-файлы
JPG, PNG, GIF,
SWF, HTML,TXT
Oracle
• Генерируем «свернутое» представление баннеров
(BCG_*)
• Создаем файловую структуру
Игнорируем...
• Задержку данных (20 мин)
• Случайную рассогласованность данных между
серверами
Альтернативы
• Проксирование баннеров
• Content Delivery Networks (Akamai и т.п.)
Входящие данные
Copy
PV
Summarizer
Aggregation
PV Log
SQL*Loader
Copy
CT Log
Insert
banner01
• CT не агрегируются
• Используем SQL*Loader
Oracle
Цикл загрузки
• Сколько PV суммировать?
• Загрузку CT задерживать нельзя!
• Late Arrivals
Вариант 3
Batch Management
(kron)
Свертка данных
Баннер-сервер
Log files
Обработка логов
banner01
Баннер-сервер
Oracle
Log files
banner02
Баннер-сервер
Портал
Портал
Log files
banner03
portal1
Sticky
Load Balancer
portal2
Load Balancer
Проблемы объема
• Размер БД растет
• Оперативные данные составляют не более 10%
Решения
• Разделение на несколько БД
• Partitioning
• Архивирование
Одна база / много баз?
• Связанность данных
• Объем данных для репликации
• Сложность схемы
Разделение данных
Ad Network
Finance
portal
Репликация
Portal DB
PV/CT/Sales
Statistics
Logging DB
banner
Capacity Planning
• Оценка загрузки СУБД
• Оценка загрузки баннер-серверов
Последний вариант
Batch Management
(kron)
Oracle RAC
4 TB
Баннер-сервер
Свертка данных
Обработка логов
Load Balancer
Log files
bannerN
Logging DB
Ne
Sta
tis
Ad
tics
Portal DB
o
tw
rk
Портал
x4
portalN
Sticky
Load Balancer
x 25
Сравним с DART Enterprise
• Построен на базе Oracle
• Подсчет уникальных событий
• Нет поддержки Sales (хотя есть возможность
модифицировать DART)
• Четкое разделение функций между серверами
Компоненты DART
ClickServer
AdClients
AdInsight Server
UserServers
AdServers
Data Bus
Inventory
Manager
Log Processor
Database for Reporting,
Inventory Management
and Business Data
AdManager
Server
Reporting
AdManager
Обработка запроса в DART
Вопросы?
Сергей Нековаль
Компания «Грамант»
snekoval@gramant.ru
www.gramant.ru/co/highload2008.ppt
Download