SlideShare une entreprise Scribd logo
1  sur  38
MongoDB
@
Viacom
1
(or how to support a few million kids sliming their favorite celebrities all at once.)
Who Are We?
Michael Makunas
Director - Multiplatform Engineering
@mmakunas
Ramesh Nuthalapati
Architect - Multiplatform Engineering
@nuthalapati
2
Who Are We?
Viacom Media Networks
Viacom creates original entertainment content for every
audience, on every screen around the world. The company's
brands strive for creative excellence and cultural impact across
programming, motion pictures and digital experiences that live
online, on mobile, and via apps.
3
Today We Are Talking
About...
Funnel
Viacom’s internal high volume polling, voting, and data
collection service.
4
…and How MongoDB just
works.
5
• Launched in 2011 on 2.0
• Currently on 2.4
Use Cases
Award Show Voting
•MTV Video Music Awards (VMAs)
•European Movie Awards (EMAs)
•Kids Choice Awards (KCAs)
•CMT Music Awards
Polling
•MTV March Musical Madness
•Spike Bellator On Air Match Voting
Contests
•MTV Ultimate Fan Experience
6
What is “High Volume” to
Viacom?
•From big to little, continuous “horizontal” support across
100+ global sites
•Voting, polling, and data collection occurs 24/7
•No “maintenance windows”
•Sudden spikes to 15K+ votes per second from on-air
“Throws” during prime time viewing: “Go to the site and
Vote Now!”
•Storage of 100s of millions of votes for analysis after events
7
A Very Important
Question...
8
Who will survive
the Human Slime
Car Wash!?!?!?
9
Statistics (Pushing The Limit)
2015 Kids Choice Awards
•531 Million votes (a new record!)
•7 Million votes during the show
10
Some Definitions
Funnel
•Our internal name for our system
Site
•A brand and/or site specific namespace for collecting data
Tent-pole
•A major programming (entertainment) event
Collection
•An individual poll, voting event, sweepstakes, etc.
•NOT a MongoDB Collection
Entry
•A single vote or poll entry
Processor
•Performs an action on a entry (validate it, persists it, etc.)
11
History
•Why did we build Funnel?
•Why did we choose Mongo?
12
Why Did We Build It?
•Previous systems unmanageable
•One system for data collection
•Contests, sweepstakes, small polls
•Built in-house with ATG Dynamo and MySQL
•Per-site deployment model meant multiple installations per
brand
•Flexible schema == MySql “xml blobs”
•Separate system for high volume polling
•Comercial
•Lack of customization
•Per-brand installation
13
Why Did We Choose
Mongo?
•Flexible schema document style database provides the
quick-to-market support needed by 100+ sites, brands, and
countries (All who want things “just a little bit different”)
•Proven scalability
•JSON in and JSON out
14
Architectural Goals
• High write throughput over read throughput and
consistency
• Handle up to 10,000 1KB writes per second. Read
throughput is secondary
• High Availability
• Replace dozens of separate installations and services
• Wide adoption across internal brands
15
Server Layout
16
Primary
Secondary
Secondary
Replica Set 1
(day-to-day use)
Replica Set 2
(tent-pole events)
Primary
Secondary
Secondary
Server Layout
• High availability
• Primary, Secondary configuration with automatic
failover
• Primary stores all reads and writes, secondary stays in-
sync with Primary
• Monitoring with MongoDB Management Service (MMS)
• Email Alerts from MMS for high volume op inserts
17
More on MMS
18
KCA 2015 MMS Graph
Funnel UI
Schema For a Typical
Collection
"_id" : "kca-live-vote-2015-event",
"_class" : "com.mtvi.funnel.domain.model.collection.Collection",
"site" : "kca.nick.com",
"name" : "kca-live-vote-2015-event",
"description" : "KCA Live Event",
"owner" : "nuthalar",
"start" : ISODate("2015-03-02T05:00:00Z"),
"end" : ISODate("2015-05-10T04:00:00Z"),
"createdDate" : ISODate("2015-03-03T17:34:55.113Z"),
"lastUpdateDate" : ISODate("2015-03-26T14:40:15.665Z"),
"tags" : ["live-show"],
"processorChain" : [...],
“questions” : [...] -- Questions has Options and Validators
20
Processors
• Each entry received by Funnel will be handled by an ordered list of
processors (the ProcessorChain) As each processor in the list is visited, the
processor will decide whether to continue to the next one or to terminate
further processing
• A Processor can raise an error, and its detail message will be configurable
and localizable. When an error is raised, it can signal the system to take a
few different actions depending on the severity of the error condition:
Log the error but continue to processing
Bubble up the error to the client and cease further processing
Ignore the error, cease further processing, and return an OK response
to the client
21
Processors (UI)
22
Questions: Email
23
Questions: Email
{
"name":"email",
"displayText":"email",
"persistable":true,
"source":"ENTITY_BODY",
"validators":[
{
"enabled":true,
"failureMessage":"Please enter a valid email address to proceed.",
"contentType":"EmailAddressValidator",
"_class":"com.mtvi.funnel.domain.model.collection.questions.validators.E
mailAddressValidator"
},
{
"enabled":true,
"failureMessage":"This field is required. Please enter a response to proceed.",
"contentType":"RequiredValidator",
"_class":"com.mtvi.funnel.domain.model.collection.questions.validators.RequiredValidator"
}
],
"seqNum":NumberLong(0),
"tallyEnabled":false,
"isMandatory":false,
"contentType":"EmailQuestion"
}
24
Questions: Single Choice
25
Questions: Single Choice
26
{
"multipleAnswers":false,
"options":[
{
"optionValue":"andrew-garfield-male-action-star",
"displayText":"andrew-garfield-male-action-star",
"customOption":false
},
{
"optionValue":"channing-tatum-male-action-
star",
"displayText":"channing-tatum-male-action-
star",
"customOption":false
},
{
"optionValue":"chris-evans-male-action-
star",
"displayText":"chris-evans-male-action-
star",
"customOption":false
},
{
"optionValue":"chris-pratt-male-action-star",
"displayText":"chris-pratt-male-action-star",
"customOption":false
},
],
"writeInOptionEnabled":false,
"name":"favorite-male-action-star",
"displayText":"favorite-male-action-star",
"persistable":true,
"source":"ENTITY_BODY",
"validators":[
{
"enabled":false,
"failureMessage":"This field is required. Please enter a
response to proceed.",
"contentType":"RequiredValidator",
"_class":"com.mtvi.funnel.domain.model.collection.questions.validators.R
equiredValidator"
},
{
"enabled":true,
"failureMessage":"Please select a valid choice to proceed.",
"contentType":"ChoiceValidator",
"_class":"com.mtvi.funnel.domain.model.collection.questions.validators.C
hoiceValidator"
},
{
"enabled":true,
"failureMessage":"Please fill in the 'Other' value to
proceed.",
"contentType":"WriteInRequiredValidator",
"_class":"com.mtvi.funnel.domain.model.collection.questions.validators.W
riteInRequiredValidator"
}
],
"seqNum":NumberLong(0),
"tallyEnabled":true,
"isMandatory":false,
"sm4MappingEnabled":false,
"sm4Mapping":"",
"exodusMapping":"",
"contentType":"SingleChoiceQuestion",
"_class":"com.mtvi.funnel.domain.model.collection.questions.QuestionWith
Options"
}
An Entry would look like…
27
{
"_id" : ObjectId("53c698c1ebd268ff9b76034d"),
"answers" : {
"question" : "option-3",
"source" : "mobile",
"True-Client-IP" : "166.77.6.8"
},
"createdDate" : ISODate("2014-07-16T15:22:41.593Z")
}
Entry Trend Graph
28
A Tally would look like…
29
{
"_id" : ObjectId("53c698c51180cc552e79c12d"),
"option-1" : 1249596,
"option-2" : 341404,
"option-3" : 466646,
"questionName" : "question",
"timeWindowType" : "ALL_TIME"
}
Optimizations
We didn’t get it perfect the first time:
• Correct Indices - Index on created Date of Entry Collection.
EnsureIndex is called during collection creation and
update
• Batch update of vote tallies - Update the count per second
instead of per Entry
• Hourly Stats – Pre-caluculating hourly totals saved resources
during live events to get stats for past 24 hours, 7 days and
30 days
30
SPAM Prevention
•De-duplicator processor: De-duplicates X number of
entries for a defined period (eg. 30 Entries per minute).
Internal to Funnel application
•VERISIGN DDoS Protection service
•Akamai WAF (part of Kona Web Application Firewall)
•CAPTCHA
•Authentication (FLUX - Viacom Internal System)
31
Before & After
Previous Systems
•Decentralized
•Multiple Installations
•Outdated App Server
•Rigid Schema requiring
rigid change control
process
32
Funnel
•Service Oriented
•Performant
•Flexible Schema; easily
extended
Our Track Record
•100+ Sites
•15K Collections
•10+ Billion Votes to date
33
Where else MongoDB is
Used @ Viacom
•Used in production since v 1.6
•Content Management System
•Viacom Identity Platform (Auth & User Profiles)
34
Wait…
35
Who survived the
Human Slime
Carwash!?!?!?
36
Questions ?
37
Thank You!
38
• Michael Makunas -- @mmakunas
• Ramesh Nuthalapati -- @nuthalapati

Contenu connexe

Tendances

MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...
MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...
MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...MongoDB
 
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to MarketBusiness Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to MarketMongoDB
 
Building LinkedIn's Learning Platform with MongoDB
Building LinkedIn's Learning Platform with MongoDBBuilding LinkedIn's Learning Platform with MongoDB
Building LinkedIn's Learning Platform with MongoDBMongoDB
 
Bye Bye Legacy: Simplifying the Journey
Bye Bye Legacy: Simplifying the JourneyBye Bye Legacy: Simplifying the Journey
Bye Bye Legacy: Simplifying the JourneyMongoDB
 
Overcoming Today's Data Challenges with MongoDB
Overcoming Today's Data Challenges with MongoDBOvercoming Today's Data Challenges with MongoDB
Overcoming Today's Data Challenges with MongoDBMongoDB
 
Webinar: Simplifying the Database Experience with MongoDB Atlas
Webinar: Simplifying the Database Experience with MongoDB AtlasWebinar: Simplifying the Database Experience with MongoDB Atlas
Webinar: Simplifying the Database Experience with MongoDB AtlasMongoDB
 
MongoDB Evenings DC: MongoDB - The New Default Database for Giant Ideas
MongoDB Evenings DC: MongoDB - The New Default Database for Giant IdeasMongoDB Evenings DC: MongoDB - The New Default Database for Giant Ideas
MongoDB Evenings DC: MongoDB - The New Default Database for Giant IdeasMongoDB
 
How to deliver a Single View in Financial Services
 How to deliver a Single View in Financial Services How to deliver a Single View in Financial Services
How to deliver a Single View in Financial ServicesMongoDB
 
Webinar: MongoDB and Analytics: Building Solutions with the MongoDB BI Connector
Webinar: MongoDB and Analytics: Building Solutions with the MongoDB BI ConnectorWebinar: MongoDB and Analytics: Building Solutions with the MongoDB BI Connector
Webinar: MongoDB and Analytics: Building Solutions with the MongoDB BI ConnectorMongoDB
 
MongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB
 
How leading financial services organisations are winning with tech
How leading financial services organisations are winning with techHow leading financial services organisations are winning with tech
How leading financial services organisations are winning with techMongoDB
 
MongoDB Atlas
MongoDB AtlasMongoDB Atlas
MongoDB AtlasMongoDB
 
Final_CloudEventFrankfurt2017 (1).pdf
Final_CloudEventFrankfurt2017 (1).pdfFinal_CloudEventFrankfurt2017 (1).pdf
Final_CloudEventFrankfurt2017 (1).pdfMongoDB
 
Unlocking Operational Intelligence from the Data Lake
Unlocking Operational Intelligence from the Data LakeUnlocking Operational Intelligence from the Data Lake
Unlocking Operational Intelligence from the Data LakeMongoDB
 
MongoDB Evenings Minneapolis: MongoDB is Cool But When Should I Use It?
MongoDB Evenings Minneapolis: MongoDB is Cool But When Should I Use It?MongoDB Evenings Minneapolis: MongoDB is Cool But When Should I Use It?
MongoDB Evenings Minneapolis: MongoDB is Cool But When Should I Use It?MongoDB
 
Power Real Estate Property Analytics with MongoDB + Spark
Power Real Estate Property Analytics with MongoDB + SparkPower Real Estate Property Analytics with MongoDB + Spark
Power Real Estate Property Analytics with MongoDB + SparkMongoDB
 
How Verizon Uses Disruptive Developments for Organized Progress
How Verizon Uses Disruptive Developments for Organized ProgressHow Verizon Uses Disruptive Developments for Organized Progress
How Verizon Uses Disruptive Developments for Organized ProgressMongoDB
 
MongoDB in the Healthcare Enterprise
MongoDB in the Healthcare EnterpriseMongoDB in the Healthcare Enterprise
MongoDB in the Healthcare EnterpriseMongoDB
 
MongoDB Europe 2016 - Choosing Between 100 Billion Travel Options – Instant S...
MongoDB Europe 2016 - Choosing Between 100 Billion Travel Options – Instant S...MongoDB Europe 2016 - Choosing Between 100 Billion Travel Options – Instant S...
MongoDB Europe 2016 - Choosing Between 100 Billion Travel Options – Instant S...MongoDB
 

Tendances (20)

MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...
MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...
MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...
 
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to MarketBusiness Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
 
Building LinkedIn's Learning Platform with MongoDB
Building LinkedIn's Learning Platform with MongoDBBuilding LinkedIn's Learning Platform with MongoDB
Building LinkedIn's Learning Platform with MongoDB
 
Bye Bye Legacy: Simplifying the Journey
Bye Bye Legacy: Simplifying the JourneyBye Bye Legacy: Simplifying the Journey
Bye Bye Legacy: Simplifying the Journey
 
Overcoming Today's Data Challenges with MongoDB
Overcoming Today's Data Challenges with MongoDBOvercoming Today's Data Challenges with MongoDB
Overcoming Today's Data Challenges with MongoDB
 
Webinar: Simplifying the Database Experience with MongoDB Atlas
Webinar: Simplifying the Database Experience with MongoDB AtlasWebinar: Simplifying the Database Experience with MongoDB Atlas
Webinar: Simplifying the Database Experience with MongoDB Atlas
 
MongoDB Evenings DC: MongoDB - The New Default Database for Giant Ideas
MongoDB Evenings DC: MongoDB - The New Default Database for Giant IdeasMongoDB Evenings DC: MongoDB - The New Default Database for Giant Ideas
MongoDB Evenings DC: MongoDB - The New Default Database for Giant Ideas
 
How to deliver a Single View in Financial Services
 How to deliver a Single View in Financial Services How to deliver a Single View in Financial Services
How to deliver a Single View in Financial Services
 
Dataweek-Talk-2014
Dataweek-Talk-2014Dataweek-Talk-2014
Dataweek-Talk-2014
 
Webinar: MongoDB and Analytics: Building Solutions with the MongoDB BI Connector
Webinar: MongoDB and Analytics: Building Solutions with the MongoDB BI ConnectorWebinar: MongoDB and Analytics: Building Solutions with the MongoDB BI Connector
Webinar: MongoDB and Analytics: Building Solutions with the MongoDB BI Connector
 
MongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB in a Mainframe World
MongoDB in a Mainframe World
 
How leading financial services organisations are winning with tech
How leading financial services organisations are winning with techHow leading financial services organisations are winning with tech
How leading financial services organisations are winning with tech
 
MongoDB Atlas
MongoDB AtlasMongoDB Atlas
MongoDB Atlas
 
Final_CloudEventFrankfurt2017 (1).pdf
Final_CloudEventFrankfurt2017 (1).pdfFinal_CloudEventFrankfurt2017 (1).pdf
Final_CloudEventFrankfurt2017 (1).pdf
 
Unlocking Operational Intelligence from the Data Lake
Unlocking Operational Intelligence from the Data LakeUnlocking Operational Intelligence from the Data Lake
Unlocking Operational Intelligence from the Data Lake
 
MongoDB Evenings Minneapolis: MongoDB is Cool But When Should I Use It?
MongoDB Evenings Minneapolis: MongoDB is Cool But When Should I Use It?MongoDB Evenings Minneapolis: MongoDB is Cool But When Should I Use It?
MongoDB Evenings Minneapolis: MongoDB is Cool But When Should I Use It?
 
Power Real Estate Property Analytics with MongoDB + Spark
Power Real Estate Property Analytics with MongoDB + SparkPower Real Estate Property Analytics with MongoDB + Spark
Power Real Estate Property Analytics with MongoDB + Spark
 
How Verizon Uses Disruptive Developments for Organized Progress
How Verizon Uses Disruptive Developments for Organized ProgressHow Verizon Uses Disruptive Developments for Organized Progress
How Verizon Uses Disruptive Developments for Organized Progress
 
MongoDB in the Healthcare Enterprise
MongoDB in the Healthcare EnterpriseMongoDB in the Healthcare Enterprise
MongoDB in the Healthcare Enterprise
 
MongoDB Europe 2016 - Choosing Between 100 Billion Travel Options – Instant S...
MongoDB Europe 2016 - Choosing Between 100 Billion Travel Options – Instant S...MongoDB Europe 2016 - Choosing Between 100 Billion Travel Options – Instant S...
MongoDB Europe 2016 - Choosing Between 100 Billion Travel Options – Instant S...
 

En vedette

AT&T’s Mobile Developer Community: Social, Personalized, and Built for Scale ...
AT&T’s Mobile Developer Community: Social, Personalized, and Built for Scale ...AT&T’s Mobile Developer Community: Social, Personalized, and Built for Scale ...
AT&T’s Mobile Developer Community: Social, Personalized, and Built for Scale ...MongoDB
 
Victors & Spoils at DIS: Rethinking the Agency Model
Victors & Spoils at DIS: Rethinking the Agency ModelVictors & Spoils at DIS: Rethinking the Agency Model
Victors & Spoils at DIS: Rethinking the Agency ModelDigiday
 
EBAY_VIACOM_UPFRONT.pptm
EBAY_VIACOM_UPFRONT.pptmEBAY_VIACOM_UPFRONT.pptm
EBAY_VIACOM_UPFRONT.pptmSuhail Mahajan
 
MongoDB in Denver: How Global Healthcare Exchange is Using MongoDB
MongoDB in Denver: How Global Healthcare Exchange is Using MongoDBMongoDB in Denver: How Global Healthcare Exchange is Using MongoDB
MongoDB in Denver: How Global Healthcare Exchange is Using MongoDBMongoDB
 
Mongo DB in gaming industry
Mongo DB in gaming industryMongo DB in gaming industry
Mongo DB in gaming industryDmitry Makarchuk
 
Michael Poremba, Director, Data Architecture at Practice Fusion
Michael Poremba, Director, Data Architecture at Practice FusionMichael Poremba, Director, Data Architecture at Practice Fusion
Michael Poremba, Director, Data Architecture at Practice FusionMongoDB
 
Building Real Time Systems on MongoDB Using the Oplog at Stripe
Building Real Time Systems on MongoDB Using the Oplog at StripeBuilding Real Time Systems on MongoDB Using the Oplog at Stripe
Building Real Time Systems on MongoDB Using the Oplog at StripeMongoDB
 
The Age of Distraction at VIACOM Identify
The Age of Distraction at VIACOM IdentifyThe Age of Distraction at VIACOM Identify
The Age of Distraction at VIACOM IdentifyInSites on Stage
 
MongoDB San Francisco 2013:Geo Searches for Healthcare Pricing Data presented...
MongoDB San Francisco 2013:Geo Searches for Healthcare Pricing Data presented...MongoDB San Francisco 2013:Geo Searches for Healthcare Pricing Data presented...
MongoDB San Francisco 2013:Geo Searches for Healthcare Pricing Data presented...MongoDB
 
Solving the Disconnected Data Problem in Healthcare Using MongoDB
Solving the Disconnected Data Problem in Healthcare Using MongoDBSolving the Disconnected Data Problem in Healthcare Using MongoDB
Solving the Disconnected Data Problem in Healthcare Using MongoDBMongoDB
 
MongoDB at Medtronic
MongoDB at MedtronicMongoDB at Medtronic
MongoDB at MedtronicMongoDB
 
LinkedIn Data Infrastructure Slides (Version 2)
LinkedIn Data Infrastructure Slides (Version 2)LinkedIn Data Infrastructure Slides (Version 2)
LinkedIn Data Infrastructure Slides (Version 2)Sid Anand
 
Starting from Scratch with the MEAN Stack
Starting from Scratch with the MEAN StackStarting from Scratch with the MEAN Stack
Starting from Scratch with the MEAN StackMongoDB
 
MongoDB Case Study in Healthcare
MongoDB Case Study in HealthcareMongoDB Case Study in Healthcare
MongoDB Case Study in HealthcareMongoDB
 
CBGTBT - Part 1 - Workshop introduction & primer
CBGTBT - Part 1 - Workshop introduction & primerCBGTBT - Part 1 - Workshop introduction & primer
CBGTBT - Part 1 - Workshop introduction & primerBlockstrap.com
 

En vedette (17)

AT&T’s Mobile Developer Community: Social, Personalized, and Built for Scale ...
AT&T’s Mobile Developer Community: Social, Personalized, and Built for Scale ...AT&T’s Mobile Developer Community: Social, Personalized, and Built for Scale ...
AT&T’s Mobile Developer Community: Social, Personalized, and Built for Scale ...
 
Victors & Spoils at DIS: Rethinking the Agency Model
Victors & Spoils at DIS: Rethinking the Agency ModelVictors & Spoils at DIS: Rethinking the Agency Model
Victors & Spoils at DIS: Rethinking the Agency Model
 
Viacom
ViacomViacom
Viacom
 
EBAY_VIACOM_UPFRONT.pptm
EBAY_VIACOM_UPFRONT.pptmEBAY_VIACOM_UPFRONT.pptm
EBAY_VIACOM_UPFRONT.pptm
 
Viacom culture
Viacom cultureViacom culture
Viacom culture
 
MongoDB in Denver: How Global Healthcare Exchange is Using MongoDB
MongoDB in Denver: How Global Healthcare Exchange is Using MongoDBMongoDB in Denver: How Global Healthcare Exchange is Using MongoDB
MongoDB in Denver: How Global Healthcare Exchange is Using MongoDB
 
Mongo DB in gaming industry
Mongo DB in gaming industryMongo DB in gaming industry
Mongo DB in gaming industry
 
Michael Poremba, Director, Data Architecture at Practice Fusion
Michael Poremba, Director, Data Architecture at Practice FusionMichael Poremba, Director, Data Architecture at Practice Fusion
Michael Poremba, Director, Data Architecture at Practice Fusion
 
Building Real Time Systems on MongoDB Using the Oplog at Stripe
Building Real Time Systems on MongoDB Using the Oplog at StripeBuilding Real Time Systems on MongoDB Using the Oplog at Stripe
Building Real Time Systems on MongoDB Using the Oplog at Stripe
 
The Age of Distraction at VIACOM Identify
The Age of Distraction at VIACOM IdentifyThe Age of Distraction at VIACOM Identify
The Age of Distraction at VIACOM Identify
 
MongoDB San Francisco 2013:Geo Searches for Healthcare Pricing Data presented...
MongoDB San Francisco 2013:Geo Searches for Healthcare Pricing Data presented...MongoDB San Francisco 2013:Geo Searches for Healthcare Pricing Data presented...
MongoDB San Francisco 2013:Geo Searches for Healthcare Pricing Data presented...
 
Solving the Disconnected Data Problem in Healthcare Using MongoDB
Solving the Disconnected Data Problem in Healthcare Using MongoDBSolving the Disconnected Data Problem in Healthcare Using MongoDB
Solving the Disconnected Data Problem in Healthcare Using MongoDB
 
MongoDB at Medtronic
MongoDB at MedtronicMongoDB at Medtronic
MongoDB at Medtronic
 
LinkedIn Data Infrastructure Slides (Version 2)
LinkedIn Data Infrastructure Slides (Version 2)LinkedIn Data Infrastructure Slides (Version 2)
LinkedIn Data Infrastructure Slides (Version 2)
 
Starting from Scratch with the MEAN Stack
Starting from Scratch with the MEAN StackStarting from Scratch with the MEAN Stack
Starting from Scratch with the MEAN Stack
 
MongoDB Case Study in Healthcare
MongoDB Case Study in HealthcareMongoDB Case Study in Healthcare
MongoDB Case Study in Healthcare
 
CBGTBT - Part 1 - Workshop introduction & primer
CBGTBT - Part 1 - Workshop introduction & primerCBGTBT - Part 1 - Workshop introduction & primer
CBGTBT - Part 1 - Workshop introduction & primer
 

Similaire à MongoDB @ Viacom

Novedades de MongoDB 3.6
Novedades de MongoDB 3.6Novedades de MongoDB 3.6
Novedades de MongoDB 3.6MongoDB
 
The Yin and Yang of Software
The Yin and Yang of SoftwareThe Yin and Yang of Software
The Yin and Yang of Softwareelliando dias
 
Remaining Agile with Billions of Documents: Appboy and Creative MongoDB Schemas
Remaining Agile with Billions of Documents: Appboy and Creative MongoDB SchemasRemaining Agile with Billions of Documents: Appboy and Creative MongoDB Schemas
Remaining Agile with Billions of Documents: Appboy and Creative MongoDB SchemasMongoDB
 
MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...
MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...
MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...MongoDB
 
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015Stuart Charlton
 
Virtual Stress-free Testing in the Cloud
Virtual Stress-free Testing in the CloudVirtual Stress-free Testing in the Cloud
Virtual Stress-free Testing in the Cloudguest2e9c5f40
 
Innovating with AWS: How Microservices on AWS Can Transform Your Business
Innovating with AWS: How Microservices on AWS Can Transform Your BusinessInnovating with AWS: How Microservices on AWS Can Transform Your Business
Innovating with AWS: How Microservices on AWS Can Transform Your BusinessAmazon Web Services
 
Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYCChristian Posta
 
Quantifying Business Advantage: The Value of Database Selection
Quantifying Business Advantage: The Value of Database SelectionQuantifying Business Advantage: The Value of Database Selection
Quantifying Business Advantage: The Value of Database SelectionMongoDB
 
Big Data and Analytics Innovation Summit
Big Data and Analytics Innovation SummitBig Data and Analytics Innovation Summit
Big Data and Analytics Innovation SummitMartin Yan
 
How Criteo Scaled and Supported Massive Growth with MongoDB (2013)
How Criteo Scaled and Supported  Massive Growth with MongoDB (2013)How Criteo Scaled and Supported  Massive Growth with MongoDB (2013)
How Criteo Scaled and Supported Massive Growth with MongoDB (2013)Julien SIMON
 
Delia_J_Micu_resume_arch_Jan_2015
Delia_J_Micu_resume_arch_Jan_2015Delia_J_Micu_resume_arch_Jan_2015
Delia_J_Micu_resume_arch_Jan_2015Delia J. Micu
 
Keynote: Trends in Modern Application Development - Gilly Dekel, IBM
Keynote: Trends in Modern Application Development - Gilly Dekel, IBMKeynote: Trends in Modern Application Development - Gilly Dekel, IBM
Keynote: Trends in Modern Application Development - Gilly Dekel, IBMCodemotion Tel Aviv
 
Scaling Slack - The Good, the Unexpected, and the Road Ahead
Scaling Slack - The Good, the Unexpected, and the Road AheadScaling Slack - The Good, the Unexpected, and the Road Ahead
Scaling Slack - The Good, the Unexpected, and the Road AheadC4Media
 
Business Track: How Criteo Scaled and Supported Massive Growth with MongoDB
Business Track: How Criteo Scaled and Supported Massive Growth with MongoDBBusiness Track: How Criteo Scaled and Supported Massive Growth with MongoDB
Business Track: How Criteo Scaled and Supported Massive Growth with MongoDBMongoDB
 
Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications Tugdual Grall
 
Big problems Big Data, simple solutions
Big problems Big Data, simple solutionsBig problems Big Data, simple solutions
Big problems Big Data, simple solutionsClaudio Pontili
 

Similaire à MongoDB @ Viacom (20)

Novedades de MongoDB 3.6
Novedades de MongoDB 3.6Novedades de MongoDB 3.6
Novedades de MongoDB 3.6
 
The Yin and Yang of Software
The Yin and Yang of SoftwareThe Yin and Yang of Software
The Yin and Yang of Software
 
Remaining Agile with Billions of Documents: Appboy and Creative MongoDB Schemas
Remaining Agile with Billions of Documents: Appboy and Creative MongoDB SchemasRemaining Agile with Billions of Documents: Appboy and Creative MongoDB Schemas
Remaining Agile with Billions of Documents: Appboy and Creative MongoDB Schemas
 
MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...
MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...
MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...
 
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
 
IBM Rational HATS Overview 2013
IBM Rational HATS Overview 2013IBM Rational HATS Overview 2013
IBM Rational HATS Overview 2013
 
Kuoll pitch-deck
Kuoll pitch-deckKuoll pitch-deck
Kuoll pitch-deck
 
Virtual Stress-free Testing in the Cloud
Virtual Stress-free Testing in the CloudVirtual Stress-free Testing in the Cloud
Virtual Stress-free Testing in the Cloud
 
Innovating with AWS: How Microservices on AWS Can Transform Your Business
Innovating with AWS: How Microservices on AWS Can Transform Your BusinessInnovating with AWS: How Microservices on AWS Can Transform Your Business
Innovating with AWS: How Microservices on AWS Can Transform Your Business
 
Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYC
 
Quantifying Business Advantage: The Value of Database Selection
Quantifying Business Advantage: The Value of Database SelectionQuantifying Business Advantage: The Value of Database Selection
Quantifying Business Advantage: The Value of Database Selection
 
Big Data and Analytics Innovation Summit
Big Data and Analytics Innovation SummitBig Data and Analytics Innovation Summit
Big Data and Analytics Innovation Summit
 
How Criteo Scaled and Supported Massive Growth with MongoDB (2013)
How Criteo Scaled and Supported  Massive Growth with MongoDB (2013)How Criteo Scaled and Supported  Massive Growth with MongoDB (2013)
How Criteo Scaled and Supported Massive Growth with MongoDB (2013)
 
presentation slides
presentation slidespresentation slides
presentation slides
 
Delia_J_Micu_resume_arch_Jan_2015
Delia_J_Micu_resume_arch_Jan_2015Delia_J_Micu_resume_arch_Jan_2015
Delia_J_Micu_resume_arch_Jan_2015
 
Keynote: Trends in Modern Application Development - Gilly Dekel, IBM
Keynote: Trends in Modern Application Development - Gilly Dekel, IBMKeynote: Trends in Modern Application Development - Gilly Dekel, IBM
Keynote: Trends in Modern Application Development - Gilly Dekel, IBM
 
Scaling Slack - The Good, the Unexpected, and the Road Ahead
Scaling Slack - The Good, the Unexpected, and the Road AheadScaling Slack - The Good, the Unexpected, and the Road Ahead
Scaling Slack - The Good, the Unexpected, and the Road Ahead
 
Business Track: How Criteo Scaled and Supported Massive Growth with MongoDB
Business Track: How Criteo Scaled and Supported Massive Growth with MongoDBBusiness Track: How Criteo Scaled and Supported Massive Growth with MongoDB
Business Track: How Criteo Scaled and Supported Massive Growth with MongoDB
 
Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications
 
Big problems Big Data, simple solutions
Big problems Big Data, simple solutionsBig problems Big Data, simple solutions
Big problems Big Data, simple solutions
 

Plus de MongoDB

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 AtlasMongoDB
 
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
 
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
 
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 MongoDBMongoDB
 
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
 
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 DataMongoDB
 
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 StartMongoDB
 
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
 
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.2MongoDB
 
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
 
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
 
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 MindsetMongoDB
 
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 JumpstartMongoDB
 
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
 
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
 
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
 
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 DiveMongoDB
 
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 & GolangMongoDB
 
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
 
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...MongoDB
 

Plus de 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...
 

Dernier

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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
 
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...apidays
 
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.pdfsudhanshuwaghmare1
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Dernier (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
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...
 
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
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

MongoDB @ Viacom

  • 1. MongoDB @ Viacom 1 (or how to support a few million kids sliming their favorite celebrities all at once.)
  • 2. Who Are We? Michael Makunas Director - Multiplatform Engineering @mmakunas Ramesh Nuthalapati Architect - Multiplatform Engineering @nuthalapati 2
  • 3. Who Are We? Viacom Media Networks Viacom creates original entertainment content for every audience, on every screen around the world. The company's brands strive for creative excellence and cultural impact across programming, motion pictures and digital experiences that live online, on mobile, and via apps. 3
  • 4. Today We Are Talking About... Funnel Viacom’s internal high volume polling, voting, and data collection service. 4
  • 5. …and How MongoDB just works. 5 • Launched in 2011 on 2.0 • Currently on 2.4
  • 6. Use Cases Award Show Voting •MTV Video Music Awards (VMAs) •European Movie Awards (EMAs) •Kids Choice Awards (KCAs) •CMT Music Awards Polling •MTV March Musical Madness •Spike Bellator On Air Match Voting Contests •MTV Ultimate Fan Experience 6
  • 7. What is “High Volume” to Viacom? •From big to little, continuous “horizontal” support across 100+ global sites •Voting, polling, and data collection occurs 24/7 •No “maintenance windows” •Sudden spikes to 15K+ votes per second from on-air “Throws” during prime time viewing: “Go to the site and Vote Now!” •Storage of 100s of millions of votes for analysis after events 7
  • 9. Who will survive the Human Slime Car Wash!?!?!? 9
  • 10. Statistics (Pushing The Limit) 2015 Kids Choice Awards •531 Million votes (a new record!) •7 Million votes during the show 10
  • 11. Some Definitions Funnel •Our internal name for our system Site •A brand and/or site specific namespace for collecting data Tent-pole •A major programming (entertainment) event Collection •An individual poll, voting event, sweepstakes, etc. •NOT a MongoDB Collection Entry •A single vote or poll entry Processor •Performs an action on a entry (validate it, persists it, etc.) 11
  • 12. History •Why did we build Funnel? •Why did we choose Mongo? 12
  • 13. Why Did We Build It? •Previous systems unmanageable •One system for data collection •Contests, sweepstakes, small polls •Built in-house with ATG Dynamo and MySQL •Per-site deployment model meant multiple installations per brand •Flexible schema == MySql “xml blobs” •Separate system for high volume polling •Comercial •Lack of customization •Per-brand installation 13
  • 14. Why Did We Choose Mongo? •Flexible schema document style database provides the quick-to-market support needed by 100+ sites, brands, and countries (All who want things “just a little bit different”) •Proven scalability •JSON in and JSON out 14
  • 15. Architectural Goals • High write throughput over read throughput and consistency • Handle up to 10,000 1KB writes per second. Read throughput is secondary • High Availability • Replace dozens of separate installations and services • Wide adoption across internal brands 15
  • 16. Server Layout 16 Primary Secondary Secondary Replica Set 1 (day-to-day use) Replica Set 2 (tent-pole events) Primary Secondary Secondary
  • 17. Server Layout • High availability • Primary, Secondary configuration with automatic failover • Primary stores all reads and writes, secondary stays in- sync with Primary • Monitoring with MongoDB Management Service (MMS) • Email Alerts from MMS for high volume op inserts 17
  • 18. More on MMS 18 KCA 2015 MMS Graph
  • 20. Schema For a Typical Collection "_id" : "kca-live-vote-2015-event", "_class" : "com.mtvi.funnel.domain.model.collection.Collection", "site" : "kca.nick.com", "name" : "kca-live-vote-2015-event", "description" : "KCA Live Event", "owner" : "nuthalar", "start" : ISODate("2015-03-02T05:00:00Z"), "end" : ISODate("2015-05-10T04:00:00Z"), "createdDate" : ISODate("2015-03-03T17:34:55.113Z"), "lastUpdateDate" : ISODate("2015-03-26T14:40:15.665Z"), "tags" : ["live-show"], "processorChain" : [...], “questions” : [...] -- Questions has Options and Validators 20
  • 21. Processors • Each entry received by Funnel will be handled by an ordered list of processors (the ProcessorChain) As each processor in the list is visited, the processor will decide whether to continue to the next one or to terminate further processing • A Processor can raise an error, and its detail message will be configurable and localizable. When an error is raised, it can signal the system to take a few different actions depending on the severity of the error condition: Log the error but continue to processing Bubble up the error to the client and cease further processing Ignore the error, cease further processing, and return an OK response to the client 21
  • 24. Questions: Email { "name":"email", "displayText":"email", "persistable":true, "source":"ENTITY_BODY", "validators":[ { "enabled":true, "failureMessage":"Please enter a valid email address to proceed.", "contentType":"EmailAddressValidator", "_class":"com.mtvi.funnel.domain.model.collection.questions.validators.E mailAddressValidator" }, { "enabled":true, "failureMessage":"This field is required. Please enter a response to proceed.", "contentType":"RequiredValidator", "_class":"com.mtvi.funnel.domain.model.collection.questions.validators.RequiredValidator" } ], "seqNum":NumberLong(0), "tallyEnabled":false, "isMandatory":false, "contentType":"EmailQuestion" } 24
  • 26. Questions: Single Choice 26 { "multipleAnswers":false, "options":[ { "optionValue":"andrew-garfield-male-action-star", "displayText":"andrew-garfield-male-action-star", "customOption":false }, { "optionValue":"channing-tatum-male-action- star", "displayText":"channing-tatum-male-action- star", "customOption":false }, { "optionValue":"chris-evans-male-action- star", "displayText":"chris-evans-male-action- star", "customOption":false }, { "optionValue":"chris-pratt-male-action-star", "displayText":"chris-pratt-male-action-star", "customOption":false }, ], "writeInOptionEnabled":false, "name":"favorite-male-action-star", "displayText":"favorite-male-action-star", "persistable":true, "source":"ENTITY_BODY", "validators":[ { "enabled":false, "failureMessage":"This field is required. Please enter a response to proceed.", "contentType":"RequiredValidator", "_class":"com.mtvi.funnel.domain.model.collection.questions.validators.R equiredValidator" }, { "enabled":true, "failureMessage":"Please select a valid choice to proceed.", "contentType":"ChoiceValidator", "_class":"com.mtvi.funnel.domain.model.collection.questions.validators.C hoiceValidator" }, { "enabled":true, "failureMessage":"Please fill in the 'Other' value to proceed.", "contentType":"WriteInRequiredValidator", "_class":"com.mtvi.funnel.domain.model.collection.questions.validators.W riteInRequiredValidator" } ], "seqNum":NumberLong(0), "tallyEnabled":true, "isMandatory":false, "sm4MappingEnabled":false, "sm4Mapping":"", "exodusMapping":"", "contentType":"SingleChoiceQuestion", "_class":"com.mtvi.funnel.domain.model.collection.questions.QuestionWith Options" }
  • 27. An Entry would look like… 27 { "_id" : ObjectId("53c698c1ebd268ff9b76034d"), "answers" : { "question" : "option-3", "source" : "mobile", "True-Client-IP" : "166.77.6.8" }, "createdDate" : ISODate("2014-07-16T15:22:41.593Z") }
  • 29. A Tally would look like… 29 { "_id" : ObjectId("53c698c51180cc552e79c12d"), "option-1" : 1249596, "option-2" : 341404, "option-3" : 466646, "questionName" : "question", "timeWindowType" : "ALL_TIME" }
  • 30. Optimizations We didn’t get it perfect the first time: • Correct Indices - Index on created Date of Entry Collection. EnsureIndex is called during collection creation and update • Batch update of vote tallies - Update the count per second instead of per Entry • Hourly Stats – Pre-caluculating hourly totals saved resources during live events to get stats for past 24 hours, 7 days and 30 days 30
  • 31. SPAM Prevention •De-duplicator processor: De-duplicates X number of entries for a defined period (eg. 30 Entries per minute). Internal to Funnel application •VERISIGN DDoS Protection service •Akamai WAF (part of Kona Web Application Firewall) •CAPTCHA •Authentication (FLUX - Viacom Internal System) 31
  • 32. Before & After Previous Systems •Decentralized •Multiple Installations •Outdated App Server •Rigid Schema requiring rigid change control process 32 Funnel •Service Oriented •Performant •Flexible Schema; easily extended
  • 33. Our Track Record •100+ Sites •15K Collections •10+ Billion Votes to date 33
  • 34. Where else MongoDB is Used @ Viacom •Used in production since v 1.6 •Content Management System •Viacom Identity Platform (Auth & User Profiles) 34
  • 36. Who survived the Human Slime Carwash!?!?!? 36
  • 38. Thank You! 38 • Michael Makunas -- @mmakunas • Ramesh Nuthalapati -- @nuthalapati

Notes de l'éditeur

  1. M Should we change the title?
  2. M
  3. M
  4. M
  5. M
  6. M
  7. M
  8. Video NEXT!
  9. Video NEXT!
  10. M
  11. M
  12. M
  13. M
  14. M
  15. M
  16. M
  17. 2nd video NEXT (TBD)
  18. 2nd video NEXT (TBD)