SlideShare a Scribd company logo
● imps
● clicks
● pcpv
Статистика
● > 150M показов в день
● > 1.5M запросов каждые 15 минут
● > 200Gb сырых логов в день
● > 500M уникальных пользователей в месяц
AdBlade - история развития
1 x Mysql
2 x Web PHP
1-2M imps
8 x PHP+MySQL+Lighty
50M imps
19 x PHP+MySQL+Lighty
Analytics (Mysql/Mongo)
80M imps
10 x Web Java
1 x InfoBright
120M imps
AdBlade 2008
● 2M показов в день
● 2 общих веб-сервера для
показов и главного сайта
● 1 база mysql для всех
транзакций, включая показы
2 x Servers
PHP+Lighttpd
1 x Server
MySQL
AdBlade 2009 - 2012
● 50М imps в день
● 8 серверов для показов
● 500 макс. показов на сервер
● логирование в csv файлы 8 x Servers
PHP+Lighttpd+
MySQL
2 x Servers
MySQL(M+S)
www
csv
events
AdBlade 2012 - 2014
Main site
www01/02
2 x Servers
MySQL(M+S)
19 x Servers
PHP+Lighttpd+MySQL
csv / json logs
MySQL / MongoDB
Analytic Server
80М imps
MongoDB (2013-2014)
Плюсы:
● горизонтальное масштабирование
● гибкое создание запросов с помощью js
● отсутствие схемы
MongoDB (2013-2014)
Минусы
● отсутствие качественных php библиотек
● размер базы значительно увеличился из-за
необходимости хранения ключей и _id поля.
● невозможность быстрой чистки базы с
высвобождением занимаемого места.
● MapReduce работает асинхронно и нет возможности
контролировать его из клиентского приложения
MongoDB (2013-2014)
Test results for log file with 1M rows
17.1K
1: { "_id": {"$oid": "4b838e8500000000000006e2"},
2: "appId": 1762,
3: "imps": 438,"clicks": 0,
4: "amount1": -0.876, "amount2": 0,
5: "date": {"$date": "2013-02-23T03:15:01.000-0500"},
6: }
17.1K 95
62.5K 31
Row Size bytesInsert Rows/Sec
MongoDB
MySql
Переход на Java
● Netty фреймворк для работы с сетью
● база данных в памяти сервера
● поминутное логирование
● 7K-8K показов в секунду
● уменьшили количество серверов в 3 раза
Hadoop
● необходимость создания собственной
инфраструктуры для хранения данных
● необходимо писать логику работы с hadoop
● минимум 2-3 сервера для базовой конфигурации, а
для объёма нашей информации минимум 5 серверов.
Vertica
● column based
● компрессия данных
● есть шардинг для масштабирования
● SQL запросы для выбора данных
● дорогая лицензия
InfoBright
Плюсы:
● column based движок для MySQL
● загрузчик данных DLP (Distributed Load Processor).
● сжатие информации до 10x
● быстрые выборки с помощью knowledge grid
● быстрое удаление больших объемов информации
● практически неограниченный размер базы
● быстрое добавление новых колонок в таблицы
InfoBright
Минусы:
● лицензия
● требует внимательности при работе с данными для
обеспечения производительности
● отсутствие горизонтального масштабирования
Column vs Row oriented DB
● сжатие - данные в колонке однородные
● чтение только нужных колонок при поиске данных
Database Knowledge Grid
Knowledge Grid представляет собой набор метаданных Infobright,
которые используются для оптимизации выполнения запросов
min()
max()
avg()
sum()
AdBlade 2014 - present
json logs
10 x JAVA
Servers
DLP ServerInfoBright (M+S)
3 x Redis
Servers
2 x Server
MySQL(M+S)
Main site
www.adblade.com
csv logs
150M events
Логирование и загрузка
● Логирование в json формате
● Средний размер записи 1.4К
● NFS - периодическая сборка логов
● Python+Java - обработка и преобразование в CSV
● DLP - загрузка в базу.
● 220K, обычная загрузка - 10с , DLP - 1-2с
[ a8fdc205a9f19cc1c7507a60c4,1441966498,1,8448,420,[
[3001,0.3,"CPC",0.0,0.0,0.0,1,[],[67],4,0.0,0,[]],
[3002,0.2,"CPC",0.0,0.0,0.0,2,[],[67],4,0.0,0,[]]
],"1136321067","6193198952454189354",1,"Mozilla/5.0.",[],null,"23307063" ,"
http://www.adblade.com",[0,0,0,0],"US","UT","New-York","770","84119",2,”
Win","Other",1,null,null,0,null,null,7279,null,null,"2130706433",null ]
1: { "impId" : "a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0...", "appId" : 10,
2: "ads" : [{ "id" : 3001, "amount" : 0.3}, { "id" : 3002, “amount”: 0.2 }],
3: "time" : 1445029200,
4: "url" : "http://www.adblade.com"
5: }
impId appId date time url adId ad_amount
a8fd 10 20151017 1445029200 http://... 3001 0.3
a8fd 10 20151017 1445029200 http://... 3002 0.2
date appId amount1
20151017 10 0.7
20151017 11 0.3
20151017 11 0.5
20151017 11 0.5
20151017 10 0.5
INSERT INTO date_app_r
SELECT appId,date,SUM(ad_amount1)
FROM raw_table1
WHERE impId>=a8fd
GROUP BY appId,date
raw_table1
date_app_r
Хранение данных
● 2x Intel Xeon 6 ядер + 160GB RAM
● 3 таблицы для сырых логов разного формата и порядка
50 “ролов” с агрегированными данными на основе
“сырых” таблиц
● только добавление данных в rollup каждые N минут
● В самую “жирную” сырую таблицу с 80-ю полями каждый
день загружается порядка 1Bil записей
● Коэффициент сжатия информации - x5.
Работа с данными
● никаких индексов в таблицах
● никаких обновлений
● никаких джоинов c использованием BIG таблиц
● использовать lookup поля для быстрого поиска
● побольше памяти
Выводы и Планы
● 7 раз отмерь - один отрежь
● IB - хорошее соотношение цены/качества
● горизонтальное масштабирование
○ на уровне кода
○ переезд на другую базу данных
Q&A
Высоконагруженная система с аналитикой на InfoBright
Андрей Федоренчик
andfed.net@gmail.com

More Related Content

What's hot

OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
Ontico
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Ontico
 
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix
 
Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...
Ontico
 
Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Andrey Smirnov
 
Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на Go
Andrey Smirnov
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Ontico
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Ontico
 
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Ontico
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в Badoo
Badoo Development
 
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Ontico
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Ontico
 
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...Ontico
 
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Ontico
 
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Badoo Development
 
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
AvitoTech
 
Jinba - frontendconf.ru/2015
Jinba - frontendconf.ru/2015Jinba - frontendconf.ru/2015
Jinba - frontendconf.ru/2015
Pavel Dovbush
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера
Roman Brovko
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Ontico
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
Ontico
 

What's hot (20)

OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
 
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
 
Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...
 
Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)
 
Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на Go
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
 
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в Badoo
 
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
 
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
 
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
 
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
 
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
 
Jinba - frontendconf.ru/2015
Jinba - frontendconf.ru/2015Jinba - frontendconf.ru/2015
Jinba - frontendconf.ru/2015
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 

Viewers also liked

Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...
Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...
Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...
Tanya Denisyuk
 
Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...
Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...
Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...
Tanya Denisyuk
 
Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»
Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»
Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»
Tanya Denisyuk
 
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Tanya Denisyuk
 
Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...
Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...
Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...
Tanya Denisyuk
 
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Tanya Denisyuk
 
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»Максим Барышиков-«WoT: Geographically distributed cluster of clusters»
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»
Tanya Denisyuk
 
Максим Барышников (Wargaming.net)
Максим Барышников (Wargaming.net)Максим Барышников (Wargaming.net)
Максим Барышников (Wargaming.net)Ontico
 
Как мы считали трафик на Вертике, Николай Голов (Avito)
Как мы считали трафик на Вертике, Николай Голов (Avito)Как мы считали трафик на Вертике, Николай Голов (Avito)
Как мы считали трафик на Вертике, Николай Голов (Avito)
Ontico
 

Viewers also liked (9)

Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...
Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...
Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...
 
Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...
Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...
Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...
 
Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»
Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»
Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»
 
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
 
Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...
Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...
Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...
 
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
 
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»Максим Барышиков-«WoT: Geographically distributed cluster of clusters»
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»
 
Максим Барышников (Wargaming.net)
Максим Барышников (Wargaming.net)Максим Барышников (Wargaming.net)
Максим Барышников (Wargaming.net)
 
Как мы считали трафик на Вертике, Николай Голов (Avito)
Как мы считали трафик на Вертике, Николай Голов (Avito)Как мы считали трафик на Вертике, Николай Голов (Avito)
Как мы считали трафик на Вертике, Николай Голов (Avito)
 

Similar to Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»

Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Ontico
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Vadim Nesterov
 
NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...
Ontico
 
Lobanov_Cloud-Comput..
Lobanov_Cloud-Comput..Lobanov_Cloud-Comput..
Lobanov_Cloud-Comput..webhostingguy
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Anton Baranov
 
Гиперконвергентные решения SimpliVity
Гиперконвергентные решения SimpliVityГиперконвергентные решения SimpliVity
Гиперконвергентные решения SimpliVity
КРОК
 
Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)
Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)
Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)Ontico
 
Арсен Мукучян, AdRiver
Арсен Мукучян, AdRiverАрсен Мукучян, AdRiver
Арсен Мукучян, AdRiver
Ontico
 
Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5Docsvision
 
1С-Битрикс: Управление сайтом 12.0. Технологически часть
1С-Битрикс: Управление сайтом 12.0. Технологически часть1С-Битрикс: Управление сайтом 12.0. Технологически часть
1С-Битрикс: Управление сайтом 12.0. Технологически частьCIT TROYA
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Ontico
 
1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov
elenae00
 
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктурыОбработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Vsevolod Shabad
 
pgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresqlpgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresql
Михаил Тюрин
 
"Новые возможности MySQL 5.7"
"Новые возможности MySQL 5.7""Новые возможности MySQL 5.7"
"Новые возможности MySQL 5.7"
Badoo Development
 
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Tanya Denisyuk
 
Зачем ускорять сайты
Зачем ускорять сайтыЗачем ускорять сайты
Зачем ускорять сайты
Николай Лавлинский
 
Построение ИТ-инфраструктуры компании с использованием облачных технологий
Построение ИТ-инфраструктуры компании с использованием облачных технологийПостроение ИТ-инфраструктуры компании с использованием облачных технологий
Построение ИТ-инфраструктуры компании с использованием облачных технологий
Dmitry Moskvin
 
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDBCodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDBCodeFest
 
Серверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBСерверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBStepan Stolyarov
 

Similar to Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright» (20)

Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
 
NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...
 
Lobanov_Cloud-Comput..
Lobanov_Cloud-Comput..Lobanov_Cloud-Comput..
Lobanov_Cloud-Comput..
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Гиперконвергентные решения SimpliVity
Гиперконвергентные решения SimpliVityГиперконвергентные решения SimpliVity
Гиперконвергентные решения SimpliVity
 
Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)
Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)
Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)
 
Арсен Мукучян, AdRiver
Арсен Мукучян, AdRiverАрсен Мукучян, AdRiver
Арсен Мукучян, AdRiver
 
Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5
 
1С-Битрикс: Управление сайтом 12.0. Технологически часть
1С-Битрикс: Управление сайтом 12.0. Технологически часть1С-Битрикс: Управление сайтом 12.0. Технологически часть
1С-Битрикс: Управление сайтом 12.0. Технологически часть
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
 
1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov
 
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктурыОбработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
 
pgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresqlpgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresql
 
"Новые возможности MySQL 5.7"
"Новые возможности MySQL 5.7""Новые возможности MySQL 5.7"
"Новые возможности MySQL 5.7"
 
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
 
Зачем ускорять сайты
Зачем ускорять сайтыЗачем ускорять сайты
Зачем ускорять сайты
 
Построение ИТ-инфраструктуры компании с использованием облачных технологий
Построение ИТ-инфраструктуры компании с использованием облачных технологийПостроение ИТ-инфраструктуры компании с использованием облачных технологий
Построение ИТ-инфраструктуры компании с использованием облачных технологий
 
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDBCodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
 
Серверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBСерверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDB
 

More from Tanya Denisyuk

Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Tanya Denisyuk
 
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Tanya Denisyuk
 
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Tanya Denisyuk
 
Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"
Tanya Denisyuk
 
Сергей Аверин "Распространенные ошибки применения баз данных"
Сергей Аверин "Распространенные ошибки применения баз данных"Сергей Аверин "Распространенные ошибки применения баз данных"
Сергей Аверин "Распространенные ошибки применения баз данных"
Tanya Denisyuk
 
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Tanya Denisyuk
 
Левон Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"
Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"
Левон Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"
Tanya Denisyuk
 
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Tanya Denisyuk
 
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Tanya Denisyuk
 
Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...
Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...
Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...
Tanya Denisyuk
 
Алексей Лесовский "Тюнинг Linux для баз данных. "
Алексей Лесовский "Тюнинг Linux для баз данных. "Алексей Лесовский "Тюнинг Linux для баз данных. "
Алексей Лесовский "Тюнинг Linux для баз данных. "
Tanya Denisyuk
 
Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...
Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...
Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...
Tanya Denisyuk
 
Алексей Залесов-«Управление контейнерами в облаках»
Алексей Залесов-«Управление контейнерами в облаках»Алексей Залесов-«Управление контейнерами в облаках»
Алексей Залесов-«Управление контейнерами в облаках»
Tanya Denisyuk
 
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Tanya Denisyuk
 
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в ОдноклассникахАлександр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Tanya Denisyuk
 
Денис Баталов, Принципы построения высоконагруженных сайтов на платформе АWS
Денис Баталов, Принципы построения высоконагруженных сайтов на платформе АWSДенис Баталов, Принципы построения высоконагруженных сайтов на платформе АWS
Денис Баталов, Принципы построения высоконагруженных сайтов на платформе АWS
Tanya Denisyuk
 
Кирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практикеКирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практике
Tanya Denisyuk
 
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцМихаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Tanya Denisyuk
 
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQAlvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Tanya Denisyuk
 
Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
Антон Тюрин, Евгений Сафронов, Инфраструктура под CocaineАнтон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
Tanya Denisyuk
 

More from Tanya Denisyuk (20)

Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
 
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
 
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
 
Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"
 
Сергей Аверин "Распространенные ошибки применения баз данных"
Сергей Аверин "Распространенные ошибки применения баз данных"Сергей Аверин "Распространенные ошибки применения баз данных"
Сергей Аверин "Распространенные ошибки применения баз данных"
 
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
 
Левон Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"
Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"
Левон Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"
 
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
 
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
 
Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...
Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...
Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...
 
Алексей Лесовский "Тюнинг Linux для баз данных. "
Алексей Лесовский "Тюнинг Linux для баз данных. "Алексей Лесовский "Тюнинг Linux для баз данных. "
Алексей Лесовский "Тюнинг Linux для баз данных. "
 
Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...
Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...
Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...
 
Алексей Залесов-«Управление контейнерами в облаках»
Алексей Залесов-«Управление контейнерами в облаках»Алексей Залесов-«Управление контейнерами в облаках»
Алексей Залесов-«Управление контейнерами в облаках»
 
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
 
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в ОдноклассникахАлександр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
 
Денис Баталов, Принципы построения высоконагруженных сайтов на платформе АWS
Денис Баталов, Принципы построения высоконагруженных сайтов на платформе АWSДенис Баталов, Принципы построения высоконагруженных сайтов на платформе АWS
Денис Баталов, Принципы построения высоконагруженных сайтов на платформе АWS
 
Кирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практикеКирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практике
 
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцМихаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
 
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQAlvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
 
Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
Антон Тюрин, Евгений Сафронов, Инфраструктура под CocaineАнтон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
 

Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»

  • 1.
  • 3. Статистика ● > 150M показов в день ● > 1.5M запросов каждые 15 минут ● > 200Gb сырых логов в день ● > 500M уникальных пользователей в месяц
  • 4. AdBlade - история развития 1 x Mysql 2 x Web PHP 1-2M imps 8 x PHP+MySQL+Lighty 50M imps 19 x PHP+MySQL+Lighty Analytics (Mysql/Mongo) 80M imps 10 x Web Java 1 x InfoBright 120M imps
  • 5. AdBlade 2008 ● 2M показов в день ● 2 общих веб-сервера для показов и главного сайта ● 1 база mysql для всех транзакций, включая показы 2 x Servers PHP+Lighttpd 1 x Server MySQL
  • 6. AdBlade 2009 - 2012 ● 50М imps в день ● 8 серверов для показов ● 500 макс. показов на сервер ● логирование в csv файлы 8 x Servers PHP+Lighttpd+ MySQL 2 x Servers MySQL(M+S) www csv events
  • 7. AdBlade 2012 - 2014 Main site www01/02 2 x Servers MySQL(M+S) 19 x Servers PHP+Lighttpd+MySQL csv / json logs MySQL / MongoDB Analytic Server 80М imps
  • 8. MongoDB (2013-2014) Плюсы: ● горизонтальное масштабирование ● гибкое создание запросов с помощью js ● отсутствие схемы
  • 9. MongoDB (2013-2014) Минусы ● отсутствие качественных php библиотек ● размер базы значительно увеличился из-за необходимости хранения ключей и _id поля. ● невозможность быстрой чистки базы с высвобождением занимаемого места. ● MapReduce работает асинхронно и нет возможности контролировать его из клиентского приложения
  • 10. MongoDB (2013-2014) Test results for log file with 1M rows 17.1K 1: { "_id": {"$oid": "4b838e8500000000000006e2"}, 2: "appId": 1762, 3: "imps": 438,"clicks": 0, 4: "amount1": -0.876, "amount2": 0, 5: "date": {"$date": "2013-02-23T03:15:01.000-0500"}, 6: } 17.1K 95 62.5K 31 Row Size bytesInsert Rows/Sec MongoDB MySql
  • 11. Переход на Java ● Netty фреймворк для работы с сетью ● база данных в памяти сервера ● поминутное логирование ● 7K-8K показов в секунду ● уменьшили количество серверов в 3 раза
  • 12. Hadoop ● необходимость создания собственной инфраструктуры для хранения данных ● необходимо писать логику работы с hadoop ● минимум 2-3 сервера для базовой конфигурации, а для объёма нашей информации минимум 5 серверов.
  • 13. Vertica ● column based ● компрессия данных ● есть шардинг для масштабирования ● SQL запросы для выбора данных ● дорогая лицензия
  • 14. InfoBright Плюсы: ● column based движок для MySQL ● загрузчик данных DLP (Distributed Load Processor). ● сжатие информации до 10x ● быстрые выборки с помощью knowledge grid ● быстрое удаление больших объемов информации ● практически неограниченный размер базы ● быстрое добавление новых колонок в таблицы
  • 15. InfoBright Минусы: ● лицензия ● требует внимательности при работе с данными для обеспечения производительности ● отсутствие горизонтального масштабирования
  • 16. Column vs Row oriented DB ● сжатие - данные в колонке однородные ● чтение только нужных колонок при поиске данных
  • 17. Database Knowledge Grid Knowledge Grid представляет собой набор метаданных Infobright, которые используются для оптимизации выполнения запросов min() max() avg() sum()
  • 18. AdBlade 2014 - present json logs 10 x JAVA Servers DLP ServerInfoBright (M+S) 3 x Redis Servers 2 x Server MySQL(M+S) Main site www.adblade.com csv logs 150M events
  • 19. Логирование и загрузка ● Логирование в json формате ● Средний размер записи 1.4К ● NFS - периодическая сборка логов ● Python+Java - обработка и преобразование в CSV ● DLP - загрузка в базу. ● 220K, обычная загрузка - 10с , DLP - 1-2с [ a8fdc205a9f19cc1c7507a60c4,1441966498,1,8448,420,[ [3001,0.3,"CPC",0.0,0.0,0.0,1,[],[67],4,0.0,0,[]], [3002,0.2,"CPC",0.0,0.0,0.0,2,[],[67],4,0.0,0,[]] ],"1136321067","6193198952454189354",1,"Mozilla/5.0.",[],null,"23307063" ," http://www.adblade.com",[0,0,0,0],"US","UT","New-York","770","84119",2,” Win","Other",1,null,null,0,null,null,7279,null,null,"2130706433",null ]
  • 20. 1: { "impId" : "a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0...", "appId" : 10, 2: "ads" : [{ "id" : 3001, "amount" : 0.3}, { "id" : 3002, “amount”: 0.2 }], 3: "time" : 1445029200, 4: "url" : "http://www.adblade.com" 5: } impId appId date time url adId ad_amount a8fd 10 20151017 1445029200 http://... 3001 0.3 a8fd 10 20151017 1445029200 http://... 3002 0.2 date appId amount1 20151017 10 0.7 20151017 11 0.3 20151017 11 0.5 20151017 11 0.5 20151017 10 0.5 INSERT INTO date_app_r SELECT appId,date,SUM(ad_amount1) FROM raw_table1 WHERE impId>=a8fd GROUP BY appId,date raw_table1 date_app_r
  • 21. Хранение данных ● 2x Intel Xeon 6 ядер + 160GB RAM ● 3 таблицы для сырых логов разного формата и порядка 50 “ролов” с агрегированными данными на основе “сырых” таблиц ● только добавление данных в rollup каждые N минут ● В самую “жирную” сырую таблицу с 80-ю полями каждый день загружается порядка 1Bil записей ● Коэффициент сжатия информации - x5.
  • 22. Работа с данными ● никаких индексов в таблицах ● никаких обновлений ● никаких джоинов c использованием BIG таблиц ● использовать lookup поля для быстрого поиска ● побольше памяти
  • 23. Выводы и Планы ● 7 раз отмерь - один отрежь ● IB - хорошее соотношение цены/качества ● горизонтальное масштабирование ○ на уровне кода ○ переезд на другую базу данных
  • 24. Q&A Высоконагруженная система с аналитикой на InfoBright Андрей Федоренчик andfed.net@gmail.com