Рассказываем о том, как мы в Badoo собираем статистику для каждого пользователя, обсчитываем каждое открытие страницы (и не только!), обрабатываем 120000 событий в секунду и планируем расширяться.
А также:
- как собирать события с тысяч серверов;
- как правильно распределять их для обработки на несколько серверов;
- как устроена система сбора простых логов и агрегированной статистики в Badoo;
- какие есть перспективы развития системы.
Доклад будет интересен любому человеку, который хочет построить подобную систему распределенного сбора и перераспределения статистики.
2. В докладе будет рассказано:
• как собирать события с тысяч
серверов
• как правильно распределять их для
обработки на несколько серверов
• как устроена система сбора
простых логов и агрегированной
статистики в Badoo
• какие есть перспективы развития
системы
3. Badoo это
• Социальная сеть для поиска новых друзей
• 200 млн. зарегистрированных пользователей
• Работаем во всех странах мира
• Мобильные приложения под Android, iOS, Windows,
BlackBerry. А так же Wap и HTML5 версии
• 2,5 датацентра: в Европе, Америке и Азии
• Более 3 000 серверов
4. Событие в статистике - что это такое?
• Действия пользователей
• Действия модераторов
• Действия скриптов
• Ошибки
• Отчеты о выполнении
7. Выбираем транспорт. Scribe!
• Берет доставку на себя
• Умеет перенаправлять куда нужно
• Умеет делить потоки
• Умеет резервировать
• Наши C-шники могут поддерживать
14. События и отчеты
• Событие — источник данных
• Отчет — результат сбора данных
• 1 событие — много отчетов
• Типы отчетов (логи, 2 вида агрегации)
• Автоматика в базах данных
22. Автоматика в БД
• В имени таблицы должна быть дата
• Таблицу надо не забыть создать
• А что, если надо поменять типы/набор данных?
• А можно ли подчищать старые данные?
24. Увеличение объемов данных
• Больше пользователей, больше критериев — больше
данных!
• Разбор данных из файлов — можно распараллелить
• Доставка данных в БД — в несколько потоков
25. А почему все так медленно?
• Промежуточная агрегация — теряем 10 минут
• Графики нужно строить оперативно
• Вообще хочется быстрее!
26. FastStats
• Ускоряем доставку до <30 секунд
• Делаем все на файлах
• Транзакции и файлы — это реально!
• Полностью прозрачный переход к новому
28. Мониторинг
• Работоспособность Scribe'ов
• Количество файлов во временных хранилищах
• Количество неразобранных файлов
• Количество временных таблиц
• Количество файлов по отчетам
• Скорость вставки в базы