SlideShare a Scribd company logo
1 of 66
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

More Related Content

What's hot

Kafka streams windowing behind the curtain
Kafka streams windowing behind the curtain Kafka streams windowing behind the curtain
Kafka streams windowing behind the curtain confluent
 
Advanced Flink Training - Design patterns for streaming applications
Advanced Flink Training - Design patterns for streaming applicationsAdvanced Flink Training - Design patterns for streaming applications
Advanced Flink Training - Design patterns for streaming applicationsAljoscha Krettek
 
Airflow Clustering and High Availability
Airflow Clustering and High AvailabilityAirflow Clustering and High Availability
Airflow Clustering and High AvailabilityRobert Sanders
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringSveta Smirnova
 
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...DataWorks Summit
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeperSaurav Haloi
 
Exadata db node update
Exadata db node updateExadata db node update
Exadata db node updatepat2001
 
PySpark Best Practices
PySpark Best PracticesPySpark Best Practices
PySpark Best PracticesCloudera, Inc.
 
Kafka tiered-storage-meetup-2022-final-presented
Kafka tiered-storage-meetup-2022-final-presentedKafka tiered-storage-meetup-2022-final-presented
Kafka tiered-storage-meetup-2022-final-presentedSumant Tambe
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcachedJurriaan Persyn
 
Dynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data AlertsDynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data AlertsFlink Forward
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controllerconfluent
 
ORC File and Vectorization - Hadoop Summit 2013
ORC File and Vectorization - Hadoop Summit 2013ORC File and Vectorization - Hadoop Summit 2013
ORC File and Vectorization - Hadoop Summit 2013Owen O'Malley
 
Iceberg: A modern table format for big data (Strata NY 2018)
Iceberg: A modern table format for big data (Strata NY 2018)Iceberg: A modern table format for big data (Strata NY 2018)
Iceberg: A modern table format for big data (Strata NY 2018)Ryan Blue
 
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache Flink
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache FlinkGelly-Stream: Single-Pass Graph Streaming Analytics with Apache Flink
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache FlinkVasia Kalavri
 
Logging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaLogging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaAmazee Labs
 

What's hot (20)

Kafka streams windowing behind the curtain
Kafka streams windowing behind the curtain Kafka streams windowing behind the curtain
Kafka streams windowing behind the curtain
 
Advanced Flink Training - Design patterns for streaming applications
Advanced Flink Training - Design patterns for streaming applicationsAdvanced Flink Training - Design patterns for streaming applications
Advanced Flink Training - Design patterns for streaming applications
 
Airflow Clustering and High Availability
Airflow Clustering and High AvailabilityAirflow Clustering and High Availability
Airflow Clustering and High Availability
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and Monitoring
 
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...
 
Intro to Pinot (2016-01-04)
Intro to Pinot (2016-01-04)Intro to Pinot (2016-01-04)
Intro to Pinot (2016-01-04)
 
Algorand
AlgorandAlgorand
Algorand
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeper
 
Exadata db node update
Exadata db node updateExadata db node update
Exadata db node update
 
Apache NiFi Crash Course Intro
Apache NiFi Crash Course IntroApache NiFi Crash Course Intro
Apache NiFi Crash Course Intro
 
An Introduction to Druid
An Introduction to DruidAn Introduction to Druid
An Introduction to Druid
 
PySpark Best Practices
PySpark Best PracticesPySpark Best Practices
PySpark Best Practices
 
Kafka tiered-storage-meetup-2022-final-presented
Kafka tiered-storage-meetup-2022-final-presentedKafka tiered-storage-meetup-2022-final-presented
Kafka tiered-storage-meetup-2022-final-presented
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 
Dynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data AlertsDynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data Alerts
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controller
 
ORC File and Vectorization - Hadoop Summit 2013
ORC File and Vectorization - Hadoop Summit 2013ORC File and Vectorization - Hadoop Summit 2013
ORC File and Vectorization - Hadoop Summit 2013
 
Iceberg: A modern table format for big data (Strata NY 2018)
Iceberg: A modern table format for big data (Strata NY 2018)Iceberg: A modern table format for big data (Strata NY 2018)
Iceberg: A modern table format for big data (Strata NY 2018)
 
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache Flink
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache FlinkGelly-Stream: Single-Pass Graph Streaming Analytics with Apache Flink
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache Flink
 
Logging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaLogging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & Kibana
 

Similar to Honu/Big Data @ Riot Games

Big Data At Riot Games - Hadoop Summit'12
Big Data At Riot Games - Hadoop Summit'12Big Data At Riot Games - Hadoop Summit'12
Big Data At Riot Games - Hadoop Summit'12irayan
 
Rebooting design in RavenDB
Rebooting design in RavenDBRebooting design in RavenDB
Rebooting design in RavenDBOren Eini
 
Oozie @ Riot Games
Oozie @ Riot GamesOozie @ Riot Games
Oozie @ Riot GamesMatt Goeke
 
Spil Games: outgrowing an internet startup
Spil Games: outgrowing an internet startupSpil Games: outgrowing an internet startup
Spil Games: outgrowing an internet startupart-spilgames
 
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...
Outgrowing an internet startup: database administration in a fast growing com...spil-engineering
 
Peer council 2013_presentation
Peer council 2013_presentationPeer council 2013_presentation
Peer council 2013_presentationWiLS
 
Maximize Your Production Effort (English)
Maximize Your Production Effort (English)Maximize Your Production Effort (English)
Maximize Your Production Effort (English)slantsixgames
 
Improve your SQL workload with observability
Improve your SQL workload with observabilityImprove your SQL workload with observability
Improve your SQL workload with observabilityOVHcloud
 
The Strathclyde Poker Research Environment
The Strathclyde Poker Research EnvironmentThe Strathclyde Poker Research Environment
The Strathclyde Poker Research EnvironmentLuke Dicken
 
Game Development Best Practices
Game Development Best PracticesGame Development Best Practices
Game Development Best PracticesPerforce
 
Killer Reporting with JIRA Dashboards - Atlassian Summit 2010 - Lightning Talks
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 TalksAtlassian
 
Dogfooding data at Lyft
Dogfooding data at LyftDogfooding data at Lyft
Dogfooding data at Lyftmarkgrover
 
What Drove Wordnik Non-Relational?
What Drove Wordnik Non-Relational?What Drove Wordnik Non-Relational?
What Drove Wordnik Non-Relational?DATAVERSITY
 
Denis Reznik "True SQL Server Detective"
Denis Reznik "True SQL Server Detective"Denis Reznik "True SQL Server Detective"
Denis Reznik "True SQL Server Detective"Fwdays
 
Running MongoDB in the Cloud
Running MongoDB in the CloudRunning MongoDB in the Cloud
Running MongoDB in the CloudTony Tam
 
Bank Data Frank Peterson DB2 10-Early_Experiences_pdf
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_pdfSurekha Parekh
 
Real world microservice architecture
Real world microservice architectureReal world microservice architecture
Real world microservice architectureViacheslav Poturaev
 

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

Big Data At Riot Games - Hadoop Summit'12
Big Data At Riot Games - Hadoop Summit'12Big Data At Riot Games - Hadoop Summit'12
Big Data At Riot Games - Hadoop Summit'12
 
Rebooting design in RavenDB
Rebooting design in RavenDBRebooting design in RavenDB
Rebooting design in RavenDB
 
Oozie @ Riot Games
Oozie @ Riot GamesOozie @ Riot Games
Oozie @ Riot Games
 
Spil Games: outgrowing an internet startup
Spil Games: outgrowing an internet startupSpil Games: outgrowing an internet startup
Spil Games: outgrowing an internet startup
 
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...
Outgrowing an internet startup: database administration in a fast growing com...
 
Peer council 2013_presentation
Peer council 2013_presentationPeer council 2013_presentation
Peer council 2013_presentation
 
Maximize Your Production Effort (English)
Maximize Your Production Effort (English)Maximize Your Production Effort (English)
Maximize Your Production Effort (English)
 
Improve your SQL workload with observability
Improve your SQL workload with observabilityImprove your SQL workload with observability
Improve your SQL workload with observability
 
The Strathclyde Poker Research Environment
The Strathclyde Poker Research EnvironmentThe Strathclyde Poker Research Environment
The Strathclyde Poker Research Environment
 
Game Development Best Practices
Game Development Best PracticesGame Development Best Practices
Game Development Best Practices
 
Killer Reporting with JIRA Dashboards - Atlassian Summit 2010 - Lightning Talks
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
 
Dogfooding data at Lyft
Dogfooding data at LyftDogfooding data at Lyft
Dogfooding data at Lyft
 
Dibi Conference 2012
Dibi Conference 2012Dibi Conference 2012
Dibi Conference 2012
 
What Drove Wordnik Non-Relational?
What Drove Wordnik Non-Relational?What Drove Wordnik Non-Relational?
What Drove Wordnik Non-Relational?
 
Denis Reznik "True SQL Server Detective"
Denis Reznik "True SQL Server Detective"Denis Reznik "True SQL Server Detective"
Denis Reznik "True SQL Server Detective"
 
Running MongoDB in the Cloud
Running MongoDB in the CloudRunning MongoDB in the Cloud
Running MongoDB in the Cloud
 
Bank Data Frank Peterson DB2 10-Early_Experiences_pdf
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
 
Marek-Martin Matyska, Gamajun Games
Marek-Martin Matyska, Gamajun GamesMarek-Martin Matyska, Gamajun Games
Marek-Martin Matyska, Gamajun Games
 
MongoDB at Scale!
MongoDB at Scale!MongoDB at Scale!
MongoDB at Scale!
 
Real world microservice architecture
Real world microservice architectureReal world microservice architecture
Real world microservice architecture
 

Recently uploaded

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 

Recently uploaded (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

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