Upload
vyacheslav-nikulin
View
867
Download
0
Embed Size (px)
Citation preview
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
Вячеслав Никулин
ведущий серверный разработчик
Типичные вопросы• Какова сложность босса Осы в версии 1.9.5?
• Какой FPS в 1ом турнирном бою 3го акта у
пользователей Ipad2?
• Как повлияет на ARPU увеличение стоимости
апгрейдов платных предметов?
Elasticsearch
“search server based on Lucene
distributed, multitenant-capable
full-text search engine
RESTful web interface
schema-free JSON documents”
http://en.wikipedia.org/wiki/Elasticsearch
Elasticsearch
• > 20 релизов за последний год
• > $100M инвестиций
• №2 по популярности поисковый движок
Процессинг логов
Nginx + PHP
Logs on file system/2015-04-15/12//2015-04-15/13
Logstash Elasticsearch
iOS, Android, WP, ..
Проектирование событий
• Список событий
• Обязательные параметры
– build_version, reg_date, level …
• Дополнительные параметры
Разбиение по индексам
• User-based индексы
• Timestamp-based индексы
• logs-2015-01-01/fight_end, …
• старые индексы удаляем целиком
• Elasticsearch не поддерживает:
– джойны
– транзакции
– безопаность ( < 1.5.0)
• Маппинг нельзя изменить без переиндексации
• Если свободно < 10% памяти, тяжелый запрос может привести к OutOfMemoryError
Недостатки
Аналитика: пример
Количество боев выживания,
необходимых для прохождения:
• A: -25%, ARPU +15%
• В: -50%, ARPU +0%
• C: контрольная, ARPU +0%
Цифры
• Два сервера
– 500 GB SSD, 32 GB RAM
• 150-200 событий в секунду, в пике 8000
• Всего 1.3B событий, 160 GB
• Поиск 90% < 400мс