SlideShare une entreprise Scribd logo
1  sur  38
A Cassandra Usage Example


Gary Dusbabek
@gdusbabek
Goals
        CM Overview
        Control Cluster
         Data Cluster
CM Overview
Thousands of servers
Pre-existing solutions
Lessons learned from
  Cloudkick
Internal versus external
Millions of checks
Terminology
Entity
Something with an IP address or
 host name
Terminology
Check
Tied to a entity
Is an action
Produces metrics
Terminology
Alarm
Tied to an entity
Evaluates check output
Specified by DSL
Terminology
Notification Plan
Determines what to do for various
 alarm states
Features
                   Remote checks
Five datacenters
                 collectors in five
 processing in three
                          Alerting
1,000 words
All REST all
             the time
 More    Ops friendly
Features   Agent
               Metrics
           https://github.com/racker/virgo
Future
  Automation
    Prediction
 Support hooks
Agent expansion
  Correlation
  Aggregation
Entity Spanning
Two Clusters


  Data
 Control
Control
     Cluster
Metadata
State
Three datacenters
High RF
Wide rows
Easy dump & load
https://github.com/racker/cassandra-syncer
Data Model
Rich but simple
Objects used together stored together
 Simple parent-child relations
One row per customer (tenant)
Composite column names
Data Model


    Good:                   Bad:
Single Parent/Child         Complex
      Acyclic         Multiple Parent/Child
Data
 Model
 Object types:
Foo, Bar, Baz

 Relationship:
     1:*
Data Model
      New Foo: 123
Row
                      Column
                      Value
       Key   Column
             Name
Data Model
New Foo: 124
Data Model
  New Bar attached to fo123.



ID is “fo123”    ID is “fo123:ba001”
Data Model
New Bar attached to fo123.
Data Model
New Bar attached to fo124.
Data Model
  New Bar attached to fo123.



ID is “fo123:ba003”
Data Model
     Baz attached to ba003



ID is “fo123:ba001:bz001”
Data Model
Select Foo children for 123:
select „fo123‟..‟fo123:x7f‟;
Select single Bar object attached to fo123:
select „fo123:ba001‟..‟fo123:ba001:x7f‟;




Object hierarchy reduced to a single slice.
Parent keys available from context (no extra
 reads or indexes)
Control Cluster
API server is Node.js
Javascript ORM library
• Define object model in JS
• Read/write entire objects
• Never think about CQL

node-cassandra-client
https://github.com/racker/node-cassandra-client
Control Cluster
Data
          Cluster
The fun
 starts
 here
Data Cluster
Goal: Fast graphs
Time series data
Fewer data points
OK to shave resolution
Recent data is most important
Granularity
Full, 5m, 20m, 80m, 320m, 1280m
 time-to-live (TTL)
Rollup Concepts
Slot
Pegged at 4096 slots
Circular buffer of metrics names that
have come into the system
Key is granularity + slot
Columns index keys in rollup table
Keyed by ascii
Bigint column names
 Blob column values
               JDBC
    Rollups
Arrival
Full Resolution!
time, name, several metrics
metric = name, type, value
Create a locator assigned to slot
Insert metrics
Single Cassandra APPLY BATCH;
Process: Rolling up
• rollup(src_gran, from, to);
• from, to determine slots
• For each slot, get locator row slice
  – Cols tell us which metrics are active (need roll up)
  – For each column in locator row slice, slice in data
    row to get metrics
     • For each column (metric) in slice, add to calculations
     • Store rolled up calculation in dst_gran CF
     • Store locator column for slot, dst_gran
• Also rollup(metric, src_gran, from, to);
Rollup operations are idempotent*
                    Simplifies availability
Rollups are easily parallelized
              Partition the locator space
But…
What if data arrives after rollup is
 performed?

More than 24hrs late: don‟t care,
 forget it

Figure out which slot the data
  belongs it, flag for each
  granularity in a meta row

Recalculate rollups
http://www.flickr.com/photos/nateone/3768979925
           /




   HBase
@gdusbabek
Image Credits
soccer          http://www.flickr.com/photos/ollesvensson/4252196844/
apples          http://www.flickr.com/photos/jean_koulev/2697677595/
       clock    http://www.flickr.com/photos/ollesvensson/4252196844/
    corridor    http://www.flickr.com/photos/orinrobertjohn/4354716077/
       car      http://www.flickr.com/photos/ellenm1/3541270451
  controller    http://www.flickr.com/photos/germanium/117612088/
model           http://www.flickr.com/photos/mikeschinkel/2703438152/
   objects 1    http://www.flickr.com/photos/radder86/389283265/
   objects 2    http://www.flickr.com/photos/radder86/389283262
       robot    http://www.flickr.com/photos/kb35/430976324/
       fun      http://www.flickr.com/photos/pierrebedat/1095337445/
       blobs    http://www.flickr.com/photos/inl/5097547405/
         dish   http://www.flickr.com/photos/mrpbps/2862208028/
       sand     http://www.flickr.com/photos/backkratze/3480338854/
         slot   http://www.flickr.com/photos/andresrueda/2925383781
       sushi    http://www.flickr.com/photos/basykes/4348613931/
    airplane    http://www.flickr.com/photos/fhashemi/72489620/
       scale    http://www.flickr.com/photos/puuikibeach/4765115333
  hourglass     http://www.flickr.com/photos/aidanmorgan/2331754875/
       street   http://www.flickr.com/photos/nateone/3768979925/

Contenu connexe

Tendances

An AI-Powered Chatbot to Simplify Apache Spark Performance Management
An AI-Powered Chatbot to Simplify Apache Spark Performance ManagementAn AI-Powered Chatbot to Simplify Apache Spark Performance Management
An AI-Powered Chatbot to Simplify Apache Spark Performance Management
Databricks
 
Yahoo! Mail antispam - Bay area Hadoop user group
Yahoo! Mail antispam - Bay area Hadoop user groupYahoo! Mail antispam - Bay area Hadoop user group
Yahoo! Mail antispam - Bay area Hadoop user group
Hadoop User Group
 
Building large-scale analytics platform with Storm, Kafka and Cassandra - NYC...
Building large-scale analytics platform with Storm, Kafka and Cassandra - NYC...Building large-scale analytics platform with Storm, Kafka and Cassandra - NYC...
Building large-scale analytics platform with Storm, Kafka and Cassandra - NYC...
Alexey Kharlamov
 

Tendances (20)

Getting to Know Airflow
Getting to Know AirflowGetting to Know Airflow
Getting to Know Airflow
 
Towards Benchmaking Modern Distruibuted Systems-(Grace Huang, Intel)
Towards Benchmaking Modern Distruibuted Systems-(Grace Huang, Intel)Towards Benchmaking Modern Distruibuted Systems-(Grace Huang, Intel)
Towards Benchmaking Modern Distruibuted Systems-(Grace Huang, Intel)
 
Real Time Data Streaming using Kafka & Storm
Real Time Data Streaming using Kafka & StormReal Time Data Streaming using Kafka & Storm
Real Time Data Streaming using Kafka & Storm
 
Data Pipelines & Integrating Real-time Web Services w/ Storm : Improving on t...
Data Pipelines & Integrating Real-time Web Services w/ Storm : Improving on t...Data Pipelines & Integrating Real-time Web Services w/ Storm : Improving on t...
Data Pipelines & Integrating Real-time Web Services w/ Storm : Improving on t...
 
An AI-Powered Chatbot to Simplify Apache Spark Performance Management
An AI-Powered Chatbot to Simplify Apache Spark Performance ManagementAn AI-Powered Chatbot to Simplify Apache Spark Performance Management
An AI-Powered Chatbot to Simplify Apache Spark Performance Management
 
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache Flink
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache FlinkGelly-Stream: Single-Pass Graph Streaming Analytics with Apache Flink
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache Flink
 
Flink Forward SF 2017: Chinmay Soman - Real Time Analytics in the real World ...
Flink Forward SF 2017: Chinmay Soman - Real Time Analytics in the real World ...Flink Forward SF 2017: Chinmay Soman - Real Time Analytics in the real World ...
Flink Forward SF 2017: Chinmay Soman - Real Time Analytics in the real World ...
 
Building Modern Data Pipelines for Time Series Data on GCP with InfluxData by...
Building Modern Data Pipelines for Time Series Data on GCP with InfluxData by...Building Modern Data Pipelines for Time Series Data on GCP with InfluxData by...
Building Modern Data Pipelines for Time Series Data on GCP with InfluxData by...
 
Spark for Recommender Systems
Spark for Recommender SystemsSpark for Recommender Systems
Spark for Recommender Systems
 
Real-Time Status Commands
Real-Time Status CommandsReal-Time Status Commands
Real-Time Status Commands
 
Functional Comparison and Performance Evaluation of Streaming Frameworks
Functional Comparison and Performance Evaluation of Streaming FrameworksFunctional Comparison and Performance Evaluation of Streaming Frameworks
Functional Comparison and Performance Evaluation of Streaming Frameworks
 
Putting Lipstick on Apache Pig at Netflix
Putting Lipstick on Apache Pig at NetflixPutting Lipstick on Apache Pig at Netflix
Putting Lipstick on Apache Pig at Netflix
 
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...
 
Eagle from eBay at China Hadoop Summit 2015
Eagle from eBay at China Hadoop Summit 2015Eagle from eBay at China Hadoop Summit 2015
Eagle from eBay at China Hadoop Summit 2015
 
HTML Flight Scraper
HTML Flight Scraper HTML Flight Scraper
HTML Flight Scraper
 
Building a Versatile Analytics Pipeline on Top of Apache Spark with Mikhail C...
Building a Versatile Analytics Pipeline on Top of Apache Spark with Mikhail C...Building a Versatile Analytics Pipeline on Top of Apache Spark with Mikhail C...
Building a Versatile Analytics Pipeline on Top of Apache Spark with Mikhail C...
 
Yahoo! Mail antispam - Bay area Hadoop user group
Yahoo! Mail antispam - Bay area Hadoop user groupYahoo! Mail antispam - Bay area Hadoop user group
Yahoo! Mail antispam - Bay area Hadoop user group
 
The Stream Processor as a Database Apache Flink
The Stream Processor as a Database Apache FlinkThe Stream Processor as a Database Apache Flink
The Stream Processor as a Database Apache Flink
 
Building large-scale analytics platform with Storm, Kafka and Cassandra - NYC...
Building large-scale analytics platform with Storm, Kafka and Cassandra - NYC...Building large-scale analytics platform with Storm, Kafka and Cassandra - NYC...
Building large-scale analytics platform with Storm, Kafka and Cassandra - NYC...
 
Building highly reliable data pipeline @datadog par Quentin François
Building highly reliable data pipeline @datadog par Quentin FrançoisBuilding highly reliable data pipeline @datadog par Quentin François
Building highly reliable data pipeline @datadog par Quentin François
 

En vedette

Mind Massage
Mind MassageMind Massage
Mind Massage
criscuoli
 
I Mobilewellness Prsa Final Master Presentation
I Mobilewellness Prsa Final Master PresentationI Mobilewellness Prsa Final Master Presentation
I Mobilewellness Prsa Final Master Presentation
patrikullmannck
 
Rackspace Cloud Monitoring - Strata NYC
Rackspace Cloud Monitoring - Strata NYCRackspace Cloud Monitoring - Strata NYC
Rackspace Cloud Monitoring - Strata NYC
gdusbabek
 
Apostila tratamento da dependência química
Apostila   tratamento da dependência químicaApostila   tratamento da dependência química
Apostila tratamento da dependência química
karol_ribeiro
 
Marcadores de páginas
Marcadores de páginasMarcadores de páginas
Marcadores de páginas
kekinhaborges
 
Prova enf90 assistente adm i - tec de enfermagem
Prova enf90   assistente adm i - tec de enfermagemProva enf90   assistente adm i - tec de enfermagem
Prova enf90 assistente adm i - tec de enfermagem
karol_ribeiro
 
Eu gosto de_ser_mulher
Eu gosto de_ser_mulherEu gosto de_ser_mulher
Eu gosto de_ser_mulher
karol_ribeiro
 

En vedette (20)

The Garage Sale Trail Social Media Case Study
The Garage Sale Trail Social Media Case StudyThe Garage Sale Trail Social Media Case Study
The Garage Sale Trail Social Media Case Study
 
Aula 4
Aula 4Aula 4
Aula 4
 
Wg Wf Ms Presentation Td
Wg Wf Ms Presentation TdWg Wf Ms Presentation Td
Wg Wf Ms Presentation Td
 
Animation Chess Game
Animation Chess GameAnimation Chess Game
Animation Chess Game
 
Mind Massage
Mind MassageMind Massage
Mind Massage
 
Post Mica Report Harillela Entreprise
Post Mica Report Harillela EntreprisePost Mica Report Harillela Entreprise
Post Mica Report Harillela Entreprise
 
Professional Advanced Communication
Professional Advanced CommunicationProfessional Advanced Communication
Professional Advanced Communication
 
I Mobilewellness Prsa Final Master Presentation
I Mobilewellness Prsa Final Master PresentationI Mobilewellness Prsa Final Master Presentation
I Mobilewellness Prsa Final Master Presentation
 
Animal Alphabet
Animal AlphabetAnimal Alphabet
Animal Alphabet
 
Rackspace Cloud Monitoring - Strata NYC
Rackspace Cloud Monitoring - Strata NYCRackspace Cloud Monitoring - Strata NYC
Rackspace Cloud Monitoring - Strata NYC
 
Introduction to Cassandra (June 2010)
Introduction to Cassandra (June 2010)Introduction to Cassandra (June 2010)
Introduction to Cassandra (June 2010)
 
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
 
Measure All the Things! - Austin Data Day 2014
Measure All the Things! - Austin Data Day 2014Measure All the Things! - Austin Data Day 2014
Measure All the Things! - Austin Data Day 2014
 
My Futuristic Vision of the Future of Cassandra's Future - NGCC 2015
My Futuristic Vision of the Future of Cassandra's Future - NGCC 2015My Futuristic Vision of the Future of Cassandra's Future - NGCC 2015
My Futuristic Vision of the Future of Cassandra's Future - NGCC 2015
 
Desert Palmes 09-10
Desert Palmes 09-10Desert Palmes 09-10
Desert Palmes 09-10
 
Apostila tratamento da dependência química
Apostila   tratamento da dependência químicaApostila   tratamento da dependência química
Apostila tratamento da dependência química
 
Marcadores de páginas
Marcadores de páginasMarcadores de páginas
Marcadores de páginas
 
Visita a roma
Visita a  romaVisita a  roma
Visita a roma
 
Prova enf90 assistente adm i - tec de enfermagem
Prova enf90   assistente adm i - tec de enfermagemProva enf90   assistente adm i - tec de enfermagem
Prova enf90 assistente adm i - tec de enfermagem
 
Eu gosto de_ser_mulher
Eu gosto de_ser_mulherEu gosto de_ser_mulher
Eu gosto de_ser_mulher
 

Similaire à How Rackspace Cloud Monitoring uses Cassandra

Virtual Science in the Cloud
Virtual Science in the CloudVirtual Science in the Cloud
Virtual Science in the Cloud
thetfoot
 

Similaire à How Rackspace Cloud Monitoring uses Cassandra (20)

Austin cassandra meetup
Austin cassandra meetupAustin cassandra meetup
Austin cassandra meetup
 
Building Rackspace Cloud Monitoring
Building Rackspace Cloud MonitoringBuilding Rackspace Cloud Monitoring
Building Rackspace Cloud Monitoring
 
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
 
"Einstürzenden Neudaten: Building an Analytics Engine from Scratch", Tobias J...
"Einstürzenden Neudaten: Building an Analytics Engine from Scratch", Tobias J..."Einstürzenden Neudaten: Building an Analytics Engine from Scratch", Tobias J...
"Einstürzenden Neudaten: Building an Analytics Engine from Scratch", Tobias J...
 
InfluxEnterprise Architecture Patterns by Tim Hall & Sam Dillard
InfluxEnterprise Architecture Patterns by Tim Hall & Sam DillardInfluxEnterprise Architecture Patterns by Tim Hall & Sam Dillard
InfluxEnterprise Architecture Patterns by Tim Hall & Sam Dillard
 
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & RestoreLadies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
 
Rails and alternative ORMs
Rails and alternative ORMsRails and alternative ORMs
Rails and alternative ORMs
 
Emerging technologies /frameworks in Big Data
Emerging technologies /frameworks in Big DataEmerging technologies /frameworks in Big Data
Emerging technologies /frameworks in Big Data
 
Enterprise guide to building a Data Mesh
Enterprise guide to building a Data MeshEnterprise guide to building a Data Mesh
Enterprise guide to building a Data Mesh
 
Cassandra's Sweet Spot - an introduction to Apache Cassandra
Cassandra's Sweet Spot - an introduction to Apache CassandraCassandra's Sweet Spot - an introduction to Apache Cassandra
Cassandra's Sweet Spot - an introduction to Apache Cassandra
 
Apache Eagle: Secure Hadoop in Real Time
Apache Eagle: Secure Hadoop in Real TimeApache Eagle: Secure Hadoop in Real Time
Apache Eagle: Secure Hadoop in Real Time
 
Apache Eagle at Hadoop Summit 2016 San Jose
Apache Eagle at Hadoop Summit 2016 San JoseApache Eagle at Hadoop Summit 2016 San Jose
Apache Eagle at Hadoop Summit 2016 San Jose
 
Avoiding big data antipatterns
Avoiding big data antipatternsAvoiding big data antipatterns
Avoiding big data antipatterns
 
InfluxEnterprise Architectural Patterns by Dean Sheehan, Senior Director, Pre...
InfluxEnterprise Architectural Patterns by Dean Sheehan, Senior Director, Pre...InfluxEnterprise Architectural Patterns by Dean Sheehan, Senior Director, Pre...
InfluxEnterprise Architectural Patterns by Dean Sheehan, Senior Director, Pre...
 
Virtual Science in the Cloud
Virtual Science in the CloudVirtual Science in the Cloud
Virtual Science in the Cloud
 
Creating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleCreating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at Scale
 
Woa. Reloaded
Woa. ReloadedWoa. Reloaded
Woa. Reloaded
 
Side by Side with Elasticsearch & Solr, Part 2
Side by Side with Elasticsearch & Solr, Part 2Side by Side with Elasticsearch & Solr, Part 2
Side by Side with Elasticsearch & Solr, Part 2
 
GraphConnect 2014 SF: From Zero to Graph in 120: Scale
GraphConnect 2014 SF: From Zero to Graph in 120: ScaleGraphConnect 2014 SF: From Zero to Graph in 120: Scale
GraphConnect 2014 SF: From Zero to Graph in 120: Scale
 
Data science at the command line
Data science at the command lineData science at the command line
Data science at the command line
 

Plus de gdusbabek

Cassandra Codebase 2011
Cassandra Codebase 2011Cassandra Codebase 2011
Cassandra Codebase 2011
gdusbabek
 

Plus de gdusbabek (8)

How To (Not) Open Source - Javazone, Oslo 2014
How To (Not) Open Source - Javazone, Oslo 2014How To (Not) Open Source - Javazone, Oslo 2014
How To (Not) Open Source - Javazone, Oslo 2014
 
Blueflood and Beyond: The Future of Metrics - Berlin Buzzwords 2014
Blueflood and Beyond: The Future of Metrics - Berlin Buzzwords 2014Blueflood and Beyond: The Future of Metrics - Berlin Buzzwords 2014
Blueflood and Beyond: The Future of Metrics - Berlin Buzzwords 2014
 
Introduction to Blueflood at Berlin Buzzwords 2013
Introduction to Blueflood at Berlin Buzzwords 2013Introduction to Blueflood at Berlin Buzzwords 2013
Introduction to Blueflood at Berlin Buzzwords 2013
 
Breaking the Relational Headlock: A Survey of NoSQL Datastores
Breaking the Relational Headlock: A Survey of NoSQL DatastoresBreaking the Relational Headlock: A Survey of NoSQL Datastores
Breaking the Relational Headlock: A Survey of NoSQL Datastores
 
Cassandra Codebase 2011
Cassandra Codebase 2011Cassandra Codebase 2011
Cassandra Codebase 2011
 
Data Modeling with Cassandra Column Families
Data Modeling with Cassandra Column FamiliesData Modeling with Cassandra Column Families
Data Modeling with Cassandra Column Families
 
Getting to Know the Cassandra Codebase
Getting to Know the Cassandra CodebaseGetting to Know the Cassandra Codebase
Getting to Know the Cassandra Codebase
 
Cassandra Presentation for San Antonio JUG
Cassandra Presentation for San Antonio JUGCassandra Presentation for San Antonio JUG
Cassandra Presentation for San Antonio JUG
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Dernier (20)

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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
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)
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

How Rackspace Cloud Monitoring uses Cassandra

  • 1. A Cassandra Usage Example Gary Dusbabek @gdusbabek
  • 2. Goals CM Overview Control Cluster Data Cluster
  • 3. CM Overview Thousands of servers Pre-existing solutions Lessons learned from Cloudkick Internal versus external Millions of checks
  • 4. Terminology Entity Something with an IP address or host name
  • 5. Terminology Check Tied to a entity Is an action Produces metrics
  • 6. Terminology Alarm Tied to an entity Evaluates check output Specified by DSL
  • 7. Terminology Notification Plan Determines what to do for various alarm states
  • 8. Features Remote checks Five datacenters collectors in five processing in three Alerting
  • 10. All REST all the time More Ops friendly Features Agent Metrics https://github.com/racker/virgo
  • 11. Future Automation Prediction Support hooks Agent expansion Correlation Aggregation Entity Spanning
  • 12. Two Clusters Data Control
  • 13. Control Cluster Metadata State Three datacenters High RF Wide rows Easy dump & load https://github.com/racker/cassandra-syncer
  • 14. Data Model Rich but simple Objects used together stored together Simple parent-child relations One row per customer (tenant) Composite column names
  • 15. Data Model Good: Bad: Single Parent/Child Complex Acyclic Multiple Parent/Child
  • 16. Data Model Object types: Foo, Bar, Baz Relationship: 1:*
  • 17. Data Model New Foo: 123 Row Column Value Key Column Name
  • 19. Data Model New Bar attached to fo123. ID is “fo123” ID is “fo123:ba001”
  • 20. Data Model New Bar attached to fo123.
  • 21. Data Model New Bar attached to fo124.
  • 22. Data Model New Bar attached to fo123. ID is “fo123:ba003”
  • 23. Data Model Baz attached to ba003 ID is “fo123:ba001:bz001”
  • 24. Data Model Select Foo children for 123: select „fo123‟..‟fo123:x7f‟; Select single Bar object attached to fo123: select „fo123:ba001‟..‟fo123:ba001:x7f‟; Object hierarchy reduced to a single slice. Parent keys available from context (no extra reads or indexes)
  • 25. Control Cluster API server is Node.js Javascript ORM library • Define object model in JS • Read/write entire objects • Never think about CQL node-cassandra-client https://github.com/racker/node-cassandra-client
  • 27. Data Cluster The fun starts here
  • 28. Data Cluster Goal: Fast graphs Time series data Fewer data points OK to shave resolution Recent data is most important
  • 29.
  • 30. Granularity Full, 5m, 20m, 80m, 320m, 1280m time-to-live (TTL)
  • 31. Rollup Concepts Slot Pegged at 4096 slots Circular buffer of metrics names that have come into the system Key is granularity + slot Columns index keys in rollup table
  • 32. Keyed by ascii Bigint column names Blob column values JDBC Rollups
  • 33. Arrival Full Resolution! time, name, several metrics metric = name, type, value Create a locator assigned to slot Insert metrics Single Cassandra APPLY BATCH;
  • 34. Process: Rolling up • rollup(src_gran, from, to); • from, to determine slots • For each slot, get locator row slice – Cols tell us which metrics are active (need roll up) – For each column in locator row slice, slice in data row to get metrics • For each column (metric) in slice, add to calculations • Store rolled up calculation in dst_gran CF • Store locator column for slot, dst_gran • Also rollup(metric, src_gran, from, to);
  • 35. Rollup operations are idempotent* Simplifies availability Rollups are easily parallelized Partition the locator space
  • 36. But… What if data arrives after rollup is performed? More than 24hrs late: don‟t care, forget it Figure out which slot the data belongs it, flag for each granularity in a meta row Recalculate rollups
  • 38. Image Credits soccer http://www.flickr.com/photos/ollesvensson/4252196844/ apples http://www.flickr.com/photos/jean_koulev/2697677595/ clock http://www.flickr.com/photos/ollesvensson/4252196844/ corridor http://www.flickr.com/photos/orinrobertjohn/4354716077/ car http://www.flickr.com/photos/ellenm1/3541270451 controller http://www.flickr.com/photos/germanium/117612088/ model http://www.flickr.com/photos/mikeschinkel/2703438152/ objects 1 http://www.flickr.com/photos/radder86/389283265/ objects 2 http://www.flickr.com/photos/radder86/389283262 robot http://www.flickr.com/photos/kb35/430976324/ fun http://www.flickr.com/photos/pierrebedat/1095337445/ blobs http://www.flickr.com/photos/inl/5097547405/ dish http://www.flickr.com/photos/mrpbps/2862208028/ sand http://www.flickr.com/photos/backkratze/3480338854/ slot http://www.flickr.com/photos/andresrueda/2925383781 sushi http://www.flickr.com/photos/basykes/4348613931/ airplane http://www.flickr.com/photos/fhashemi/72489620/ scale http://www.flickr.com/photos/puuikibeach/4765115333 hourglass http://www.flickr.com/photos/aidanmorgan/2331754875/ street http://www.flickr.com/photos/nateone/3768979925/

Notes de l'éditeur

  1. Would not scale to all.
  2. Self serviceExtensive dashboard12 platformsDeep analysis
  3. Secondary, nice to have, but not critical to monitoring.