SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Dog on a Horse
Mobile Apps
A MongoDB Ready Partner
Woody’s Great Grandfather
Digital Trading Card Platform with Topps
Three apps that run on the same system
so far…

BUNT

HUDDLE

KICK

MLB

NFL

BPL

Collectible Card Games
Yes, That Topps
The New Trading Card
Card sales info
Live stats and
game info

Online trading
Brief History of BUNT
•

2012: Introduced product on MySQL
•
•

•

Revenue model fine-tuned
Thought of new features and scaling considerations

Migrate to MongoDB for MLB 2013 opening day
•

Learn MongoDB

•

Re-design the schema

•

Write & Run migration scripts

•

Total: 4-5 months, 1-2 people
•

Product Demo

•

System Overview

•

Specific example of why MongoDB

•

One case where another database technology is
used with MongoDB

•

Scalability issue and resolution
Product Demo
System Overview
Server Technologies
•

MongoDB

•

MySQL

•

Redis

•

Python

•

AWS

•

External data feed
MongoDB Basic Structure
Simple View of Server Architecture
Big Piece 1: Processing Live
Data
• Live data is received and stored into MySQL
•
•

A heartbeat picks up the event and stores player stats into MongoDB
It then pulls from MongoDB and updates leaderboard data in Redis
Big Piece 2: Formatting Leaderboards for
Users
• API servers combine fan data from MongoDB with points data from Redis
•

The result is a richly-detailed set of leaderboards
All other
processes
• All other processes are handled by the API servers and MongoDB

Sign in, Trading, Commenting, Content Management, Purchases, Playing Cards
Storage is used for fan and player photos as well as other simple files
•

•
Big Piece 1
Specific reason we chose
MongoDB
Processing Live Game Data in Realtime
Realtime Live Game Updates
•

Game play requires up-to-the-minute stats from live
events for user scoring

•

These data are stored in JSON format for the app

•

The JSON data has to be updated frequently with
stats and player points

•

Support multiple live games for multiple apps on the
same platform
Old Way: Processing Live
Game Data with MySQL
New Way: With MongoDB, we can simply
update the JSON data in the player’s document
db.players.update(
{
_id: ObjectId(“52be0717978ca03fc1984069"),
‘games.g':'2013-e.39141
},
{
$set:{
'games.$.b': "1-for-2: Ground out, Walk, Home run"
},
$inc:{
'points': 36
}
}
)
In general, the system with
MongoDB is much simpler,
faster, more scalable
Where we use Redis
with MongoDB
Leaderboards
Building User Leaderboards
•

Leaderboards updated in realtime

•

96 leaderboards in BUNT

•

Final output is constructed on-demand, no cache

•

User scores are stored in sorted sets in Redis
(ranking is automatic)

•

Redis is an in-RAM key-value data store
Leaderboard Process
Scaling issue and
resolution
Scaling Example: Buying
Packs of Cards

•

In order to support complex trading algorithms,
each user profile needs to contain a reference to
the owner’s card collection
Initial Structure of User Profile with
Embedded Card Summary Documents
•

Profile contains an embedded
document of card summaries

•

When users buy cards, the
profile can grow out of its
allocated space

•

MongoDB creates a new,
bigger allocation for the user
profile
Profiles were refactored to
include only player IDs
•

Finite number of players in the system, so size of
player IDs list is limited
Basic Metrics
•

On average, 1 pack sold per second

•

Consistently top 10 grossing sports app

•

Up to 30,000 requests per minute

•

Up to 2,000 OPS
Conclusions
•

MongoDB great for apps, especially social
•

JSON-ready data

•

Normal NoSQL arguments

•

For realtime leaderboards, Redis provides simple and
fast “automatic sorting” of user scores

•

Don’t embed documents if you hope for them to grow

•

Easy to learn
We’re
Hiring!
MongoDB+Py, Web, iOS, Android, App Producer, Project Management,
QA

Weitere ähnliche Inhalte

Ähnlich wie MongoDB at Dog on a Horse

L’architettura di classe enterprise di nuova generazione
L’architettura di classe enterprise di nuova generazioneL’architettura di classe enterprise di nuova generazione
L’architettura di classe enterprise di nuova generazione
MongoDB
 

Ähnlich wie MongoDB at Dog on a Horse (20)

L’architettura di Classe Enterprise di Nuova Generazione
L’architettura di Classe Enterprise di Nuova GenerazioneL’architettura di Classe Enterprise di Nuova Generazione
L’architettura di Classe Enterprise di Nuova Generazione
 
MongoDB for Game Analytics
MongoDB for Game AnalyticsMongoDB for Game Analytics
MongoDB for Game Analytics
 
What's new in MongoDB 3.6?
What's new in MongoDB 3.6?What's new in MongoDB 3.6?
What's new in MongoDB 3.6?
 
Mobile game architecture on GCP
Mobile game architecture on GCPMobile game architecture on GCP
Mobile game architecture on GCP
 
NoSQL Analytics: JSON Data Analysis and Acceleration in MongoDB World
NoSQL Analytics: JSON Data Analysis and Acceleration in MongoDB WorldNoSQL Analytics: JSON Data Analysis and Acceleration in MongoDB World
NoSQL Analytics: JSON Data Analysis and Acceleration in MongoDB World
 
A Big (Query) Frog in a Small Pond, Jakub Motyl, BuffPanel
A Big (Query) Frog in a Small Pond, Jakub Motyl, BuffPanelA Big (Query) Frog in a Small Pond, Jakub Motyl, BuffPanel
A Big (Query) Frog in a Small Pond, Jakub Motyl, BuffPanel
 
Enterprise Reporting with MongoDB and JasperSoft
Enterprise Reporting with MongoDB and JasperSoftEnterprise Reporting with MongoDB and JasperSoft
Enterprise Reporting with MongoDB and JasperSoft
 
Webinar: How to Drive Business Value in Financial Services with MongoDB
Webinar: How to Drive Business Value in Financial Services with MongoDBWebinar: How to Drive Business Value in Financial Services with MongoDB
Webinar: How to Drive Business Value in Financial Services with MongoDB
 
MongoDB Europe 2016 - The Rise of the Data Lake
MongoDB Europe 2016 - The Rise of the Data LakeMongoDB Europe 2016 - The Rise of the Data Lake
MongoDB Europe 2016 - The Rise of the Data Lake
 
L’architettura di classe enterprise di nuova generazione
L’architettura di classe enterprise di nuova generazioneL’architettura di classe enterprise di nuova generazione
L’architettura di classe enterprise di nuova generazione
 
Enterprise architectsview 2015-apr
Enterprise architectsview 2015-aprEnterprise architectsview 2015-apr
Enterprise architectsview 2015-apr
 
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
 
Sizing Your MongoDB Cluster
Sizing Your MongoDB ClusterSizing Your MongoDB Cluster
Sizing Your MongoDB Cluster
 
Real-time analysis using an in-memory data grid - Cloud Expo 2013
Real-time analysis using an in-memory data grid - Cloud Expo 2013Real-time analysis using an in-memory data grid - Cloud Expo 2013
Real-time analysis using an in-memory data grid - Cloud Expo 2013
 
The Future is Operations: Why Mobile Games Need Backends
The Future is Operations: Why Mobile Games Need BackendsThe Future is Operations: Why Mobile Games Need Backends
The Future is Operations: Why Mobile Games Need Backends
 
MongoBD London 2013: Real World MongoDB: Use Cases from Financial Services pr...
MongoBD London 2013: Real World MongoDB: Use Cases from Financial Services pr...MongoBD London 2013: Real World MongoDB: Use Cases from Financial Services pr...
MongoBD London 2013: Real World MongoDB: Use Cases from Financial Services pr...
 
Webinar: An Enterprise Architect’s View of MongoDB
Webinar: An Enterprise Architect’s View of MongoDBWebinar: An Enterprise Architect’s View of MongoDB
Webinar: An Enterprise Architect’s View of MongoDB
 
Webinar: How to Drive Business Value in Financial Services with MongoDB
Webinar: How to Drive Business Value in Financial Services with MongoDBWebinar: How to Drive Business Value in Financial Services with MongoDB
Webinar: How to Drive Business Value in Financial Services with MongoDB
 
Gam301 Real-Time Game Analytics with Amazon Redshift, Amazon Kinesis, and Ama...
Gam301 Real-Time Game Analytics with Amazon Redshift, Amazon Kinesis, and Ama...Gam301 Real-Time Game Analytics with Amazon Redshift, Amazon Kinesis, and Ama...
Gam301 Real-Time Game Analytics with Amazon Redshift, Amazon Kinesis, and Ama...
 
Open Source North - MongoDB Advanced Schema Design Patterns
Open Source North - MongoDB Advanced Schema Design PatternsOpen Source North - MongoDB Advanced Schema Design Patterns
Open Source North - MongoDB Advanced Schema Design Patterns
 

Mehr von MongoDB

Mehr von MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
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
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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)
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 

MongoDB at Dog on a Horse

  • 1. Dog on a Horse Mobile Apps A MongoDB Ready Partner
  • 3. Digital Trading Card Platform with Topps Three apps that run on the same system so far… BUNT HUDDLE KICK MLB NFL BPL Collectible Card Games
  • 5. The New Trading Card Card sales info Live stats and game info Online trading
  • 6. Brief History of BUNT • 2012: Introduced product on MySQL • • • Revenue model fine-tuned Thought of new features and scaling considerations Migrate to MongoDB for MLB 2013 opening day • Learn MongoDB • Re-design the schema • Write & Run migration scripts • Total: 4-5 months, 1-2 people
  • 7. • Product Demo • System Overview • Specific example of why MongoDB • One case where another database technology is used with MongoDB • Scalability issue and resolution
  • 12. Simple View of Server Architecture
  • 13. Big Piece 1: Processing Live Data • Live data is received and stored into MySQL • • A heartbeat picks up the event and stores player stats into MongoDB It then pulls from MongoDB and updates leaderboard data in Redis
  • 14. Big Piece 2: Formatting Leaderboards for Users • API servers combine fan data from MongoDB with points data from Redis • The result is a richly-detailed set of leaderboards
  • 15. All other processes • All other processes are handled by the API servers and MongoDB Sign in, Trading, Commenting, Content Management, Purchases, Playing Cards Storage is used for fan and player photos as well as other simple files • •
  • 16. Big Piece 1 Specific reason we chose MongoDB Processing Live Game Data in Realtime
  • 17. Realtime Live Game Updates • Game play requires up-to-the-minute stats from live events for user scoring • These data are stored in JSON format for the app • The JSON data has to be updated frequently with stats and player points • Support multiple live games for multiple apps on the same platform
  • 18. Old Way: Processing Live Game Data with MySQL
  • 19. New Way: With MongoDB, we can simply update the JSON data in the player’s document db.players.update( { _id: ObjectId(“52be0717978ca03fc1984069"), ‘games.g':'2013-e.39141 }, { $set:{ 'games.$.b': "1-for-2: Ground out, Walk, Home run" }, $inc:{ 'points': 36 } } )
  • 20. In general, the system with MongoDB is much simpler, faster, more scalable
  • 21. Where we use Redis with MongoDB Leaderboards
  • 22. Building User Leaderboards • Leaderboards updated in realtime • 96 leaderboards in BUNT • Final output is constructed on-demand, no cache • User scores are stored in sorted sets in Redis (ranking is automatic) • Redis is an in-RAM key-value data store
  • 25. Scaling Example: Buying Packs of Cards • In order to support complex trading algorithms, each user profile needs to contain a reference to the owner’s card collection
  • 26. Initial Structure of User Profile with Embedded Card Summary Documents • Profile contains an embedded document of card summaries • When users buy cards, the profile can grow out of its allocated space • MongoDB creates a new, bigger allocation for the user profile
  • 27. Profiles were refactored to include only player IDs • Finite number of players in the system, so size of player IDs list is limited
  • 28. Basic Metrics • On average, 1 pack sold per second • Consistently top 10 grossing sports app • Up to 30,000 requests per minute • Up to 2,000 OPS
  • 29. Conclusions • MongoDB great for apps, especially social • JSON-ready data • Normal NoSQL arguments • For realtime leaderboards, Redis provides simple and fast “automatic sorting” of user scores • Don’t embed documents if you hope for them to grow • Easy to learn
  • 30. We’re Hiring! MongoDB+Py, Web, iOS, Android, App Producer, Project Management, QA

Hinweis der Redaktion

  1. Expanded social features—commenting, liking, reporting, admin tools, more in future People can buy unlimited cards—card store with in app currency, packs of random cards—have to buy a lot of packs to get cards you Change in game play— start/sit with so many cards
  2. Cards Home: My Cards, Start-Sit Trading Trade Talk Buy Pack Live game loop Leaderboards Card buying
  3. MySQL is needed to store data from the feed provider Heartbeats read that data and store them in MongoDB
  4. More detail later
  5. Real-time Done when user makes a call more later
  6. When a player hits a home run, fan needs to get points asap Human at feed company enters event data Data gets pushed to the feed and goes to the MySQL db
  7. David Ortiz hit a HR in Game 2 of the WS
  8. Gets 36 pts for the HR New box score is XXX set the box score, increment the season points and game points One step
  9. Redis is an all-RAM key-value data store
  10. Since redis stores the user IDs and scores in sorted sets, all the ranking is kept up to date whenever it is updated.
  11. When special cards were released into packs, people bought a lot, increasing their cards and creating new profile documents—TIMEOUTS If this is happening with many users, everything slows down
  12. All of this is to support trading