SlideShare una empresa de Scribd logo
1 de 27
Using Cassandra for DVR Scheduling at Comcast

VERSION   1.0

DATE      3/20/213

AUTHOR    John McCann | @dangermccann




                                        Using Cassandra for DVR Scheduling at Comcast   4/9/2013   1
The X1 Platform

                     XFINITY On Demand
                     Choose from thousands of movies and
                     shows.




    More than a back button
    See the last nine shows and channels
    you've watched with a single tap.




                       Using Cassandra for DVR Scheduling at Comcast   4/9/2013   2
The X1 Platform

                     The ultimate scoreboard
                     Track multiple games at once and check
                     the latest scores, standings, and schedules.




     Apps right on your TV
     Now your TV is for more than just
     watching.




                        Using Cassandra for DVR Scheduling at Comcast   4/9/2013   3
The X1 Platform

• Next generation of the XFINITY TV experience
• New line of set-top boxes and technologies that lets XFINITY
  TV run in the cloud
• Premium content viewing experience, with access to XFINITY
  On Demand, DVR and Pay-Per-View video
• De-coupled, service-based architecture where services are
  developed and deployed independently




                       Using Cassandra for DVR Scheduling at Comcast   4/9/2013   4
What Comcast Stores in Cassandra

•   Customer viewing history
•   Resume points for DVR and XFINITY On Demand content
•   Device and account preferences
•   Pay-Per-View purchases
•   DVR recordings and scheduling instructions




                      Using Cassandra for DVR Scheduling at Comcast   4/9/2013   5
Why Comcast Uses Cassandra

• Multi-data center (active / active)
• Performance of write-heavy use cases
   – DVR status updates
   – Remembering resume points during content playback
• Developers (not DBAs) model and manage the data
• Open source encourages in-house expertise




                          Using Cassandra for DVR Scheduling at Comcast   4/9/2013   6
Redesigned DVR




             Using Cassandra for DVR Scheduling at Comcast   4/9/2013   7
DVR System Architecture

East Data Center                                            West Data Center
 API Server        Worker                                      API Server          Worker



                              Worker Queue




                                                                                            Worker Queue
 API Server        Worker                                      API Server          Worker

 API Server        Worker                                      API Server          Worker



          Cassandra                                                         Cassandra




                            Using Cassandra for DVR Scheduling at Comcast      4/9/2013                    8
Cassandra Configuration

•   4-node rings in 2 data centers
•   NetworkTopologyStrategy replication strategy
•   Replication factor is 3 (per data center)
•   LOCAL_QUORUM consistency level for most operations




                      Using Cassandra for DVR Scheduling at Comcast   4/9/2013   9
Comcast Message Bus

https://github.com/Comcast/cmb
                                                                        CQS Endpoint

•   Horizontally scalable queuing and
    notification service
•   Compatible with Amazon SQS and SNS                        Cassandra                Redis
•   Cassandra used to persist messages
•   Redis used as caching layer
•   Open source (Apache license)
                                                                        CNS Endpoint

                                                                         CNS Worker




                             Using Cassandra for DVR Scheduling at Comcast      4/9/2013       10
Use Case Exploration

Scheduling a Series Recording




                          Using Cassandra for DVR Scheduling at Comcast   4/9/2013   11
User Interaction

         Set-top box


User


         UI Server




                       Using Cassandra for DVR Scheduling at Comcast   4/9/2013   12
User Interaction

         Set-top box

                                                    API Server              Worker




                                                                                       Worker Queue
User
                                                    API Server              Worker

         UI Server                                  API Server              Worker



                                                                       Cassandra

        Memcached




                       Using Cassandra for DVR Scheduling at Comcast        4/9/2013                  13
Recording Schedule Update


                                            API Server              Worker




                                                                               Worker Queue
                                            API Server              Worker

                                            API Server              Worker



                                                               Cassandra




               Using Cassandra for DVR Scheduling at Comcast        4/9/2013                  14
Recording Schedule Update

        Set-top box

                                                   API Server              Worker




                                                                                      Worker Queue
                                                   API Server              Worker

                                                   API Server              Worker



                                                                      Cassandra




                      Using Cassandra for DVR Scheduling at Comcast        4/9/2013                  15
Recording Schedule Update

        Set-top box

                                                   API Server              Worker




                                                                                      Worker Queue
                                                   API Server              Worker

                                                   API Server              Worker



                                                                      Cassandra




                      Using Cassandra for DVR Scheduling at Comcast        4/9/2013                  16
UI Update


                                                 API Server              Worker




                                                                                    Worker Queue
                                                 API Server              Worker

        UI Server                                API Server              Worker



                                                                    Cassandra




                    Using Cassandra for DVR Scheduling at Comcast        4/9/2013                  17
UI Update


                                                 API Server              Worker




                                                                                    Worker Queue
                                                 API Server              Worker

        UI Server                                API Server              Worker



                                                                    Cassandra

       Memcached




                    Using Cassandra for DVR Scheduling at Comcast        4/9/2013                  18
System Diagram

       Set-top box

                                                  API Server              Worker




                                                                                     Worker Queue
User
                                                  API Server              Worker

        UI Server                                 API Server              Worker



                                                                     Cassandra

       Memcached




                     Using Cassandra for DVR Scheduling at Comcast        4/9/2013                  19
Data Model Analysis

1. Recording Instructions
2. Recording Schedule
3. Completed Recordings




                            Using Cassandra for DVR Scheduling at Comcast   4/9/2013   20
Recording Instructions Schema
• Stores the instructions used to produce the recording schedule
  in the order that the instructions were generated.


ScheduleInstruction
 AccountID/DeviceID    TimeUUID : [instruction]             TimeUUID : [instruction]         …




   Composite row key      Instructions sorted by creation time using TimeUUID as
                          the column name. The column value contains the instruction data.




                                 Using Cassandra for DVR Scheduling at Comcast    4/9/2013       21
Recording Schedule Schema
• Stores the data for the most recent recording schedule that
  has been delivered to the Recorder on the STB.


DvrSchedule
 AccountID/DeviceID




                      Properties of each recording stored as separate columns using
                      composite column names: recording_ID/[property_name]




                             Using Cassandra for DVR Scheduling at Comcast   4/9/2013   22
Completed Recordings Schema
• Stores the data for all of the completed recordings on the STB.



Recording
 AccountID/DeviceID




                      Properties of each recording stored as separate columns using
                      composite column names: recording_ID/[property_name]




                             Using Cassandra for DVR Scheduling at Comcast   4/9/2013   23
Hardware Configuration
•   HP DL360 G8
•   64GB RAM
•   2 x 600 GB SATA Hard Drive
•   RAID 1 for OS Partition
•   LSI controller
•   2 x Samsung 840 512GB SSD (room for up to 4 SSDs)




                       Using Cassandra for DVR Scheduling at Comcast   4/9/2013   24
Solid State Drives

Samsung 840 512GB

•   50% cost increase per node
•   400% capacity increase per node
•   Smaller rings, better read performance
•   Read performance consistency (flat 99th percentiles for reads)




                         Using Cassandra for DVR Scheduling at Comcast   4/9/2013   25
Lessons Learned

• If you're using Hector, pay close attention to
  CassandraHostConfigurator.maxActive.
• Don’t enable the row cache if you need to perform slice
  queries.
• Don’t delete a row if you plan to write columns to the same row
  later (better in 1.2).
• Don’t run Cassandra on shared storage if you can avoid it.




                       Using Cassandra for DVR Scheduling at Comcast   4/9/2013   26
Q&A

Thanks for your attention!

http://xfinity.comcast.net/x1


John McCann
@dangermccann




                                Using Cassandra for DVR Scheduling at Comcast   4/9/2013   27

Más contenido relacionado

La actualidad más candente

Apache Hadoop YARN: Present and Future
Apache Hadoop YARN: Present and FutureApache Hadoop YARN: Present and Future
Apache Hadoop YARN: Present and Future
DataWorks Summit
 
Startup Case Study: Leveraging the Broad Hadoop Ecosystem to Develop World-Fi...
Startup Case Study: Leveraging the Broad Hadoop Ecosystem to Develop World-Fi...Startup Case Study: Leveraging the Broad Hadoop Ecosystem to Develop World-Fi...
Startup Case Study: Leveraging the Broad Hadoop Ecosystem to Develop World-Fi...
DataWorks Summit
 

La actualidad más candente (20)

Building Machine Learning inference pipelines at scale | AWS Summit Tel Aviv ...
Building Machine Learning inference pipelines at scale | AWS Summit Tel Aviv ...Building Machine Learning inference pipelines at scale | AWS Summit Tel Aviv ...
Building Machine Learning inference pipelines at scale | AWS Summit Tel Aviv ...
 
From Insights to Value - Building a Modern Logical Data Lake to Drive User Ad...
From Insights to Value - Building a Modern Logical Data Lake to Drive User Ad...From Insights to Value - Building a Modern Logical Data Lake to Drive User Ad...
From Insights to Value - Building a Modern Logical Data Lake to Drive User Ad...
 
Leveraging docker for hadoop build automation and big data stack provisioning
Leveraging docker for hadoop build automation and big data stack provisioningLeveraging docker for hadoop build automation and big data stack provisioning
Leveraging docker for hadoop build automation and big data stack provisioning
 
Designing For Multicloud, CF Summit Frankfurt 2016
Designing For Multicloud, CF Summit Frankfurt 2016Designing For Multicloud, CF Summit Frankfurt 2016
Designing For Multicloud, CF Summit Frankfurt 2016
 
Kafka Security
Kafka SecurityKafka Security
Kafka Security
 
PayPal Big Data and MySQL Cluster
PayPal Big Data and MySQL ClusterPayPal Big Data and MySQL Cluster
PayPal Big Data and MySQL Cluster
 
End-to-End Security and Auditing in a Big Data as a Service Deployment
End-to-End Security and Auditing in a Big Data as a Service DeploymentEnd-to-End Security and Auditing in a Big Data as a Service Deployment
End-to-End Security and Auditing in a Big Data as a Service Deployment
 
Apache Hadoop YARN: Present and Future
Apache Hadoop YARN: Present and FutureApache Hadoop YARN: Present and Future
Apache Hadoop YARN: Present and Future
 
Startup Case Study: Leveraging the Broad Hadoop Ecosystem to Develop World-Fi...
Startup Case Study: Leveraging the Broad Hadoop Ecosystem to Develop World-Fi...Startup Case Study: Leveraging the Broad Hadoop Ecosystem to Develop World-Fi...
Startup Case Study: Leveraging the Broad Hadoop Ecosystem to Develop World-Fi...
 
What's new in apache hive
What's new in apache hive What's new in apache hive
What's new in apache hive
 
Azure Custom Backup Solution for SAP NetWeaver
Azure Custom Backup Solution for SAP NetWeaverAzure Custom Backup Solution for SAP NetWeaver
Azure Custom Backup Solution for SAP NetWeaver
 
OracleStore: A Highly Performant RawStore Implementation for Hive Metastore
OracleStore: A Highly Performant RawStore Implementation for Hive MetastoreOracleStore: A Highly Performant RawStore Implementation for Hive Metastore
OracleStore: A Highly Performant RawStore Implementation for Hive Metastore
 
[db tech showcase Tokyo 2017] C24:Taking off to the clouds. How to use DMS in...
[db tech showcase Tokyo 2017] C24:Taking off to the clouds. How to use DMS in...[db tech showcase Tokyo 2017] C24:Taking off to the clouds. How to use DMS in...
[db tech showcase Tokyo 2017] C24:Taking off to the clouds. How to use DMS in...
 
Splice Machine Overview
Splice Machine OverviewSplice Machine Overview
Splice Machine Overview
 
Big Data Tools in AWS
Big Data Tools in AWSBig Data Tools in AWS
Big Data Tools in AWS
 
Containerized Hadoop beyond Kubernetes
Containerized Hadoop beyond KubernetesContainerized Hadoop beyond Kubernetes
Containerized Hadoop beyond Kubernetes
 
An Apache Hive Based Data Warehouse
An Apache Hive Based Data WarehouseAn Apache Hive Based Data Warehouse
An Apache Hive Based Data Warehouse
 
Kubernetes on EGO : Bringing enterprise resource management and scheduling to...
Kubernetes on EGO : Bringing enterprise resource management and scheduling to...Kubernetes on EGO : Bringing enterprise resource management and scheduling to...
Kubernetes on EGO : Bringing enterprise resource management and scheduling to...
 
Intro to Apache Kafka
Intro to Apache KafkaIntro to Apache Kafka
Intro to Apache Kafka
 
Open Innovation with Power Systems
Open Innovation with Power Systems Open Innovation with Power Systems
Open Innovation with Power Systems
 

Destacado

Flash Economics and Lessons learned from operating low latency platforms at h...
Flash Economics and Lessons learned from operating low latency platforms at h...Flash Economics and Lessons learned from operating low latency platforms at h...
Flash Economics and Lessons learned from operating low latency platforms at h...
Aerospike, Inc.
 
Kai – An Open Source Implementation of Amazon’s Dynamo
Kai – An Open Source Implementation of Amazon’s DynamoKai – An Open Source Implementation of Amazon’s Dynamo
Kai – An Open Source Implementation of Amazon’s Dynamo
Takeru INOUE
 
InfoGrid Core Ideas
InfoGrid Core IdeasInfoGrid Core Ideas
InfoGrid Core Ideas
InfoGrid.org
 

Destacado (20)

Cassandra & puppet, scaling data at $15 per month
Cassandra & puppet, scaling data at $15 per monthCassandra & puppet, scaling data at $15 per month
Cassandra & puppet, scaling data at $15 per month
 
Migrating Netflix from Datacenter Oracle to Global Cassandra
Migrating Netflix from Datacenter Oracle to Global CassandraMigrating Netflix from Datacenter Oracle to Global Cassandra
Migrating Netflix from Datacenter Oracle to Global Cassandra
 
C* Summit 2013: Time for a New Relationship - Intuit's Journey from RDBMS to ...
C* Summit 2013: Time for a New Relationship - Intuit's Journey from RDBMS to ...C* Summit 2013: Time for a New Relationship - Intuit's Journey from RDBMS to ...
C* Summit 2013: Time for a New Relationship - Intuit's Journey from RDBMS to ...
 
Blueflood: Open Source Metrics Processing at CassandraEU 2013
Blueflood: Open Source Metrics Processing at CassandraEU 2013Blueflood: Open Source Metrics Processing at CassandraEU 2013
Blueflood: Open Source Metrics Processing at CassandraEU 2013
 
Best Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft AzureBest Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft Azure
 
Flash Economics and Lessons learned from operating low latency platforms at h...
Flash Economics and Lessons learned from operating low latency platforms at h...Flash Economics and Lessons learned from operating low latency platforms at h...
Flash Economics and Lessons learned from operating low latency platforms at h...
 
Cassandra Summit - What's New In Apache TinkerPop?
Cassandra Summit - What's New In Apache TinkerPop?Cassandra Summit - What's New In Apache TinkerPop?
Cassandra Summit - What's New In Apache TinkerPop?
 
Kai – An Open Source Implementation of Amazon’s Dynamo
Kai – An Open Source Implementation of Amazon’s DynamoKai – An Open Source Implementation of Amazon’s Dynamo
Kai – An Open Source Implementation of Amazon’s Dynamo
 
Juniper vSRX - Fast Performance, Low TCO
Juniper vSRX - Fast Performance, Low TCOJuniper vSRX - Fast Performance, Low TCO
Juniper vSRX - Fast Performance, Low TCO
 
Sparksee Technology overview
Sparksee Technology overviewSparksee Technology overview
Sparksee Technology overview
 
The Gremlin Graph Traversal Language
The Gremlin Graph Traversal LanguageThe Gremlin Graph Traversal Language
The Gremlin Graph Traversal Language
 
Quantum Processes in Graph Computing
Quantum Processes in Graph ComputingQuantum Processes in Graph Computing
Quantum Processes in Graph Computing
 
Sparksee overview
Sparksee overviewSparksee overview
Sparksee overview
 
Gremlin's Graph Traversal Machinery
Gremlin's Graph Traversal MachineryGremlin's Graph Traversal Machinery
Gremlin's Graph Traversal Machinery
 
Off-heaping the Apache HBase Read Path
Off-heaping the Apache HBase Read Path Off-heaping the Apache HBase Read Path
Off-heaping the Apache HBase Read Path
 
InfoGrid Core Ideas
InfoGrid Core IdeasInfoGrid Core Ideas
InfoGrid Core Ideas
 
GT.M: A Tried and Tested Open-Source NoSQL Database
GT.M: A Tried and Tested Open-Source NoSQL DatabaseGT.M: A Tried and Tested Open-Source NoSQL Database
GT.M: A Tried and Tested Open-Source NoSQL Database
 
Ten Reasons Why You Should Prefer PostgreSQL to MySQL
Ten Reasons Why You Should Prefer PostgreSQL to MySQLTen Reasons Why You Should Prefer PostgreSQL to MySQL
Ten Reasons Why You Should Prefer PostgreSQL to MySQL
 
BI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache CassandraBI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache Cassandra
 
ACM DBPL Keynote: The Graph Traversal Machine and Language
ACM DBPL Keynote: The Graph Traversal Machine and LanguageACM DBPL Keynote: The Graph Traversal Machine and Language
ACM DBPL Keynote: The Graph Traversal Machine and Language
 

Similar a NYC* 2013 — "Using Cassandra for DVR Scheduling at Comcast"

vFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS AppsvFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS Apps
VMware vFabric
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2
day
 
Building a CloudStack UI for the Enterprise
Building a CloudStack UI for the EnterpriseBuilding a CloudStack UI for the Enterprise
Building a CloudStack UI for the Enterprise
David Grizzanti
 
Conpaas Elastic Cloud, OW2con 2011, Nov 24-25, Paris
Conpaas Elastic Cloud, OW2con 2011, Nov 24-25, ParisConpaas Elastic Cloud, OW2con 2011, Nov 24-25, Paris
Conpaas Elastic Cloud, OW2con 2011, Nov 24-25, Paris
OW2
 

Similar a NYC* 2013 — "Using Cassandra for DVR Scheduling at Comcast" (20)

Managing your Hadoop Clusters with Ambari
Managing your Hadoop Clusters with AmbariManaging your Hadoop Clusters with Ambari
Managing your Hadoop Clusters with Ambari
 
ARC301 Intro to Chaos Monkey & the Simian Army - AWS re: Invent 2012
ARC301 Intro to Chaos Monkey & the Simian Army - AWS re: Invent 2012ARC301 Intro to Chaos Monkey & the Simian Army - AWS re: Invent 2012
ARC301 Intro to Chaos Monkey & the Simian Army - AWS re: Invent 2012
 
Architectures for High Availability - QConSF
Architectures for High Availability - QConSFArchitectures for High Availability - QConSF
Architectures for High Availability - QConSF
 
vFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS AppsvFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS Apps
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2
 
Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry
Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundryCassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry
Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry
 
Netflix Global Cloud Architecture
Netflix Global Cloud ArchitectureNetflix Global Cloud Architecture
Netflix Global Cloud Architecture
 
Netflix and Open Source
Netflix and Open SourceNetflix and Open Source
Netflix and Open Source
 
cinder-agent
cinder-agentcinder-agent
cinder-agent
 
Cassandra Lunch 130: Recap of Cassandra Forward Talks
Cassandra Lunch 130: Recap of Cassandra Forward TalksCassandra Lunch 130: Recap of Cassandra Forward Talks
Cassandra Lunch 130: Recap of Cassandra Forward Talks
 
Dealing with High Demand--Building high-capacity mapping applications
Dealing with High Demand--Building high-capacity mapping applicationsDealing with High Demand--Building high-capacity mapping applications
Dealing with High Demand--Building high-capacity mapping applications
 
App modernization on AWS with Apache Kafka and Confluent Cloud
App modernization on AWS with Apache Kafka and Confluent CloudApp modernization on AWS with Apache Kafka and Confluent Cloud
App modernization on AWS with Apache Kafka and Confluent Cloud
 
High-Throughput Genomics on AWS - LFS309 - re:Invent 2017
High-Throughput Genomics on AWS - LFS309 - re:Invent 2017High-Throughput Genomics on AWS - LFS309 - re:Invent 2017
High-Throughput Genomics on AWS - LFS309 - re:Invent 2017
 
LFS309-High-Throughput Genomics on AWS.pdf
LFS309-High-Throughput Genomics on AWS.pdfLFS309-High-Throughput Genomics on AWS.pdf
LFS309-High-Throughput Genomics on AWS.pdf
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry Bootcamp
 
V fabric overview
V fabric overviewV fabric overview
V fabric overview
 
Building a CloudStack UI for the Enterprise
Building a CloudStack UI for the EnterpriseBuilding a CloudStack UI for the Enterprise
Building a CloudStack UI for the Enterprise
 
Genomics on aws-webinar-april2018
Genomics on aws-webinar-april2018Genomics on aws-webinar-april2018
Genomics on aws-webinar-april2018
 
Conpaas Elastic Cloud, OW2con 2011, Nov 24-25, Paris
Conpaas Elastic Cloud, OW2con 2011, Nov 24-25, ParisConpaas Elastic Cloud, OW2con 2011, Nov 24-25, Paris
Conpaas Elastic Cloud, OW2con 2011, Nov 24-25, Paris
 
RunningQuantumOnQuantumAtNicira.pdf
RunningQuantumOnQuantumAtNicira.pdfRunningQuantumOnQuantumAtNicira.pdf
RunningQuantumOnQuantumAtNicira.pdf
 

Más de DataStax Academy

Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart Labs
DataStax Academy
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stack
DataStax Academy
 
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonCassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
DataStax Academy
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First Cluster
DataStax Academy
 
Real Time Analytics with Dse
Real Time Analytics with DseReal Time Analytics with Dse
Real Time Analytics with Dse
DataStax Academy
 
Introduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraIntroduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache Cassandra
DataStax Academy
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax Enterprise
DataStax Academy
 
Advanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraAdvanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache Cassandra
DataStax Academy
 

Más de DataStax Academy (20)

Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftForrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
 
Introduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseIntroduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph Database
 
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraIntroduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
 
Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart Labs
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data Modeling
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stack
 
Data Modeling for Apache Cassandra
Data Modeling for Apache CassandraData Modeling for Apache Cassandra
Data Modeling for Apache Cassandra
 
Coursera Cassandra Driver
Coursera Cassandra DriverCoursera Cassandra Driver
Coursera Cassandra Driver
 
Production Ready Cassandra
Production Ready CassandraProduction Ready Cassandra
Production Ready Cassandra
 
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonCassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
 
Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1
 
Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First Cluster
 
Real Time Analytics with Dse
Real Time Analytics with DseReal Time Analytics with Dse
Real Time Analytics with Dse
 
Introduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraIntroduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache Cassandra
 
Cassandra Core Concepts
Cassandra Core ConceptsCassandra Core Concepts
Cassandra Core Concepts
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax Enterprise
 
Bad Habits Die Hard
Bad Habits Die Hard Bad Habits Die Hard
Bad Habits Die Hard
 
Advanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraAdvanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache Cassandra
 
Advanced Cassandra
Advanced CassandraAdvanced Cassandra
Advanced Cassandra
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
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...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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)
 
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 - 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
 
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...
 
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
 
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
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
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...
 
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...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
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...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 

NYC* 2013 — "Using Cassandra for DVR Scheduling at Comcast"

  • 1. Using Cassandra for DVR Scheduling at Comcast VERSION 1.0 DATE 3/20/213 AUTHOR John McCann | @dangermccann Using Cassandra for DVR Scheduling at Comcast 4/9/2013 1
  • 2. The X1 Platform XFINITY On Demand Choose from thousands of movies and shows. More than a back button See the last nine shows and channels you've watched with a single tap. Using Cassandra for DVR Scheduling at Comcast 4/9/2013 2
  • 3. The X1 Platform The ultimate scoreboard Track multiple games at once and check the latest scores, standings, and schedules. Apps right on your TV Now your TV is for more than just watching. Using Cassandra for DVR Scheduling at Comcast 4/9/2013 3
  • 4. The X1 Platform • Next generation of the XFINITY TV experience • New line of set-top boxes and technologies that lets XFINITY TV run in the cloud • Premium content viewing experience, with access to XFINITY On Demand, DVR and Pay-Per-View video • De-coupled, service-based architecture where services are developed and deployed independently Using Cassandra for DVR Scheduling at Comcast 4/9/2013 4
  • 5. What Comcast Stores in Cassandra • Customer viewing history • Resume points for DVR and XFINITY On Demand content • Device and account preferences • Pay-Per-View purchases • DVR recordings and scheduling instructions Using Cassandra for DVR Scheduling at Comcast 4/9/2013 5
  • 6. Why Comcast Uses Cassandra • Multi-data center (active / active) • Performance of write-heavy use cases – DVR status updates – Remembering resume points during content playback • Developers (not DBAs) model and manage the data • Open source encourages in-house expertise Using Cassandra for DVR Scheduling at Comcast 4/9/2013 6
  • 7. Redesigned DVR Using Cassandra for DVR Scheduling at Comcast 4/9/2013 7
  • 8. DVR System Architecture East Data Center West Data Center API Server Worker API Server Worker Worker Queue Worker Queue API Server Worker API Server Worker API Server Worker API Server Worker Cassandra Cassandra Using Cassandra for DVR Scheduling at Comcast 4/9/2013 8
  • 9. Cassandra Configuration • 4-node rings in 2 data centers • NetworkTopologyStrategy replication strategy • Replication factor is 3 (per data center) • LOCAL_QUORUM consistency level for most operations Using Cassandra for DVR Scheduling at Comcast 4/9/2013 9
  • 10. Comcast Message Bus https://github.com/Comcast/cmb CQS Endpoint • Horizontally scalable queuing and notification service • Compatible with Amazon SQS and SNS Cassandra Redis • Cassandra used to persist messages • Redis used as caching layer • Open source (Apache license) CNS Endpoint CNS Worker Using Cassandra for DVR Scheduling at Comcast 4/9/2013 10
  • 11. Use Case Exploration Scheduling a Series Recording Using Cassandra for DVR Scheduling at Comcast 4/9/2013 11
  • 12. User Interaction Set-top box User UI Server Using Cassandra for DVR Scheduling at Comcast 4/9/2013 12
  • 13. User Interaction Set-top box API Server Worker Worker Queue User API Server Worker UI Server API Server Worker Cassandra Memcached Using Cassandra for DVR Scheduling at Comcast 4/9/2013 13
  • 14. Recording Schedule Update API Server Worker Worker Queue API Server Worker API Server Worker Cassandra Using Cassandra for DVR Scheduling at Comcast 4/9/2013 14
  • 15. Recording Schedule Update Set-top box API Server Worker Worker Queue API Server Worker API Server Worker Cassandra Using Cassandra for DVR Scheduling at Comcast 4/9/2013 15
  • 16. Recording Schedule Update Set-top box API Server Worker Worker Queue API Server Worker API Server Worker Cassandra Using Cassandra for DVR Scheduling at Comcast 4/9/2013 16
  • 17. UI Update API Server Worker Worker Queue API Server Worker UI Server API Server Worker Cassandra Using Cassandra for DVR Scheduling at Comcast 4/9/2013 17
  • 18. UI Update API Server Worker Worker Queue API Server Worker UI Server API Server Worker Cassandra Memcached Using Cassandra for DVR Scheduling at Comcast 4/9/2013 18
  • 19. System Diagram Set-top box API Server Worker Worker Queue User API Server Worker UI Server API Server Worker Cassandra Memcached Using Cassandra for DVR Scheduling at Comcast 4/9/2013 19
  • 20. Data Model Analysis 1. Recording Instructions 2. Recording Schedule 3. Completed Recordings Using Cassandra for DVR Scheduling at Comcast 4/9/2013 20
  • 21. Recording Instructions Schema • Stores the instructions used to produce the recording schedule in the order that the instructions were generated. ScheduleInstruction AccountID/DeviceID TimeUUID : [instruction] TimeUUID : [instruction] … Composite row key Instructions sorted by creation time using TimeUUID as the column name. The column value contains the instruction data. Using Cassandra for DVR Scheduling at Comcast 4/9/2013 21
  • 22. Recording Schedule Schema • Stores the data for the most recent recording schedule that has been delivered to the Recorder on the STB. DvrSchedule AccountID/DeviceID Properties of each recording stored as separate columns using composite column names: recording_ID/[property_name] Using Cassandra for DVR Scheduling at Comcast 4/9/2013 22
  • 23. Completed Recordings Schema • Stores the data for all of the completed recordings on the STB. Recording AccountID/DeviceID Properties of each recording stored as separate columns using composite column names: recording_ID/[property_name] Using Cassandra for DVR Scheduling at Comcast 4/9/2013 23
  • 24. Hardware Configuration • HP DL360 G8 • 64GB RAM • 2 x 600 GB SATA Hard Drive • RAID 1 for OS Partition • LSI controller • 2 x Samsung 840 512GB SSD (room for up to 4 SSDs) Using Cassandra for DVR Scheduling at Comcast 4/9/2013 24
  • 25. Solid State Drives Samsung 840 512GB • 50% cost increase per node • 400% capacity increase per node • Smaller rings, better read performance • Read performance consistency (flat 99th percentiles for reads) Using Cassandra for DVR Scheduling at Comcast 4/9/2013 25
  • 26. Lessons Learned • If you're using Hector, pay close attention to CassandraHostConfigurator.maxActive. • Don’t enable the row cache if you need to perform slice queries. • Don’t delete a row if you plan to write columns to the same row later (better in 1.2). • Don’t run Cassandra on shared storage if you can avoid it. Using Cassandra for DVR Scheduling at Comcast 4/9/2013 26
  • 27. Q&A Thanks for your attention! http://xfinity.comcast.net/x1 John McCann @dangermccann Using Cassandra for DVR Scheduling at Comcast 4/9/2013 27

Notas del editor

  1. Split the backplane2x4 planesInternal controller drives HDD @ Raid 1LSI controller drives SSD @ Raid 0
  2. Pending writes prevent ability to delete rowNormal compaction will not clean up rowMajor compaction can not clean up if there a pending writes to the row