Honu/Big Data @ Riot Games

Jerome Boulon
Jerome BoulonCEO/Founder at CaliStream, Data Elite
RIOT GAMES
USING HADOOP TO IMPROVE THE PLAYER
           EXPERIENCE
     (AND TRACK HOW MANY TEEMOS DIE PER DAY)



     BARRY LIVINGSTON & JEROME BOULON
                  February 2013
1


2


3


4
    INTRODUCTION
5


6


7
1   INTRO
            ABOUT THE SPEAKERS
2


3


4


5


6


7
1   INTRO
            THIS PRESENTATION IS ABOUT…
2
            • A quick history of our data warehouse
3           • Our high level architecture
            • Player experience use cases
4           • How Hadoop has enabled these use cases
            • Changes we have made to our architecture
5
              to facilitate deeper insight at velocity
            • Where we’re headed
6


7
1   INTRO
                    WHO is RIOT GAMES?
2
      • Developer and publisher of League of Legends
3     • Founded 2006 by gamers for gamers
      • Player experience focused
4           – Needless to say, data is pretty important to
              understanding the player experience!
5


6


7
1
                                   LEAGUE OF LEGENDS
    INTRO




2
               12 MILLION                                           70 MILLION
            DAILY ACTIVE PLAYERS                                    REGISTERED PLAYERS

3


4


5
                3 MILLION                                           32 MILLION
             PEAK CONCURRENT                                        MONTHLY ACTIVE
                      PLAYERS                                       PLAYERS
6


7
                                       Numbers based on Riot Games data published October 2012.
1


2


3


4
    A QUICK HISTORY
5


6


7
1    INITIAL LAUNCH / SCRAPPY START UP PHASE

2   HISTORY        START-UP



3             •   Had a single, dedicated MySQL instance for the DW
              •   Data was ETL’d from production slaves into this instance
4             •   Queries were run in MySQL
              •   Reporting was done in Excel
                   • All ETLs, Queries, and Reporting were done by one person!
5


6                             This worked great!

7
1                      AND THEN – CRAZY GROWTH!!!!

                                      CRAZY
2   HISTORY            START-UP
                                     GROWTH


3
     # unique logins




                                  TOTAL ACTIVE PLAYERS


4
                                                           June 2012
                                                          4.2M
5                                                        NOV. 2011




6


7
                                                                       time
1                           THE BREAKING POINT
                                  CRAZY           BREAKING
2   HISTORY      START-UP
                                 GROWTH             POINT


3             • Data Warehouse reached a breaking point
                – 24 hours of data took 24.5 hours to ETL
              • We couldn’t handle…
4               – multiple environments in a vertical MySQL instance
                – a single environment in a vertical MySQL instance
5             • We needed to change!


6


7
1                  INTRODUCTION OF HADOOP
                                   CRAZY         BREAKING
2   HISTORY       START-UP
                                  GROWTH           POINT
                                                            HADOOP!



3
              • Hadoop has a number of great qualities!
                 –   Cost Effective
4
                 –   Scalable
                 –   Open Source
5                –   We could execute quickly!



6


7
1             HIGH LEVEL ARCHITECTURE, JUNE 2012
                                                                       Business
2   HISTORY       Audit    Plat
                                                                       Analyst



                  LoL
                                                                     Tableau


3               NORTH AMERICA

                                   Pentaho
                  Audit    Plat       +
                                  Custom ETL   Hive Data   Pentaho   MySQL
4                                     +
                                               Warehouse
                  LoL
                                    Sqoop
                EUROPE


5
                  Audit    Plat



                   LoL

6                                               Analysts
                KOREA




7
1
          BUT, THIS WASN’T GOOD ENOUGH
2   HISTORY
              • We needed to improve on many levels
                –   Shorten time to insight
3
                –   Increase depth of insight
                –   Enable data analysis for client-side features
4
                –   Flexible auditing framework
                –   Log ingestion and analysis
5               –   International data infrastructure

6


7
1
          BUT, THIS WASN’T GOOD ENOUGH
2   HISTORY
              • We needed to improve on many levels
                –   Shorten time to insight
3
                –   Increase depth of insight
                –   Enable data analysis for client-side features
4
                –   Flexible auditing framework
                –   Log ingestion and analysis
5               –   International data infrastructure

6


7
1


2


3


4
    CONTEXT
5


6


7
1
     LEAGUE OF LEGENDS GAMEPLAY BASICS
2


3   CONTEXT




4


5


6


7
1


2


3   CONTEXT




4


5


6


7
1


2


3   CONTEXT




4


5


6


7
1
                        CLIENT FOOTPRINT
2             • As a AAA video game, a significant portion of our software
                runs directly on players’ machines
                  – High performance graphics
3   CONTEXT
                  – Responsiveness

4             • There is logic in these components that is ONLY exercised
                on the client-side

5
              • Understanding the performance, reliability, and stability of
                these features is paramount to improving the player
6               experience!


7
1
              “THE PATCHER”
2


3   CONTEXT




4


5


6


7
1
              “LOBBY CLIENT”
2


3   CONTEXT




4


5


6


7
1
              “GAME CLIENT”
2


3   CONTEXT




4


5


6


7
1


2


3


4    GAME CLIENT
5   PERFORMANCE
6


7
1
              CHALLENGE: THE GAME IS ALIVE!
2

              • The game is a living, breathing service that’s always in motion
3

              • Updated every 2-3 weeks
    USECASE
4      #1
                 –   New champions
                 –   New items
                 –   New effects/particles
5                –   Changes in environment
                 –   Changes in design and design balance

6


7
1
              CHALLENGE: WE’RE GLOBAL!
2


3


    USECASE
4      #1




5


6


7
1
                CHALLENGE: PC VARIABILITY
2
              • Hardware and OS profiles are significantly different even within
                regions!
3             • OS and Patch Level
              • CPU
4
    USECASE
       #1
              • Memory
              • Video Card
              • Video Card Memory
5
              • Drivers!

6


7
1
              CHALLENGE: GRAPHICS SETTINGS
2


3


    USECASE
4      #1




5


6


7
1
              CHALLENGE: CLIENT-SIDE LOGIC
2


3


    USECASE
4      #1




5


6


7
1
        IMPROVING THE PLAYER EXPERIENCE
2
              • We need to gather information across all of these dimensions
                in order to UNDERSTAND the player experience
3
              • We use this information to:
4
    USECASE      –   React quickly to changes
       #1
                 –   Optimize performance
                 –   Optimize designs
5                –   Improve our testing
                     •   Like Creating our Compatibility Testing Lab!

6


7
1
              REACTING QUICKLY
2


3


    USECASE
4      #1




5


6


7
1
              GAME LOAD SCREEN
2


3


    USECASE
4      #1




5


6


7
1
              IMPROVING LOAD TIMES
2


3


    USECASE
4      #1




5


6


7
1
       OPTIMIZING DESIGN AND PERFORMANCE
2


3


    USECASE
4      #1




5


6


7
1
                 HOW DID WE SOLVE THIS?
2
              • We have an ARMY of TEEMOs watching players’ machines
                through their telescopes?!?!?!
3                – Not really, but we DID consider it!


    USECASE
4      #1




5


6


7
1
                 HONU PIPELINE
2
      Generate     Collect    Organize

3
    Honu
                   Honu         Honu
    Client
                 Collectors     Demux
4   SDK



5


6


7
1
                 HONU-CLIENT SDK
2


3


4


5
                GAME_CLIENT_STATS
                timestamp      source           app        pingAvg     serverId       system

6               1234567890   99.123.456.78   game_client   220.9542   12.345.678.90   Intel64 …




    Select avg(f[‘pingAVG’]) from game_client_stats group by f[‘serverId’];
7
1
                     HONU-TOOLS
2
    • DradisTestUI: WEB UI to send a message to Dradis
3     directly without any coding
    • EchoService: WEB UI to easily and immediately
4
      visualize the data that has been sent to Honu
      Collectors

5


6


7
1
                HONU-COLLECTORS
2   • Each collector:
      – Collect events from multiple                     SQS
3       clients (Thrift/NIO)
      – Save all events to one                           S3


4
        compressed file locally
      – Upload that file every XX
        minutes to S3
5
      – Send a message to SQS for      Honu Collectors

        Demux
6


7
1
          HONU-DEMUX
2
    SQS
                   S3
3
                           S3
                                 S S3
                                  3



4          Standalone
          SS
           tandalone
            tandalone
            SDemux
             tandalone
            Demux
              Standalone
             Demux
              Demux         S3      S3



5               Demux
                                          HIVE
                                         MERGE
6


7
1
          HONU-DEMUX
                                 S3
2
    SQS    Demux

3


4                  S3
                           S3         S3

5
                                            HIVE
                                           MERGE
          SS
           tandalone
            tandalone
6           Standalone
            Demux
              Standalone
             Demux
              Demux         S3        S3



                Demux
7
1
    JUNE 2012
                         WWW
                               Client
2               Mobile




3


4


5


6


7
1
             WWW
    Mobile         Client

2


3


4


5


6


7
1


2


3


4
    MATCHMAKING
5


6


7
1
                           MATCHMAKING
2         • One of the most important features outside of gameplay
          • Like a dating service, the objective is to match people up;
3         • Number of different queues that players can line up in, depending
            on the type of match they’re looking for

4


    USECASE
5      #2




6               Critical that this system is balanced
                                             balanced
              and able to create good matches quickly
7
1
              MATCHING THE RIGHT PLAYERS
2


3


4


    USECASE
5      #2




6


7
1
                IMPROVING THE EXPERIENCE
2             • We want to ensure that all players are having the best
                possible experience getting the matches they want
                 – This is VERY challenging!
3
                 – We’re obviously always studying this and trying to improve it


4             • Recently, we’ve started combining client data with data we
                have about many other dimensions
                 – Queue times
    USECASE
5      #2        – Match quality
                 – Player Skill/Matchmaking Rating

6
              • Obviously, we hope this will lead us to improvements we
                haven’t identified as of yet
7
1
          HOW DO WE ACCOMPLISH THAT?
2


3


4


    USECASE
5      #2




6


7
1


2
    Tools & Business Process   Tools & Business Process Tools & Business Process

3


4
             Audit    Plat              Audit       Plat         Audit   Plat



             LoL                        LoL                       LoL

5          NORTH AMERICA              EUROPE                    KOREA




6                                               MySQL




7       JUNE 2012
1     Audit    Plat           Audit   Plat                 Audit    Plat



      LoL                     LoL                           LoL


2   NORTH AMERICA           EUROPE                        KOREA




3


4


5


6


7              Dashboards                Tools & Business Process
1
              FLOWS
2


3


4


    USECASE
5      #2




6


7
1
             WWW
    Mobile         Client

2


3


4


5


6


7
1


2


3


4
    Data Flows
5


6


7
1
                                  Data Flows
2
                  Audit    Plat       Audit   Plat    Audit   Plat



                  LoL                 LoL              LoL

3
                NORTH AMERICA       EUROPE           KOREA




4


5


6   Workflows




7
1
                               Data Flows
2
                                  Audit   Plat

                                                  Audit   Plat
                                  LoL

3               Audit   Plat
                                                   LoL
                                EUROPE

                LoL
                                                 KOREA


           NORTH AMERICA
4


5


6   Workflows




7
1

                         WWW
                Mobile         Client
2


3


4


5


6   Workflows




7
1
        Enterprise Workflow Management Using Oozie
                       @ Riot Games
2


3
                    Matt Goeke and
4                   Barry Livingston
                Tomorrow : 11:40 12:30
5


6   Workflows




7
1


2


3


4
    THE FUTURE
5


6


7
1
             DECREASE TEEMO DEATHS?!?!?!
2


3


4


5


6


      THE
7   FUTURE
1
         CONTINUE INCREASING VELOCITY
                                    June 2012             February 2013
2
        MySQL tables                   180                     1200
        Pipeline Events/day             0                   2.5+ Billion

3       Workflows               Cronjob + Pentaho              Oozie

        Environment                 Datacenter              DC + AWS
        SLA                           1 day                   2 hours
4
        Event tracking        • 2+ weeks (DB          • 10 minutes
                                update)
                              • Dependencies: DBA     • Self-Service
5                               teams + ETL teams +
                                Tools teams
                              • Downtime (3h min.)    • No downtime
6


      THE
7   FUTURE
1
                   OUR IMMEDIATE GOALS
2
             •   Self-Service reporting
             •   Metadata Management Service
3
             •   Real-time aggregation pipeline
             •   Real-time slicing/dicing for non-critical data
4
             • Log ingestion and analysis
             • International data infrastructure
5


6


      THE
7   FUTURE
1
             CHALLENGE: MAKE IT GLOBAL
2        • Data centers across the globe since latency has huge effect on
           gameplay  log data scattered around the world
3
         • Large presence in Asia -- some areas (e.g., PH) have bandwidth
           challenges or bandwidth is expensive

4


5


6


      THE
7   FUTURE
1
             CHALLENGE: WE HAVE BIG DATA
                   STRUCTURED DATA
2
                   500G DAILY
                   APPLICATION AND OPERATIONAL LOGS
3
                   4.5TB DAILY
4                  RIOT YOUTUBE CHANNEL
                   3MM SUBSCRIBERS
                   448+MM VIEWS
5
                   + chat logs
                   + detailed gameplay event tracking
6                  + so on….


      THE
7   FUTURE
1
               OUR AUDACIOUS GOALS
2
             Build a world-class data and analytics organization
             • Deeply understand players across the globe
             • Apply that understanding to improve games for players
3
             • Deeply understand our entire ecosystem, including social media


4            Have ability to identify, understand and react to
             meaningful trends in real time
5
             Have deep, real-time understanding of our systems
             from player experience and operational standpoints
6


      THE
7   FUTURE
1
                  SHAMELESS HIRING PLUG
2            • Like most everybody else at this conference… we’re
               hiring!
3
             • The Riot Manifesto

                        Player experience first
4                       Challenge convention

                        Focus on talent and team
5
                        Take play seriously

                        Stay hungry, stay humble
6


      THE
7   FUTURE
1
             SHAMELESS HIRING PLUG
2


3


4


5


6


      THE
                   And yes, you can play games at work.
7   FUTURE
                                        It’s encouraged!
THANK YOU!
QUESTIONS?
     BARRY LIVINGSTON        &      JEROME BOULON
 blivingston@riotgames.com       jboulon@riotgames.com
1 of 66

Recommended

Big Data at Riot Games – Using Hadoop to Understand Player Experience - Stamp... by
Big Data at Riot Games – Using Hadoop to Understand Player Experience - Stamp...Big Data at Riot Games – Using Hadoop to Understand Player Experience - Stamp...
Big Data at Riot Games – Using Hadoop to Understand Player Experience - Stamp...StampedeCon
10.6K views69 slides
Building A Player Focused Data Pipeline at Riot Games - StampedeCon 2015 by
Building A Player Focused Data Pipeline at Riot Games - StampedeCon 2015Building A Player Focused Data Pipeline at Riot Games - StampedeCon 2015
Building A Player Focused Data Pipeline at Riot Games - StampedeCon 2015StampedeCon
6.1K views68 slides
Riot Games - Player Focused Pipeline - Stampedecon 2015 by
Riot Games - Player Focused Pipeline - Stampedecon 2015Riot Games - Player Focused Pipeline - Stampedecon 2015
Riot Games - Player Focused Pipeline - Stampedecon 2015sean_seannery
1.5K views68 slides
Big Data at Riot Games by
Big Data at Riot GamesBig Data at Riot Games
Big Data at Riot GamesDataWorks Summit
17.9K views67 slides
Video Games at Scale: Improving the gaming experience with Apache Spark by
Video Games at Scale: Improving the gaming experience with Apache SparkVideo Games at Scale: Improving the gaming experience with Apache Spark
Video Games at Scale: Improving the gaming experience with Apache SparkSpark Summit
3.2K views56 slides
Riot Games Company Presentation by
Riot Games Company PresentationRiot Games Company Presentation
Riot Games Company PresentationRobertHong12
1.1K views15 slides

More Related Content

What's hot

Trino: A Ludicrously Fast Query Engine - Pulsar Summit NA 2021 by
Trino: A Ludicrously Fast Query Engine - Pulsar Summit NA 2021Trino: A Ludicrously Fast Query Engine - Pulsar Summit NA 2021
Trino: A Ludicrously Fast Query Engine - Pulsar Summit NA 2021StreamNative
536 views18 slides
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料) by
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)NTT DATA Technology & Innovation
1.1K views21 slides
データベース屋がHyperledger Fabricを検証してみた by
データベース屋がHyperledger Fabricを検証してみたデータベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみたHyperleger Tokyo Meetup
10.3K views31 slides
Effective LiveOps Strategies for F2P Games by
Effective LiveOps Strategies for F2P GamesEffective LiveOps Strategies for F2P Games
Effective LiveOps Strategies for F2P GamesJames Gwertzman
12.7K views48 slides
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料) by
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)NTT DATA Technology & Innovation
3K views27 slides
Delight: An Improved Apache Spark UI, Free, and Cross-Platform by
Delight: An Improved Apache Spark UI, Free, and Cross-PlatformDelight: An Improved Apache Spark UI, Free, and Cross-Platform
Delight: An Improved Apache Spark UI, Free, and Cross-PlatformDatabricks
282 views26 slides

What's hot(20)

Trino: A Ludicrously Fast Query Engine - Pulsar Summit NA 2021 by StreamNative
Trino: A Ludicrously Fast Query Engine - Pulsar Summit NA 2021Trino: A Ludicrously Fast Query Engine - Pulsar Summit NA 2021
Trino: A Ludicrously Fast Query Engine - Pulsar Summit NA 2021
StreamNative536 views
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料) by NTT DATA Technology & Innovation
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
データベース屋がHyperledger Fabricを検証してみた by Hyperleger Tokyo Meetup
データベース屋がHyperledger Fabricを検証してみたデータベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみた
Effective LiveOps Strategies for F2P Games by James Gwertzman
Effective LiveOps Strategies for F2P GamesEffective LiveOps Strategies for F2P Games
Effective LiveOps Strategies for F2P Games
James Gwertzman12.7K views
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料) by NTT DATA Technology & Innovation
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
Delight: An Improved Apache Spark UI, Free, and Cross-Platform by Databricks
Delight: An Improved Apache Spark UI, Free, and Cross-PlatformDelight: An Improved Apache Spark UI, Free, and Cross-Platform
Delight: An Improved Apache Spark UI, Free, and Cross-Platform
Databricks282 views
Galera Cluster - Node Recovery - Webinar slides by Severalnines
Galera Cluster - Node Recovery - Webinar slidesGalera Cluster - Node Recovery - Webinar slides
Galera Cluster - Node Recovery - Webinar slides
Severalnines18.3K views
The Rise of Vector Data by Databricks
The Rise of Vector DataThe Rise of Vector Data
The Rise of Vector Data
Databricks251 views
Fluentdのお勧めシステム構成パターン by Kentaro Yoshida
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida51.1K views
Intro to Massively Multiplayer Online Game (MMOG) Design by Christopher Mohritz
Intro to Massively Multiplayer Online Game (MMOG) DesignIntro to Massively Multiplayer Online Game (MMOG) Design
Intro to Massively Multiplayer Online Game (MMOG) Design
Christopher Mohritz5.4K views
Linux performance tuning & stabilization tips (mysqlconf2010) by Yoshinori Matsunobu
Linux performance tuning & stabilization tips (mysqlconf2010)Linux performance tuning & stabilization tips (mysqlconf2010)
Linux performance tuning & stabilization tips (mysqlconf2010)
Yoshinori Matsunobu12.7K views
Time Series Analysis with Spark by Sandy Ryza by Spark Summit
Time Series Analysis with Spark by Sandy RyzaTime Series Analysis with Spark by Sandy Ryza
Time Series Analysis with Spark by Sandy Ryza
Spark Summit11.2K views
異次元のグラフデータベースNeo4j by 昌桓 李
異次元のグラフデータベースNeo4j異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j
昌桓 李13.1K views
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー by NGINX, Inc.
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
NGINX, Inc.742 views
Reverse Engineering Dojo: Enhancing Assembly Reading Skills by Asuka Nakajima
Reverse Engineering Dojo: Enhancing Assembly Reading SkillsReverse Engineering Dojo: Enhancing Assembly Reading Skills
Reverse Engineering Dojo: Enhancing Assembly Reading Skills
Asuka Nakajima3.2K views
Flink vs. Spark by Slim Baltagi
Flink vs. SparkFlink vs. Spark
Flink vs. Spark
Slim Baltagi69.5K views

Similar to Honu/Big Data @ Riot Games

Big Data At Riot Games - Hadoop Summit'12 by
Big Data At Riot Games - Hadoop Summit'12Big Data At Riot Games - Hadoop Summit'12
Big Data At Riot Games - Hadoop Summit'12irayan
1K views67 slides
Rebooting design in RavenDB by
Rebooting design in RavenDBRebooting design in RavenDB
Rebooting design in RavenDBOren Eini
35.9K views29 slides
Oozie @ Riot Games by
Oozie @ Riot GamesOozie @ Riot Games
Oozie @ Riot GamesMatt Goeke
4.7K views117 slides
Spil Games: outgrowing an internet startup by
Spil Games: outgrowing an internet startupSpil Games: outgrowing an internet startup
Spil Games: outgrowing an internet startupart-spilgames
1.4K views38 slides
Outgrowing an internet startup: database administration in a fast growing com... by
Outgrowing an internet startup: database administration in a fast growing com...Outgrowing an internet startup: database administration in a fast growing com...
Outgrowing an internet startup: database administration in a fast growing com...spil-engineering
1.1K views38 slides
Peer council 2013_presentation by
Peer council 2013_presentationPeer council 2013_presentation
Peer council 2013_presentationWiLS
445 views17 slides

Similar to Honu/Big Data @ Riot Games(20)

Big Data At Riot Games - Hadoop Summit'12 by irayan
Big Data At Riot Games - Hadoop Summit'12Big Data At Riot Games - Hadoop Summit'12
Big Data At Riot Games - Hadoop Summit'12
irayan1K views
Rebooting design in RavenDB by Oren Eini
Rebooting design in RavenDBRebooting design in RavenDB
Rebooting design in RavenDB
Oren Eini35.9K views
Oozie @ Riot Games by Matt Goeke
Oozie @ Riot GamesOozie @ Riot Games
Oozie @ Riot Games
Matt Goeke4.7K views
Spil Games: outgrowing an internet startup by art-spilgames
Spil Games: outgrowing an internet startupSpil Games: outgrowing an internet startup
Spil Games: outgrowing an internet startup
art-spilgames1.4K views
Outgrowing an internet startup: database administration in a fast growing com... by spil-engineering
Outgrowing an internet startup: database administration in a fast growing com...Outgrowing an internet startup: database administration in a fast growing com...
Outgrowing an internet startup: database administration in a fast growing com...
spil-engineering1.1K views
Peer council 2013_presentation by WiLS
Peer council 2013_presentationPeer council 2013_presentation
Peer council 2013_presentation
WiLS445 views
Maximize Your Production Effort (English) by slantsixgames
Maximize Your Production Effort (English)Maximize Your Production Effort (English)
Maximize Your Production Effort (English)
slantsixgames806 views
Improve your SQL workload with observability by OVHcloud
Improve your SQL workload with observabilityImprove your SQL workload with observability
Improve your SQL workload with observability
OVHcloud685 views
The Strathclyde Poker Research Environment by Luke Dicken
The Strathclyde Poker Research EnvironmentThe Strathclyde Poker Research Environment
The Strathclyde Poker Research Environment
Luke Dicken1.8K views
Game Development Best Practices by Perforce
Game Development Best PracticesGame Development Best Practices
Game Development Best Practices
Perforce1.3K views
Killer Reporting with JIRA Dashboards - Atlassian Summit 2010 - Lightning Talks by Atlassian
Killer Reporting with JIRA Dashboards - Atlassian Summit 2010 - Lightning TalksKiller Reporting with JIRA Dashboards - Atlassian Summit 2010 - Lightning Talks
Killer Reporting with JIRA Dashboards - Atlassian Summit 2010 - Lightning Talks
Atlassian6.6K views
Dogfooding data at Lyft by markgrover
Dogfooding data at LyftDogfooding data at Lyft
Dogfooding data at Lyft
markgrover493 views
What Drove Wordnik Non-Relational? by DATAVERSITY
What Drove Wordnik Non-Relational?What Drove Wordnik Non-Relational?
What Drove Wordnik Non-Relational?
DATAVERSITY510 views
Denis Reznik "True SQL Server Detective" by Fwdays
Denis Reznik "True SQL Server Detective"Denis Reznik "True SQL Server Detective"
Denis Reznik "True SQL Server Detective"
Fwdays369 views
Running MongoDB in the Cloud by Tony Tam
Running MongoDB in the CloudRunning MongoDB in the Cloud
Running MongoDB in the Cloud
Tony Tam3.4K views
Bank Data Frank Peterson DB2 10-Early_Experiences_pdf by Surekha Parekh
Bank Data   Frank Peterson DB2 10-Early_Experiences_pdfBank Data   Frank Peterson DB2 10-Early_Experiences_pdf
Bank Data Frank Peterson DB2 10-Early_Experiences_pdf
Surekha Parekh1.6K views

Recently uploaded

Igniting Next Level Productivity with AI-Infused Data Integration Workflows by
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Safe Software
257 views86 slides
Microsoft Power Platform.pptx by
Microsoft Power Platform.pptxMicrosoft Power Platform.pptx
Microsoft Power Platform.pptxUni Systems S.M.S.A.
52 views38 slides
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院IttrainingIttraining
41 views8 slides
Piloting & Scaling Successfully With Microsoft Viva by
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft VivaRichard Harbridge
12 views160 slides
Info Session November 2023.pdf by
Info Session November 2023.pdfInfo Session November 2023.pdf
Info Session November 2023.pdfAleksandraKoprivica4
11 views15 slides
Roadmap to Become Experts.pptx by
Roadmap to Become Experts.pptxRoadmap to Become Experts.pptx
Roadmap to Become Experts.pptxdscwidyatamanew
14 views45 slides

Recently uploaded(20)

Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software257 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
Piloting & Scaling Successfully With Microsoft Viva by Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
From chaos to control: Managing migrations and Microsoft 365 with ShareGate! by sammart93
From chaos to control: Managing migrations and Microsoft 365 with ShareGate!From chaos to control: Managing migrations and Microsoft 365 with ShareGate!
From chaos to control: Managing migrations and Microsoft 365 with ShareGate!
sammart939 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst476 views
6g - REPORT.pdf by Liveplex
6g - REPORT.pdf6g - REPORT.pdf
6g - REPORT.pdf
Liveplex10 views
Web Dev - 1 PPT.pdf by gdsczhcet
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet60 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman30 views
Special_edition_innovator_2023.pdf by WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2217 views
Transcript: The Details of Description Techniques tips and tangents on altern... by BookNet Canada
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...
BookNet Canada135 views
Attacking IoT Devices from a Web Perspective - Linux Day by Simone Onofri
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day
Simone Onofri15 views

Honu/Big Data @ Riot Games

  • 1. RIOT GAMES USING HADOOP TO IMPROVE THE PLAYER EXPERIENCE (AND TRACK HOW MANY TEEMOS DIE PER DAY) BARRY LIVINGSTON & JEROME BOULON February 2013
  • 2. 1 2 3 4 INTRODUCTION 5 6 7
  • 3. 1 INTRO ABOUT THE SPEAKERS 2 3 4 5 6 7
  • 4. 1 INTRO THIS PRESENTATION IS ABOUT… 2 • A quick history of our data warehouse 3 • Our high level architecture • Player experience use cases 4 • How Hadoop has enabled these use cases • Changes we have made to our architecture 5 to facilitate deeper insight at velocity • Where we’re headed 6 7
  • 5. 1 INTRO WHO is RIOT GAMES? 2 • Developer and publisher of League of Legends 3 • Founded 2006 by gamers for gamers • Player experience focused 4 – Needless to say, data is pretty important to understanding the player experience! 5 6 7
  • 6. 1 LEAGUE OF LEGENDS INTRO 2 12 MILLION 70 MILLION DAILY ACTIVE PLAYERS REGISTERED PLAYERS 3 4 5 3 MILLION 32 MILLION PEAK CONCURRENT MONTHLY ACTIVE PLAYERS PLAYERS 6 7 Numbers based on Riot Games data published October 2012.
  • 7. 1 2 3 4 A QUICK HISTORY 5 6 7
  • 8. 1 INITIAL LAUNCH / SCRAPPY START UP PHASE 2 HISTORY START-UP 3 • Had a single, dedicated MySQL instance for the DW • Data was ETL’d from production slaves into this instance 4 • Queries were run in MySQL • Reporting was done in Excel • All ETLs, Queries, and Reporting were done by one person! 5 6 This worked great! 7
  • 9. 1 AND THEN – CRAZY GROWTH!!!! CRAZY 2 HISTORY START-UP GROWTH 3 # unique logins TOTAL ACTIVE PLAYERS 4 June 2012 4.2M 5 NOV. 2011 6 7 time
  • 10. 1 THE BREAKING POINT CRAZY BREAKING 2 HISTORY START-UP GROWTH POINT 3 • Data Warehouse reached a breaking point – 24 hours of data took 24.5 hours to ETL • We couldn’t handle… 4 – multiple environments in a vertical MySQL instance – a single environment in a vertical MySQL instance 5 • We needed to change! 6 7
  • 11. 1 INTRODUCTION OF HADOOP CRAZY BREAKING 2 HISTORY START-UP GROWTH POINT HADOOP! 3 • Hadoop has a number of great qualities! – Cost Effective 4 – Scalable – Open Source 5 – We could execute quickly! 6 7
  • 12. 1 HIGH LEVEL ARCHITECTURE, JUNE 2012 Business 2 HISTORY Audit Plat Analyst LoL Tableau 3 NORTH AMERICA Pentaho Audit Plat + Custom ETL Hive Data Pentaho MySQL 4 + Warehouse LoL Sqoop EUROPE 5 Audit Plat LoL 6 Analysts KOREA 7
  • 13. 1 BUT, THIS WASN’T GOOD ENOUGH 2 HISTORY • We needed to improve on many levels – Shorten time to insight 3 – Increase depth of insight – Enable data analysis for client-side features 4 – Flexible auditing framework – Log ingestion and analysis 5 – International data infrastructure 6 7
  • 14. 1 BUT, THIS WASN’T GOOD ENOUGH 2 HISTORY • We needed to improve on many levels – Shorten time to insight 3 – Increase depth of insight – Enable data analysis for client-side features 4 – Flexible auditing framework – Log ingestion and analysis 5 – International data infrastructure 6 7
  • 15. 1 2 3 4 CONTEXT 5 6 7
  • 16. 1 LEAGUE OF LEGENDS GAMEPLAY BASICS 2 3 CONTEXT 4 5 6 7
  • 17. 1 2 3 CONTEXT 4 5 6 7
  • 18. 1 2 3 CONTEXT 4 5 6 7
  • 19. 1 CLIENT FOOTPRINT 2 • As a AAA video game, a significant portion of our software runs directly on players’ machines – High performance graphics 3 CONTEXT – Responsiveness 4 • There is logic in these components that is ONLY exercised on the client-side 5 • Understanding the performance, reliability, and stability of these features is paramount to improving the player 6 experience! 7
  • 20. 1 “THE PATCHER” 2 3 CONTEXT 4 5 6 7
  • 21. 1 “LOBBY CLIENT” 2 3 CONTEXT 4 5 6 7
  • 22. 1 “GAME CLIENT” 2 3 CONTEXT 4 5 6 7
  • 23. 1 2 3 4 GAME CLIENT 5 PERFORMANCE 6 7
  • 24. 1 CHALLENGE: THE GAME IS ALIVE! 2 • The game is a living, breathing service that’s always in motion 3 • Updated every 2-3 weeks USECASE 4 #1 – New champions – New items – New effects/particles 5 – Changes in environment – Changes in design and design balance 6 7
  • 25. 1 CHALLENGE: WE’RE GLOBAL! 2 3 USECASE 4 #1 5 6 7
  • 26. 1 CHALLENGE: PC VARIABILITY 2 • Hardware and OS profiles are significantly different even within regions! 3 • OS and Patch Level • CPU 4 USECASE #1 • Memory • Video Card • Video Card Memory 5 • Drivers! 6 7
  • 27. 1 CHALLENGE: GRAPHICS SETTINGS 2 3 USECASE 4 #1 5 6 7
  • 28. 1 CHALLENGE: CLIENT-SIDE LOGIC 2 3 USECASE 4 #1 5 6 7
  • 29. 1 IMPROVING THE PLAYER EXPERIENCE 2 • We need to gather information across all of these dimensions in order to UNDERSTAND the player experience 3 • We use this information to: 4 USECASE – React quickly to changes #1 – Optimize performance – Optimize designs 5 – Improve our testing • Like Creating our Compatibility Testing Lab! 6 7
  • 30. 1 REACTING QUICKLY 2 3 USECASE 4 #1 5 6 7
  • 31. 1 GAME LOAD SCREEN 2 3 USECASE 4 #1 5 6 7
  • 32. 1 IMPROVING LOAD TIMES 2 3 USECASE 4 #1 5 6 7
  • 33. 1 OPTIMIZING DESIGN AND PERFORMANCE 2 3 USECASE 4 #1 5 6 7
  • 34. 1 HOW DID WE SOLVE THIS? 2 • We have an ARMY of TEEMOs watching players’ machines through their telescopes?!?!?! 3 – Not really, but we DID consider it! USECASE 4 #1 5 6 7
  • 35. 1 HONU PIPELINE 2 Generate Collect Organize 3 Honu Honu Honu Client Collectors Demux 4 SDK 5 6 7
  • 36. 1 HONU-CLIENT SDK 2 3 4 5 GAME_CLIENT_STATS timestamp source app pingAvg serverId system 6 1234567890 99.123.456.78 game_client 220.9542 12.345.678.90 Intel64 … Select avg(f[‘pingAVG’]) from game_client_stats group by f[‘serverId’]; 7
  • 37. 1 HONU-TOOLS 2 • DradisTestUI: WEB UI to send a message to Dradis 3 directly without any coding • EchoService: WEB UI to easily and immediately 4 visualize the data that has been sent to Honu Collectors 5 6 7
  • 38. 1 HONU-COLLECTORS 2 • Each collector: – Collect events from multiple SQS 3 clients (Thrift/NIO) – Save all events to one S3 4 compressed file locally – Upload that file every XX minutes to S3 5 – Send a message to SQS for Honu Collectors Demux 6 7
  • 39. 1 HONU-DEMUX 2 SQS S3 3 S3 S S3 3 4 Standalone SS tandalone tandalone SDemux tandalone Demux Standalone Demux Demux S3 S3 5 Demux HIVE MERGE 6 7
  • 40. 1 HONU-DEMUX S3 2 SQS Demux 3 4 S3 S3 S3 5 HIVE MERGE SS tandalone tandalone 6 Standalone Demux Standalone Demux Demux S3 S3 Demux 7
  • 41. 1 JUNE 2012 WWW Client 2 Mobile 3 4 5 6 7
  • 42. 1 WWW Mobile Client 2 3 4 5 6 7
  • 43. 1 2 3 4 MATCHMAKING 5 6 7
  • 44. 1 MATCHMAKING 2 • One of the most important features outside of gameplay • Like a dating service, the objective is to match people up; 3 • Number of different queues that players can line up in, depending on the type of match they’re looking for 4 USECASE 5 #2 6 Critical that this system is balanced balanced and able to create good matches quickly 7
  • 45. 1 MATCHING THE RIGHT PLAYERS 2 3 4 USECASE 5 #2 6 7
  • 46. 1 IMPROVING THE EXPERIENCE 2 • We want to ensure that all players are having the best possible experience getting the matches they want – This is VERY challenging! 3 – We’re obviously always studying this and trying to improve it 4 • Recently, we’ve started combining client data with data we have about many other dimensions – Queue times USECASE 5 #2 – Match quality – Player Skill/Matchmaking Rating 6 • Obviously, we hope this will lead us to improvements we haven’t identified as of yet 7
  • 47. 1 HOW DO WE ACCOMPLISH THAT? 2 3 4 USECASE 5 #2 6 7
  • 48. 1 2 Tools & Business Process Tools & Business Process Tools & Business Process 3 4 Audit Plat Audit Plat Audit Plat LoL LoL LoL 5 NORTH AMERICA EUROPE KOREA 6 MySQL 7 JUNE 2012
  • 49. 1 Audit Plat Audit Plat Audit Plat LoL LoL LoL 2 NORTH AMERICA EUROPE KOREA 3 4 5 6 7 Dashboards Tools & Business Process
  • 50. 1 FLOWS 2 3 4 USECASE 5 #2 6 7
  • 51. 1 WWW Mobile Client 2 3 4 5 6 7
  • 52. 1 2 3 4 Data Flows 5 6 7
  • 53. 1 Data Flows 2 Audit Plat Audit Plat Audit Plat LoL LoL LoL 3 NORTH AMERICA EUROPE KOREA 4 5 6 Workflows 7
  • 54. 1 Data Flows 2 Audit Plat Audit Plat LoL 3 Audit Plat LoL EUROPE LoL KOREA NORTH AMERICA 4 5 6 Workflows 7
  • 55. 1 WWW Mobile Client 2 3 4 5 6 Workflows 7
  • 56. 1 Enterprise Workflow Management Using Oozie @ Riot Games 2 3 Matt Goeke and 4 Barry Livingston Tomorrow : 11:40 12:30 5 6 Workflows 7
  • 57. 1 2 3 4 THE FUTURE 5 6 7
  • 58. 1 DECREASE TEEMO DEATHS?!?!?! 2 3 4 5 6 THE 7 FUTURE
  • 59. 1 CONTINUE INCREASING VELOCITY June 2012 February 2013 2 MySQL tables 180 1200 Pipeline Events/day 0 2.5+ Billion 3 Workflows Cronjob + Pentaho Oozie Environment Datacenter DC + AWS SLA 1 day 2 hours 4 Event tracking • 2+ weeks (DB • 10 minutes update) • Dependencies: DBA • Self-Service 5 teams + ETL teams + Tools teams • Downtime (3h min.) • No downtime 6 THE 7 FUTURE
  • 60. 1 OUR IMMEDIATE GOALS 2 • Self-Service reporting • Metadata Management Service 3 • Real-time aggregation pipeline • Real-time slicing/dicing for non-critical data 4 • Log ingestion and analysis • International data infrastructure 5 6 THE 7 FUTURE
  • 61. 1 CHALLENGE: MAKE IT GLOBAL 2 • Data centers across the globe since latency has huge effect on gameplay  log data scattered around the world 3 • Large presence in Asia -- some areas (e.g., PH) have bandwidth challenges or bandwidth is expensive 4 5 6 THE 7 FUTURE
  • 62. 1 CHALLENGE: WE HAVE BIG DATA STRUCTURED DATA 2 500G DAILY APPLICATION AND OPERATIONAL LOGS 3 4.5TB DAILY 4 RIOT YOUTUBE CHANNEL 3MM SUBSCRIBERS 448+MM VIEWS 5 + chat logs + detailed gameplay event tracking 6 + so on…. THE 7 FUTURE
  • 63. 1 OUR AUDACIOUS GOALS 2 Build a world-class data and analytics organization • Deeply understand players across the globe • Apply that understanding to improve games for players 3 • Deeply understand our entire ecosystem, including social media 4 Have ability to identify, understand and react to meaningful trends in real time 5 Have deep, real-time understanding of our systems from player experience and operational standpoints 6 THE 7 FUTURE
  • 64. 1 SHAMELESS HIRING PLUG 2 • Like most everybody else at this conference… we’re hiring! 3 • The Riot Manifesto Player experience first 4 Challenge convention Focus on talent and team 5 Take play seriously Stay hungry, stay humble 6 THE 7 FUTURE
  • 65. 1 SHAMELESS HIRING PLUG 2 3 4 5 6 THE And yes, you can play games at work. 7 FUTURE It’s encouraged!
  • 66. THANK YOU! QUESTIONS? BARRY LIVINGSTON & JEROME BOULON blivingston@riotgames.com jboulon@riotgames.com

Editor's Notes

  1. Times where there were 20% month over month growth in a single environment2 environments w/~200K CCU to 16 environments and 1.3million CCU in the space of 12 monthsResources were focused on getting our operational systems to scale along with demand
  2. Today, we’re going to focus on a few of these.
  3. Before we talk about our first usecase, we need to give you a little bit of context about the game and gameplay (super high level), as well as a quick overview of some of the pieces of the LoL architectureSession Based Team play - basic idea is like “kill the other team’s nexus (base)” – MOBA!If you die, you re-spawn after a certain amount of time (that time grows as the game progresses)Lots of strategy to the game
  4. Each player “summons” a Champion that he playsEach champion has very different abilities
  5. Each player “summons” a Champion that he playsEach champion has very different abilities
  6. “Typical” Hardware profiles differ significantly from region to regionWe want to make sure that all regions have a good experienceWe also want to understand latency from various locations in the world to our installs
  7. There are lots of customizable settings around resolution and graphics quality that players can changeAll of these settings have a potential impact on performance
  8. So given that we have all of these challenges, what are we doing to improve the
  9. So given that we have all of these challenges, what are we doing to improve the