SlideShare ist ein Scribd-Unternehmen logo
1 von 73
Hecuba2
Cassandra Operations Made Easy
Radovan Zvoncek
zvo@spotify.com
Agenda
1 Two peace stories
2 Cassandra infrastructure at Spotify
3 What exactly is Hecuba2?
4 Wrap up
2© DataStax, All Rights Reserved.
About Radovan
Likes pancakes
© DataStax, All Rights Reserved. 3
About Radovan
Likes pancakes
Now knows where to get them
© DataStax, All Rights Reserved. 4
About Radovan
Likes pancakes
Now knows where to get them
Works at Spotify
© DataStax, All Rights Reserved. 5
Spotify
Music streaming service
● ~ 100 million active users
● ~ 2 billion playlists
© DataStax, All Rights Reserved. 6
Spotify
Music streaming service
● ~ 100 million active users
● ~ 2 billion playlists
Happy Apache Cassandra user
● ~ 100 Cassandra clusters
● ~ 1000 nodes altogether
© DataStax, All Rights Reserved. 7
The Playlist Cluster
The largest cluster we have
● 2 x 45 nodes
● ~ 1TB of data on each node
© DataStax, All Rights Reserved. 8
The Playlist Cluster
The largest cluster we have
● 2 x 45 nodes
● ~ 1TB of data on each node
© DataStax, All Rights Reserved. 9
The Playlist Cluster
The largest cluster we have
● 2 x 45 nodes
● ~ 1TB of data on each node
Had to expand by 50%
© DataStax, All Rights Reserved. 10
The previous large cluster expansion went so wrong…
Peace Story #1: The Playlist Expansion
© DataStax, All Rights Reserved. 11
The previous large cluster expansion went so wrong…
How exactly to do the expansion now?
Peace Story #1: The Playlist Expansion
© DataStax, All Rights Reserved. 12
The previous large cluster expansion went so wrong…
How exactly to do the expansion now?
What tokens should the new nodes have?
Peace Story #1: The Playlist Expansion
© DataStax, All Rights Reserved. 13
Peace Story #1: The Playlist Expansion
The previous large cluster expansion went so wrong…
How exactly to do the expansion now?
What tokens should the new nodes have?
How to bootstrap the nodes?
© DataStax, All Rights Reserved. 14
Peace Story #1: The Playlist Expansion
Turns out, we needed just one command:
© DataStax, All Rights Reserved. 15
hecuba2-cli expand-cluster
dc1-playlistcassandra-a{31..45}.foo.net
Peace Story #1: The Playlist Expansion
Turns out, we needed just one command:
And one peer review
© DataStax, All Rights Reserved. 16
hecuba2-cli expand-cluster
dc1-playlistcassandra-a{31..45}.foo.net
Peace Story #1: The Playlist Expansion
Turns out, we needed just one command:
And one peer review
And then a week of waiting
© DataStax, All Rights Reserved. 17
hecuba2-cli expand-cluster
dc1-playlistcassandra-a{31..45}.foo.net
Peace Story #1: The Playlist Expansion
18
Peace Story #2: The Slush Incident
© DataStax, All Rights Reserved. 19
Peace Story #2: The Slush Incident
© DataStax, All Rights Reserved. 20
Peace Story #2: The Slush Incident
Got paged with 2 out of 3 nodes being down
© DataStax, All Rights Reserved. 21
Datacenter: dc1
==========
Address Rack Status Load Owns Token
dc1-slush-1.foo.net rac1 Up Normal 797.27 GB 33.33% 0
dc1-slush-2.foo.net rac1 Down Normal 798.58 GB 33.33% 56...
dc1-slush-3.foo.net rac1 Down Normal 797.58 GB 33.33% 11...
Peace Story #2: The Slush Incident
Turns out, we needed just two commands
© DataStax, All Rights Reserved. 22
hecuba2-cli replace-nodes
--old-host dc1-slush-2.foo.net
--new-host dc1-slush-4.foo.net
hecuba2-cli replace-nodes
--old-host dc1-slush-3.foo.net
--new-host dc1-slush-5.foo.net
Peace Story #2: The Slush Incident
What gave us two peer reviews, such as:
© DataStax, All Rights Reserved. 23
Peace Story #2: The Slush Incident
After a while, we ended up with
© DataStax, All Rights Reserved. 24
Datacenter: dc1
==========
Address Rack Status Load Owns Token
dc1-slush-1.foo.net rac1 Up Normal 797.27 GB 33.33% 0
dc1-slush-4.foo.net rac1 Up Normal 798.58 GB 33.33% 56...
dc1-slush-5.foo.net rac1 Up Normal 797.58 GB 33.33% 11...
The Peace Stories
Very pleasant experience operating Cassandra @ Spotify
All because our infrastructure
© DataStax, All Rights Reserved. 25
Agenda
1 Two peace stories
2 Cassandra infrastructure at Spotify
3 What exactly is Hecuba2?
4 Wrap up
26© DataStax, All Rights Reserved.
Cassandra Infrastructure @ Spotify
Let’s just create a Cassandra cluster like a Spotifier
© DataStax, All Rights Reserved. 27
Creating C* Cluster Like A Spotifier
Step 1: Get some machines
© DataStax, All Rights Reserved. 28
Creating C* Cluster Like A Spotifier
Step 1: Get some machines
© DataStax, All Rights Reserved. 29
Creating C* Cluster Like A Spotifier
Step 1: Get some machines
More info about System-Z
Modelling Microservices at Spotify
by Petter Måhlén
https://youtu.be/7XDA044tl8k
© DataStax, All Rights Reserved. 30
Creating C* Cluster Like A Spotifier
Step 1: Get some machines
Step 2: Install the operating system
© DataStax, All Rights Reserved. 31
Creating C* Cluster Like A Spotifier
Step 1: Get some machines
Step 2: Install the operating system
© DataStax, All Rights Reserved. 32
Creating C* Cluster Like A Spotifier
Step 1: Get some machines
Step 2: Setup the cluster
© DataStax, All Rights Reserved. 33
Creating C* Cluster Like A Spotifier
Step 1: Get some machines
Step 2: Setup the cluster
© DataStax, All Rights Reserved. 34
hecuba2-cli create-cluster
--cluster-name "My new cluster"
--owner mySquad dc1-userdatacass-
{1..3}.foo.net
Creating C* Cluster Like A Spotifier
© DataStax, All Rights Reserved.
Step 1: Get some machines
Step 2: Setup the cluster
Step 3: Check PR
35
Creating C* Cluster Like A Spotifier
© DataStax, All Rights Reserved.
Step 1: Get some machines
Step 2: Setup the cluster
Step 3: Check PR
Step 4: Wait
36
Creating C* Cluster Like A Spotifier
© DataStax, All Rights Reserved.
Step 1: Get some machines
Step 2: Setup the cluster
Step 3: Check PR
Step 4: Wait
This will get picked up by our conf. management system and
● Install software
● Configure Cassandra
37
Configuring Cassandra
© DataStax, All Rights Reserved. 38
Configuring Cassandra
Is (almost) all about putting things into config files
© DataStax, All Rights Reserved. 39
Configuring Cassandra
Is (almost) all about putting things into config files
Mostly tokens and seeds
● Tokens are clunky large strings
● V-nodes would help, but...
© DataStax, All Rights Reserved. 40
Configuring Cassandra
Is (almost) all about putting things into config files
Mostly tokens and seeds
● Tokens are clunky large strings
● V-nodes would help, but...
Also node bootstrap
● All nodes joining at once is not desired
© DataStax, All Rights Reserved. 41
Configuring Cassandra
Is (almost) all about putting things into config files
Mostly tokens and seeds
● Tokens are clunky large strings
● V-nodes would help, but...
Also node bootstrap
● All nodes joining at once is not desired
Both are handled by Hecuba2
© DataStax, All Rights Reserved. 42
Agenda
1 Two peace stories
2 Cassandra infrastructure at Spotify
3 What exactly is Hecuba2?
4 Wrap up
43© DataStax, All Rights Reserved.
What Exactly is Hecuba2
© DataStax, All Rights Reserved. 44
Hecuba
YAML
File
Hecuba2
Agent
Hecuba2
jmx-
proxy
Hecuba2
SeedPro
vider
Hecuba2
Agent
Hecuba2
jmx-
proxy
Hecuba2
Seed
Provider
Cassandra NodeHecuba2
Client
Library
C*
Process
Hecuba YAML File
Represents the truth about the cluster
© DataStax, All Rights Reserved. 45
Hecuba YAML File
dc1-mytestcass-1.foo.net:
cluster_name: mytestcass
dc: dc1
seed: true
token: 0
dc1-mytestcass-2.foo.net:
cluster_name: mytestcass
dc: dc1
seed: false
token: 56713727820156410577229101238628035242
© DataStax, All Rights Reserved. 46
Hecuba2 Client Library
Manipulates the Hecuba YAML file
© DataStax, All Rights Reserved. 47
Hecuba2 Client Library
Manipulates the Hecuba YAML file
Does this in a smart way
© DataStax, All Rights Reserved. 48
Hecuba2 Client Library
Manipulates the Hecuba YAML file
Does this in a smart way
Doubling the cluster
© DataStax, All Rights Reserved. 49
Double the size
New node
Existing node stayed in place
Manipulates the Hecuba YAML file
Does this in a smart way
Doubling the cluster
Expand by 50%
Hecuba2 Client Library
© DataStax, All Rights Reserved. 50
Add 2 nodes
New node
Existing node stayed in place
Existing node moved
Hecuba2 Server-Side Components
© DataStax, All Rights Reserved. 51
Hecuba2
Agent
Hecuba2
jmx-
proxy
Hecuba2
Seed
Provider
Cassandra Node
C*
Process
Hecuba2 Server-Side Components
Again, three things:
● hecuba2-agent
○ State machine managing the C* process
© DataStax, All Rights Reserved. 52
hecuba2-agent
© DataStax, All Rights Reserved. 53
hecuba2-agent
© DataStax, All Rights Reserved. 54
Hecuba2 Server-Side Components
Again, three things:
● hecuba2-agent
○ State machine managing the C* process
● hecuba2-jmxproxy
○ nodetool with JSON output
© DataStax, All Rights Reserved. 55
Hecuba2 Server-Side Components
Again, three things:
● hecuba2-agent
○ State machine managing the C* process
● hecuba2-jmxproxy
○ nodetool with JSON output
● hecuba2-seedprovider
○ Picks seeds from Hecuba YAML
© DataStax, All Rights Reserved. 56
How Does It All Work Together
© DataStax, All Rights Reserved. 57
How Does It All Work Together
© DataStax, All Rights Reserved. 58
Hecuba2
Client
Library
How Does It All Work Together
© DataStax, All Rights Reserved. 59
Hecuba
YAML
File
Hecuba2
Client
Library
Creates
Hecuba2
Not in scope
How Does It All Work Together
© DataStax, All Rights Reserved. 60
Hecuba
YAML
File
Hecuba2
Client
Library
Text
Editor
Hecuba2
Not in scope
Alternative
Creates
How Does It All Work Together
© DataStax, All Rights Reserved. 61
Hecuba
YAML
File
Hecuba
YAML
File
Cassandra NodeHecuba2
Client
Library
Text
Editor
Hecuba2
Not in scope
Alternative
Creates
Distribution
C*
Process
Hecuba2
Agent
Hecuba2
jmx-
proxy
Hecuba2
Seed
Provider
How Does It All Work Together
© DataStax, All Rights Reserved. 62
Hecuba
YAML
File
Hecuba
YAML
File
Cassandra NodeHecuba2
Client
Library
Text
Editor
Hecuba2
Not in scope
Alternative
Creates
Distribution
Manual
Puppet
C*
Process
Hecuba2
Agent
Hecuba2
jmx-
proxy
Hecuba2
Seed
Provider
How Does It All Work Together
© DataStax, All Rights Reserved. 63
Hecuba
YAML
File
Hecuba
YAML
File
Cassandra NodeHecuba2
Client
Library
Text
Editor
Hecuba2
Not in scope
Alternative
Creates
Distribution
Manual
Puppet
Hecuba2
Agent
Hecuba2
jmx-
proxy
Hecuba2
Seed
Provider
Cron
executes
C*
Process
How Does It All Work Together
© DataStax, All Rights Reserved. 64
Hecuba
YAML
File
Hecuba
YAML
File
Cassandra NodeHecuba2
Client
Library
Text
Editor
Hecuba2
Not in scope
Alternative
Creates
Distribution
Manual
Puppet
Hecuba2
Agent
Hecuba2
jmx-
proxy
Hecuba2
Seed
Provider
Cron
executes
calls
C*
Process
How Does It All Work Together
© DataStax, All Rights Reserved. 65
Hecuba
YAML
File
Hecuba
YAML
File
Cassandra NodeHecuba2
Client
Library
Text
Editor
Hecuba2
Not in scope
Alternative
Creates
Distribution
Manual
Puppet
Hecuba2
Agent
Hecuba2
jmx-
proxy
Hecuba2
Seed
Provider
Cron
executes
calls
manages
C*
Process
How Does It All Work Together
© DataStax, All Rights Reserved. 66
Hecuba
YAML
File
Hecuba2
Agent
manages
Cron
executes
Hecuba2
jmx-
proxy
Hecuba2
SeedPro
vider
Hecuba
YAML
File
calls
calls Hecuba2
Agent
Hecuba2
jmx-
proxy
Hecuba2
Seed
Provider
Cassandra NodeHecuba2
Client
Library
Text
Editor
Hecuba2
Not in scope
Alternative
Creates
Distribution
Manual
Puppet
C*
Process
How Does It All Work Together
© DataStax, All Rights Reserved. 67
Hecuba
YAML
File
Hecuba2
Agent
manages
Cron
executes
Hecuba2
jmx-
proxy
Hecuba2
SeedPro
vider
Hecuba
YAML
File
calls
calls Hecuba2
Agent
Hecuba2
jmx-
proxy
Hecuba2
Seed
Provider
Cassandra NodeHecuba2
Client
Library
Text
Editor
Hecuba2
Not in scope
Alternative
Creates
Distribution
Manual
Puppet
C*
Process
To Recap
Hecuba2 manages cluster topologies
● create-cluster
● expand-cluster
● replace-node
Many things are out of scope
Missing features:
● parallelism @ hecuba2-agent
● cluster shrinking
© DataStax, All Rights Reserved. 68
Agenda
1 Two peace stories
2 Cassandra infrastructure at Spotify
3 What exactly is Hecuba2?
4 Wrap up
69© DataStax, All Rights Reserved.
Our Experience So Far
It’s been in use for a year
It hasn’t let us down yet
But it has surprised us by being more robust than we thought
State machine testable, visualisable, and easily extensible
Peer review for changes
© DataStax, All Rights Reserved. 70
FAQ
Why is it called Hecuba2?
Does it support v-nodes?
Does it support Cassandra version X?
Can I use it on Y?
Is it FOSS?
© DataStax, All Rights Reserved. 71
Actual Q
© DataStax, All Rights Reserved. 72
Thank You!
bases-ext@spotify.com
zvo@spotify.com
Eventually https://github.com/spotify/hecuba2
© DataStax, All Rights Reserved. 73

Weitere ähnliche Inhalte

Was ist angesagt?

Terror & Hysteria: Cost Effective Scaling of Time Series Data with Cassandra ...
Terror & Hysteria: Cost Effective Scaling of Time Series Data with Cassandra ...Terror & Hysteria: Cost Effective Scaling of Time Series Data with Cassandra ...
Terror & Hysteria: Cost Effective Scaling of Time Series Data with Cassandra ...
DataStax
 
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflowsBeyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
DataWorks Summit
 
Tuning Speculative Retries to Fight Latency (Michael Figuiere, Minh Do, Netfl...
Tuning Speculative Retries to Fight Latency (Michael Figuiere, Minh Do, Netfl...Tuning Speculative Retries to Fight Latency (Michael Figuiere, Minh Do, Netfl...
Tuning Speculative Retries to Fight Latency (Michael Figuiere, Minh Do, Netfl...
DataStax
 
Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...
Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...
Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...
DataStax
 

Was ist angesagt? (20)

Advanced Apache Cassandra Operations with JMX
Advanced Apache Cassandra Operations with JMXAdvanced Apache Cassandra Operations with JMX
Advanced Apache Cassandra Operations with JMX
 
Cassandra Troubleshooting 3.0
Cassandra Troubleshooting 3.0Cassandra Troubleshooting 3.0
Cassandra Troubleshooting 3.0
 
Monitoring Cassandra at Scale (Jason Cacciatore, Netflix) | C* Summit 2016
Monitoring Cassandra at Scale (Jason Cacciatore, Netflix) | C* Summit 2016Monitoring Cassandra at Scale (Jason Cacciatore, Netflix) | C* Summit 2016
Monitoring Cassandra at Scale (Jason Cacciatore, Netflix) | C* Summit 2016
 
Terror & Hysteria: Cost Effective Scaling of Time Series Data with Cassandra ...
Terror & Hysteria: Cost Effective Scaling of Time Series Data with Cassandra ...Terror & Hysteria: Cost Effective Scaling of Time Series Data with Cassandra ...
Terror & Hysteria: Cost Effective Scaling of Time Series Data with Cassandra ...
 
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflowsBeyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
 
How Prometheus Store the Data
How Prometheus Store the DataHow Prometheus Store the Data
How Prometheus Store the Data
 
Cassandra Community Webinar | Practice Makes Perfect: Extreme Cassandra Optim...
Cassandra Community Webinar | Practice Makes Perfect: Extreme Cassandra Optim...Cassandra Community Webinar | Practice Makes Perfect: Extreme Cassandra Optim...
Cassandra Community Webinar | Practice Makes Perfect: Extreme Cassandra Optim...
 
Real time data pipeline with spark streaming and cassandra with mesos
Real time data pipeline with spark streaming and cassandra with mesosReal time data pipeline with spark streaming and cassandra with mesos
Real time data pipeline with spark streaming and cassandra with mesos
 
Top 5 mistakes when writing Spark applications
Top 5 mistakes when writing Spark applicationsTop 5 mistakes when writing Spark applications
Top 5 mistakes when writing Spark applications
 
DataEngConf SF16 - Collecting and Moving Data at Scale
DataEngConf SF16 - Collecting and Moving Data at Scale DataEngConf SF16 - Collecting and Moving Data at Scale
DataEngConf SF16 - Collecting and Moving Data at Scale
 
Tuning Speculative Retries to Fight Latency (Michael Figuiere, Minh Do, Netfl...
Tuning Speculative Retries to Fight Latency (Michael Figuiere, Minh Do, Netfl...Tuning Speculative Retries to Fight Latency (Michael Figuiere, Minh Do, Netfl...
Tuning Speculative Retries to Fight Latency (Michael Figuiere, Minh Do, Netfl...
 
Live traffic capture and replay in cassandra 4.0
Live traffic capture and replay in cassandra 4.0Live traffic capture and replay in cassandra 4.0
Live traffic capture and replay in cassandra 4.0
 
More Algorithms and Tools for Genomic Analysis on Apache Spark with Ryan Will...
More Algorithms and Tools for Genomic Analysis on Apache Spark with Ryan Will...More Algorithms and Tools for Genomic Analysis on Apache Spark with Ryan Will...
More Algorithms and Tools for Genomic Analysis on Apache Spark with Ryan Will...
 
Why your Spark Job is Failing
Why your Spark Job is FailingWhy your Spark Job is Failing
Why your Spark Job is Failing
 
A glimpse of cassandra 4.0 features netflix
A glimpse of cassandra 4.0 features   netflixA glimpse of cassandra 4.0 features   netflix
A glimpse of cassandra 4.0 features netflix
 
HBaseCon 2013: Scalable Network Designs for Apache HBase
HBaseCon 2013: Scalable Network Designs for Apache HBaseHBaseCon 2013: Scalable Network Designs for Apache HBase
HBaseCon 2013: Scalable Network Designs for Apache HBase
 
Bucket Your Partitions Wisely (Markus Höfer, codecentric AG) | Cassandra Summ...
Bucket Your Partitions Wisely (Markus Höfer, codecentric AG) | Cassandra Summ...Bucket Your Partitions Wisely (Markus Höfer, codecentric AG) | Cassandra Summ...
Bucket Your Partitions Wisely (Markus Höfer, codecentric AG) | Cassandra Summ...
 
AddThis: Scaling Cassandra up and down into containers with ZFS
AddThis: Scaling Cassandra up and down into containers with ZFSAddThis: Scaling Cassandra up and down into containers with ZFS
AddThis: Scaling Cassandra up and down into containers with ZFS
 
Real-Time Streaming with Apache Spark Streaming and Apache Storm
Real-Time Streaming with Apache Spark Streaming and Apache StormReal-Time Streaming with Apache Spark Streaming and Apache Storm
Real-Time Streaming with Apache Spark Streaming and Apache Storm
 
Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...
Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...
Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...
 

Ähnlich wie Hecuba2: Cassandra Operations Made Easy (Radovan Zvoncek, Spotify) | C* Summit 2016

Full Stack Monitoring with Prometheus and Grafana
Full Stack Monitoring with Prometheus and GrafanaFull Stack Monitoring with Prometheus and Grafana
Full Stack Monitoring with Prometheus and Grafana
Jazz Yao-Tsung Wang
 

Ähnlich wie Hecuba2: Cassandra Operations Made Easy (Radovan Zvoncek, Spotify) | C* Summit 2016 (20)

Critical Attributes for a High-Performance, Low-Latency Database
Critical Attributes for a High-Performance, Low-Latency DatabaseCritical Attributes for a High-Performance, Low-Latency Database
Critical Attributes for a High-Performance, Low-Latency Database
 
Episode 3: Kubernetes and Big Data Services
Episode 3: Kubernetes and Big Data ServicesEpisode 3: Kubernetes and Big Data Services
Episode 3: Kubernetes and Big Data Services
 
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast DataDatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
 
Puppet at Spotify
Puppet at SpotifyPuppet at Spotify
Puppet at Spotify
 
Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive

Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive


 
G1 collector and tuning and Cassandra
G1 collector and tuning and CassandraG1 collector and tuning and Cassandra
G1 collector and tuning and Cassandra
 
Practical virtual network functions with Snabb (SDN Barcelona VI)
Practical virtual network functions with Snabb (SDN Barcelona VI)Practical virtual network functions with Snabb (SDN Barcelona VI)
Practical virtual network functions with Snabb (SDN Barcelona VI)
 
Basic Linux kernel
Basic Linux kernelBasic Linux kernel
Basic Linux kernel
 
OVHcloud Tech Talks S01E09 - OVHcloud Data Processing : Le nouveau service po...
OVHcloud Tech Talks S01E09 - OVHcloud Data Processing : Le nouveau service po...OVHcloud Tech Talks S01E09 - OVHcloud Data Processing : Le nouveau service po...
OVHcloud Tech Talks S01E09 - OVHcloud Data Processing : Le nouveau service po...
 
Cassandra Tuning - above and beyond
Cassandra Tuning - above and beyondCassandra Tuning - above and beyond
Cassandra Tuning - above and beyond
 
Cassandra Tuning - Above and Beyond (Matija Gobec, SmartCat) | Cassandra Summ...
Cassandra Tuning - Above and Beyond (Matija Gobec, SmartCat) | Cassandra Summ...Cassandra Tuning - Above and Beyond (Matija Gobec, SmartCat) | Cassandra Summ...
Cassandra Tuning - Above and Beyond (Matija Gobec, SmartCat) | Cassandra Summ...
 
Data Streaming Ecosystem Management at Booking.com
Data Streaming Ecosystem Management at Booking.com Data Streaming Ecosystem Management at Booking.com
Data Streaming Ecosystem Management at Booking.com
 
Provisioning Servers Made Easy
Provisioning Servers Made EasyProvisioning Servers Made Easy
Provisioning Servers Made Easy
 
Full Stack Monitoring with Prometheus and Grafana
Full Stack Monitoring with Prometheus and GrafanaFull Stack Monitoring with Prometheus and Grafana
Full Stack Monitoring with Prometheus and Grafana
 
Everyday I'm Scaling... Cassandra (Ben Bromhead, Instaclustr) | C* Summit 2016
Everyday I'm Scaling... Cassandra (Ben Bromhead, Instaclustr) | C* Summit 2016Everyday I'm Scaling... Cassandra (Ben Bromhead, Instaclustr) | C* Summit 2016
Everyday I'm Scaling... Cassandra (Ben Bromhead, Instaclustr) | C* Summit 2016
 
Everyday I’m scaling... Cassandra
Everyday I’m scaling... CassandraEveryday I’m scaling... Cassandra
Everyday I’m scaling... Cassandra
 
Secure lustre on openstack
Secure lustre on openstackSecure lustre on openstack
Secure lustre on openstack
 
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
 
Safer restarts, faster streaming, and better repair, just a glimpse of cassan...
Safer restarts, faster streaming, and better repair, just a glimpse of cassan...Safer restarts, faster streaming, and better repair, just a glimpse of cassan...
Safer restarts, faster streaming, and better repair, just a glimpse of cassan...
 
Streaming architecture patterns
Streaming architecture patternsStreaming architecture patterns
Streaming architecture patterns
 

Mehr von DataStax

Mehr von DataStax (20)

Is Your Enterprise Ready to Shine This Holiday Season?
Is Your Enterprise Ready to Shine This Holiday Season?Is Your Enterprise Ready to Shine This Holiday Season?
Is Your Enterprise Ready to Shine This Holiday Season?
 
Designing Fault-Tolerant Applications with DataStax Enterprise and Apache Cas...
Designing Fault-Tolerant Applications with DataStax Enterprise and Apache Cas...Designing Fault-Tolerant Applications with DataStax Enterprise and Apache Cas...
Designing Fault-Tolerant Applications with DataStax Enterprise and Apache Cas...
 
Running DataStax Enterprise in VMware Cloud and Hybrid Environments
Running DataStax Enterprise in VMware Cloud and Hybrid EnvironmentsRunning DataStax Enterprise in VMware Cloud and Hybrid Environments
Running DataStax Enterprise in VMware Cloud and Hybrid Environments
 
Best Practices for Getting to Production with DataStax Enterprise Graph
Best Practices for Getting to Production with DataStax Enterprise GraphBest Practices for Getting to Production with DataStax Enterprise Graph
Best Practices for Getting to Production with DataStax Enterprise Graph
 
Webinar | Data Management for Hybrid and Multi-Cloud: A Four-Step Journey
Webinar | Data Management for Hybrid and Multi-Cloud: A Four-Step JourneyWebinar | Data Management for Hybrid and Multi-Cloud: A Four-Step Journey
Webinar | Data Management for Hybrid and Multi-Cloud: A Four-Step Journey
 
Webinar | How to Understand Apache Cassandra™ Performance Through Read/Writ...
Webinar  |  How to Understand Apache Cassandra™ Performance Through Read/Writ...Webinar  |  How to Understand Apache Cassandra™ Performance Through Read/Writ...
Webinar | How to Understand Apache Cassandra™ Performance Through Read/Writ...
 
Webinar | Better Together: Apache Cassandra and Apache Kafka
Webinar  |  Better Together: Apache Cassandra and Apache KafkaWebinar  |  Better Together: Apache Cassandra and Apache Kafka
Webinar | Better Together: Apache Cassandra and Apache Kafka
 
Top 10 Best Practices for Apache Cassandra and DataStax Enterprise
Top 10 Best Practices for Apache Cassandra and DataStax EnterpriseTop 10 Best Practices for Apache Cassandra and DataStax Enterprise
Top 10 Best Practices for Apache Cassandra and DataStax Enterprise
 
Introduction to Apache Cassandra™ + What’s New in 4.0
Introduction to Apache Cassandra™ + What’s New in 4.0Introduction to Apache Cassandra™ + What’s New in 4.0
Introduction to Apache Cassandra™ + What’s New in 4.0
 
Webinar: How Active Everywhere Database Architecture Accelerates Hybrid Cloud...
Webinar: How Active Everywhere Database Architecture Accelerates Hybrid Cloud...Webinar: How Active Everywhere Database Architecture Accelerates Hybrid Cloud...
Webinar: How Active Everywhere Database Architecture Accelerates Hybrid Cloud...
 
Webinar | Aligning GDPR Requirements with Today's Hybrid Cloud Realities
Webinar  |  Aligning GDPR Requirements with Today's Hybrid Cloud RealitiesWebinar  |  Aligning GDPR Requirements with Today's Hybrid Cloud Realities
Webinar | Aligning GDPR Requirements with Today's Hybrid Cloud Realities
 
Designing a Distributed Cloud Database for Dummies
Designing a Distributed Cloud Database for DummiesDesigning a Distributed Cloud Database for Dummies
Designing a Distributed Cloud Database for Dummies
 
How to Power Innovation with Geo-Distributed Data Management in Hybrid Cloud
How to Power Innovation with Geo-Distributed Data Management in Hybrid CloudHow to Power Innovation with Geo-Distributed Data Management in Hybrid Cloud
How to Power Innovation with Geo-Distributed Data Management in Hybrid Cloud
 
How to Evaluate Cloud Databases for eCommerce
How to Evaluate Cloud Databases for eCommerceHow to Evaluate Cloud Databases for eCommerce
How to Evaluate Cloud Databases for eCommerce
 
Webinar: DataStax Enterprise 6: 10 Ways to Multiply the Power of Apache Cassa...
Webinar: DataStax Enterprise 6: 10 Ways to Multiply the Power of Apache Cassa...Webinar: DataStax Enterprise 6: 10 Ways to Multiply the Power of Apache Cassa...
Webinar: DataStax Enterprise 6: 10 Ways to Multiply the Power of Apache Cassa...
 
Webinar: DataStax and Microsoft Azure: Empowering the Right-Now Enterprise wi...
Webinar: DataStax and Microsoft Azure: Empowering the Right-Now Enterprise wi...Webinar: DataStax and Microsoft Azure: Empowering the Right-Now Enterprise wi...
Webinar: DataStax and Microsoft Azure: Empowering the Right-Now Enterprise wi...
 
Webinar - Real-Time Customer Experience for the Right-Now Enterprise featurin...
Webinar - Real-Time Customer Experience for the Right-Now Enterprise featurin...Webinar - Real-Time Customer Experience for the Right-Now Enterprise featurin...
Webinar - Real-Time Customer Experience for the Right-Now Enterprise featurin...
 
Datastax - The Architect's guide to customer experience (CX)
Datastax - The Architect's guide to customer experience (CX)Datastax - The Architect's guide to customer experience (CX)
Datastax - The Architect's guide to customer experience (CX)
 
An Operational Data Layer is Critical for Transformative Banking Applications
An Operational Data Layer is Critical for Transformative Banking ApplicationsAn Operational Data Layer is Critical for Transformative Banking Applications
An Operational Data Layer is Critical for Transformative Banking Applications
 
Becoming a Customer-Centric Enterprise Via Real-Time Data and Design Thinking
Becoming a Customer-Centric Enterprise Via Real-Time Data and Design ThinkingBecoming a Customer-Centric Enterprise Via Real-Time Data and Design Thinking
Becoming a Customer-Centric Enterprise Via Real-Time Data and Design Thinking
 

Kürzlich hochgeladen

%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Kürzlich hochgeladen (20)

%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 

Hecuba2: Cassandra Operations Made Easy (Radovan Zvoncek, Spotify) | C* Summit 2016

  • 1. Hecuba2 Cassandra Operations Made Easy Radovan Zvoncek zvo@spotify.com
  • 2. Agenda 1 Two peace stories 2 Cassandra infrastructure at Spotify 3 What exactly is Hecuba2? 4 Wrap up 2© DataStax, All Rights Reserved.
  • 3. About Radovan Likes pancakes © DataStax, All Rights Reserved. 3
  • 4. About Radovan Likes pancakes Now knows where to get them © DataStax, All Rights Reserved. 4
  • 5. About Radovan Likes pancakes Now knows where to get them Works at Spotify © DataStax, All Rights Reserved. 5
  • 6. Spotify Music streaming service ● ~ 100 million active users ● ~ 2 billion playlists © DataStax, All Rights Reserved. 6
  • 7. Spotify Music streaming service ● ~ 100 million active users ● ~ 2 billion playlists Happy Apache Cassandra user ● ~ 100 Cassandra clusters ● ~ 1000 nodes altogether © DataStax, All Rights Reserved. 7
  • 8. The Playlist Cluster The largest cluster we have ● 2 x 45 nodes ● ~ 1TB of data on each node © DataStax, All Rights Reserved. 8
  • 9. The Playlist Cluster The largest cluster we have ● 2 x 45 nodes ● ~ 1TB of data on each node © DataStax, All Rights Reserved. 9
  • 10. The Playlist Cluster The largest cluster we have ● 2 x 45 nodes ● ~ 1TB of data on each node Had to expand by 50% © DataStax, All Rights Reserved. 10
  • 11. The previous large cluster expansion went so wrong… Peace Story #1: The Playlist Expansion © DataStax, All Rights Reserved. 11
  • 12. The previous large cluster expansion went so wrong… How exactly to do the expansion now? Peace Story #1: The Playlist Expansion © DataStax, All Rights Reserved. 12
  • 13. The previous large cluster expansion went so wrong… How exactly to do the expansion now? What tokens should the new nodes have? Peace Story #1: The Playlist Expansion © DataStax, All Rights Reserved. 13
  • 14. Peace Story #1: The Playlist Expansion The previous large cluster expansion went so wrong… How exactly to do the expansion now? What tokens should the new nodes have? How to bootstrap the nodes? © DataStax, All Rights Reserved. 14
  • 15. Peace Story #1: The Playlist Expansion Turns out, we needed just one command: © DataStax, All Rights Reserved. 15 hecuba2-cli expand-cluster dc1-playlistcassandra-a{31..45}.foo.net
  • 16. Peace Story #1: The Playlist Expansion Turns out, we needed just one command: And one peer review © DataStax, All Rights Reserved. 16 hecuba2-cli expand-cluster dc1-playlistcassandra-a{31..45}.foo.net
  • 17. Peace Story #1: The Playlist Expansion Turns out, we needed just one command: And one peer review And then a week of waiting © DataStax, All Rights Reserved. 17 hecuba2-cli expand-cluster dc1-playlistcassandra-a{31..45}.foo.net
  • 18. Peace Story #1: The Playlist Expansion 18
  • 19. Peace Story #2: The Slush Incident © DataStax, All Rights Reserved. 19
  • 20. Peace Story #2: The Slush Incident © DataStax, All Rights Reserved. 20
  • 21. Peace Story #2: The Slush Incident Got paged with 2 out of 3 nodes being down © DataStax, All Rights Reserved. 21 Datacenter: dc1 ========== Address Rack Status Load Owns Token dc1-slush-1.foo.net rac1 Up Normal 797.27 GB 33.33% 0 dc1-slush-2.foo.net rac1 Down Normal 798.58 GB 33.33% 56... dc1-slush-3.foo.net rac1 Down Normal 797.58 GB 33.33% 11...
  • 22. Peace Story #2: The Slush Incident Turns out, we needed just two commands © DataStax, All Rights Reserved. 22 hecuba2-cli replace-nodes --old-host dc1-slush-2.foo.net --new-host dc1-slush-4.foo.net hecuba2-cli replace-nodes --old-host dc1-slush-3.foo.net --new-host dc1-slush-5.foo.net
  • 23. Peace Story #2: The Slush Incident What gave us two peer reviews, such as: © DataStax, All Rights Reserved. 23
  • 24. Peace Story #2: The Slush Incident After a while, we ended up with © DataStax, All Rights Reserved. 24 Datacenter: dc1 ========== Address Rack Status Load Owns Token dc1-slush-1.foo.net rac1 Up Normal 797.27 GB 33.33% 0 dc1-slush-4.foo.net rac1 Up Normal 798.58 GB 33.33% 56... dc1-slush-5.foo.net rac1 Up Normal 797.58 GB 33.33% 11...
  • 25. The Peace Stories Very pleasant experience operating Cassandra @ Spotify All because our infrastructure © DataStax, All Rights Reserved. 25
  • 26. Agenda 1 Two peace stories 2 Cassandra infrastructure at Spotify 3 What exactly is Hecuba2? 4 Wrap up 26© DataStax, All Rights Reserved.
  • 27. Cassandra Infrastructure @ Spotify Let’s just create a Cassandra cluster like a Spotifier © DataStax, All Rights Reserved. 27
  • 28. Creating C* Cluster Like A Spotifier Step 1: Get some machines © DataStax, All Rights Reserved. 28
  • 29. Creating C* Cluster Like A Spotifier Step 1: Get some machines © DataStax, All Rights Reserved. 29
  • 30. Creating C* Cluster Like A Spotifier Step 1: Get some machines More info about System-Z Modelling Microservices at Spotify by Petter Måhlén https://youtu.be/7XDA044tl8k © DataStax, All Rights Reserved. 30
  • 31. Creating C* Cluster Like A Spotifier Step 1: Get some machines Step 2: Install the operating system © DataStax, All Rights Reserved. 31
  • 32. Creating C* Cluster Like A Spotifier Step 1: Get some machines Step 2: Install the operating system © DataStax, All Rights Reserved. 32
  • 33. Creating C* Cluster Like A Spotifier Step 1: Get some machines Step 2: Setup the cluster © DataStax, All Rights Reserved. 33
  • 34. Creating C* Cluster Like A Spotifier Step 1: Get some machines Step 2: Setup the cluster © DataStax, All Rights Reserved. 34 hecuba2-cli create-cluster --cluster-name "My new cluster" --owner mySquad dc1-userdatacass- {1..3}.foo.net
  • 35. Creating C* Cluster Like A Spotifier © DataStax, All Rights Reserved. Step 1: Get some machines Step 2: Setup the cluster Step 3: Check PR 35
  • 36. Creating C* Cluster Like A Spotifier © DataStax, All Rights Reserved. Step 1: Get some machines Step 2: Setup the cluster Step 3: Check PR Step 4: Wait 36
  • 37. Creating C* Cluster Like A Spotifier © DataStax, All Rights Reserved. Step 1: Get some machines Step 2: Setup the cluster Step 3: Check PR Step 4: Wait This will get picked up by our conf. management system and ● Install software ● Configure Cassandra 37
  • 38. Configuring Cassandra © DataStax, All Rights Reserved. 38
  • 39. Configuring Cassandra Is (almost) all about putting things into config files © DataStax, All Rights Reserved. 39
  • 40. Configuring Cassandra Is (almost) all about putting things into config files Mostly tokens and seeds ● Tokens are clunky large strings ● V-nodes would help, but... © DataStax, All Rights Reserved. 40
  • 41. Configuring Cassandra Is (almost) all about putting things into config files Mostly tokens and seeds ● Tokens are clunky large strings ● V-nodes would help, but... Also node bootstrap ● All nodes joining at once is not desired © DataStax, All Rights Reserved. 41
  • 42. Configuring Cassandra Is (almost) all about putting things into config files Mostly tokens and seeds ● Tokens are clunky large strings ● V-nodes would help, but... Also node bootstrap ● All nodes joining at once is not desired Both are handled by Hecuba2 © DataStax, All Rights Reserved. 42
  • 43. Agenda 1 Two peace stories 2 Cassandra infrastructure at Spotify 3 What exactly is Hecuba2? 4 Wrap up 43© DataStax, All Rights Reserved.
  • 44. What Exactly is Hecuba2 © DataStax, All Rights Reserved. 44 Hecuba YAML File Hecuba2 Agent Hecuba2 jmx- proxy Hecuba2 SeedPro vider Hecuba2 Agent Hecuba2 jmx- proxy Hecuba2 Seed Provider Cassandra NodeHecuba2 Client Library C* Process
  • 45. Hecuba YAML File Represents the truth about the cluster © DataStax, All Rights Reserved. 45
  • 46. Hecuba YAML File dc1-mytestcass-1.foo.net: cluster_name: mytestcass dc: dc1 seed: true token: 0 dc1-mytestcass-2.foo.net: cluster_name: mytestcass dc: dc1 seed: false token: 56713727820156410577229101238628035242 © DataStax, All Rights Reserved. 46
  • 47. Hecuba2 Client Library Manipulates the Hecuba YAML file © DataStax, All Rights Reserved. 47
  • 48. Hecuba2 Client Library Manipulates the Hecuba YAML file Does this in a smart way © DataStax, All Rights Reserved. 48
  • 49. Hecuba2 Client Library Manipulates the Hecuba YAML file Does this in a smart way Doubling the cluster © DataStax, All Rights Reserved. 49 Double the size New node Existing node stayed in place
  • 50. Manipulates the Hecuba YAML file Does this in a smart way Doubling the cluster Expand by 50% Hecuba2 Client Library © DataStax, All Rights Reserved. 50 Add 2 nodes New node Existing node stayed in place Existing node moved
  • 51. Hecuba2 Server-Side Components © DataStax, All Rights Reserved. 51 Hecuba2 Agent Hecuba2 jmx- proxy Hecuba2 Seed Provider Cassandra Node C* Process
  • 52. Hecuba2 Server-Side Components Again, three things: ● hecuba2-agent ○ State machine managing the C* process © DataStax, All Rights Reserved. 52
  • 53. hecuba2-agent © DataStax, All Rights Reserved. 53
  • 54. hecuba2-agent © DataStax, All Rights Reserved. 54
  • 55. Hecuba2 Server-Side Components Again, three things: ● hecuba2-agent ○ State machine managing the C* process ● hecuba2-jmxproxy ○ nodetool with JSON output © DataStax, All Rights Reserved. 55
  • 56. Hecuba2 Server-Side Components Again, three things: ● hecuba2-agent ○ State machine managing the C* process ● hecuba2-jmxproxy ○ nodetool with JSON output ● hecuba2-seedprovider ○ Picks seeds from Hecuba YAML © DataStax, All Rights Reserved. 56
  • 57. How Does It All Work Together © DataStax, All Rights Reserved. 57
  • 58. How Does It All Work Together © DataStax, All Rights Reserved. 58 Hecuba2 Client Library
  • 59. How Does It All Work Together © DataStax, All Rights Reserved. 59 Hecuba YAML File Hecuba2 Client Library Creates Hecuba2 Not in scope
  • 60. How Does It All Work Together © DataStax, All Rights Reserved. 60 Hecuba YAML File Hecuba2 Client Library Text Editor Hecuba2 Not in scope Alternative Creates
  • 61. How Does It All Work Together © DataStax, All Rights Reserved. 61 Hecuba YAML File Hecuba YAML File Cassandra NodeHecuba2 Client Library Text Editor Hecuba2 Not in scope Alternative Creates Distribution C* Process Hecuba2 Agent Hecuba2 jmx- proxy Hecuba2 Seed Provider
  • 62. How Does It All Work Together © DataStax, All Rights Reserved. 62 Hecuba YAML File Hecuba YAML File Cassandra NodeHecuba2 Client Library Text Editor Hecuba2 Not in scope Alternative Creates Distribution Manual Puppet C* Process Hecuba2 Agent Hecuba2 jmx- proxy Hecuba2 Seed Provider
  • 63. How Does It All Work Together © DataStax, All Rights Reserved. 63 Hecuba YAML File Hecuba YAML File Cassandra NodeHecuba2 Client Library Text Editor Hecuba2 Not in scope Alternative Creates Distribution Manual Puppet Hecuba2 Agent Hecuba2 jmx- proxy Hecuba2 Seed Provider Cron executes C* Process
  • 64. How Does It All Work Together © DataStax, All Rights Reserved. 64 Hecuba YAML File Hecuba YAML File Cassandra NodeHecuba2 Client Library Text Editor Hecuba2 Not in scope Alternative Creates Distribution Manual Puppet Hecuba2 Agent Hecuba2 jmx- proxy Hecuba2 Seed Provider Cron executes calls C* Process
  • 65. How Does It All Work Together © DataStax, All Rights Reserved. 65 Hecuba YAML File Hecuba YAML File Cassandra NodeHecuba2 Client Library Text Editor Hecuba2 Not in scope Alternative Creates Distribution Manual Puppet Hecuba2 Agent Hecuba2 jmx- proxy Hecuba2 Seed Provider Cron executes calls manages C* Process
  • 66. How Does It All Work Together © DataStax, All Rights Reserved. 66 Hecuba YAML File Hecuba2 Agent manages Cron executes Hecuba2 jmx- proxy Hecuba2 SeedPro vider Hecuba YAML File calls calls Hecuba2 Agent Hecuba2 jmx- proxy Hecuba2 Seed Provider Cassandra NodeHecuba2 Client Library Text Editor Hecuba2 Not in scope Alternative Creates Distribution Manual Puppet C* Process
  • 67. How Does It All Work Together © DataStax, All Rights Reserved. 67 Hecuba YAML File Hecuba2 Agent manages Cron executes Hecuba2 jmx- proxy Hecuba2 SeedPro vider Hecuba YAML File calls calls Hecuba2 Agent Hecuba2 jmx- proxy Hecuba2 Seed Provider Cassandra NodeHecuba2 Client Library Text Editor Hecuba2 Not in scope Alternative Creates Distribution Manual Puppet C* Process
  • 68. To Recap Hecuba2 manages cluster topologies ● create-cluster ● expand-cluster ● replace-node Many things are out of scope Missing features: ● parallelism @ hecuba2-agent ● cluster shrinking © DataStax, All Rights Reserved. 68
  • 69. Agenda 1 Two peace stories 2 Cassandra infrastructure at Spotify 3 What exactly is Hecuba2? 4 Wrap up 69© DataStax, All Rights Reserved.
  • 70. Our Experience So Far It’s been in use for a year It hasn’t let us down yet But it has surprised us by being more robust than we thought State machine testable, visualisable, and easily extensible Peer review for changes © DataStax, All Rights Reserved. 70
  • 71. FAQ Why is it called Hecuba2? Does it support v-nodes? Does it support Cassandra version X? Can I use it on Y? Is it FOSS? © DataStax, All Rights Reserved. 71
  • 72. Actual Q © DataStax, All Rights Reserved. 72