SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Virtual nodes:
Operational Aspirin
Nicolas Favre-Felix
nicolas@acunu.com
@yowgi

Thursday, 24 October 13
1-minute recap on Cassandra distribution

• Nodes are clustered in a “ring”
• Each node has a token in [0,2127-1]:
• 0
• 42535295865117307932921825928971026432
• 85070591730234615865843651857942052864
• 127605887595351923798765477786913079296

• Keys are hashed using MD5 (now Murmur3)
• Each node owns a share of the key-space
2
Thursday, 24 October 13
Cassandra distribution limitations

• Operational complexity
• Rebuild cost for capacity bound clusters
• Impact on maintenance operations
• Impact on topology changes
• No native support for heterogeneous hardware

3
Thursday, 24 October 13
Adding a node to an existing cluster

4
Thursday, 24 October 13
Insert the new node...

5
Thursday, 24 October 13
Recalculate ranges and rebalance by hand

6
Thursday, 24 October 13
Usually just double the number of nodes

7
Thursday, 24 October 13
Add/remove node

• Need to rebalance ranges between nodes
• Move more data than is optimal
• (optimal would be 1/N)

• Impacts at most RF nodes
• (prefer to spread load across cluster)

• Manual, tedious, error-prone, painful...
8
Thursday, 24 October 13
Removing a node

• nodetool removetoken (removenode from 1.2)
• Dead host's token removed from ring
• Next host in ring assumes range
• Replica count restored
• Involves at most 2 * RF - 1 nodes
• If we can make it faster, we can store more data!
9
Thursday, 24 October 13
Virtual Nodes!

10
Thursday, 24 October 13
Virtual nodes in Cassandra 1.2+

• More than one token per node
• Random token assignment
• Incremental cluster resize, one node at a time
• Streaming to/from all nodes, not just neighbors
• Only random partitioners are supported
• Multi-DC support still works in the same way
11
Thursday, 24 October 13
Different virtual nodes strategies
Number partitions

Partition Size

Random
(Cassandra 1.2+)

O(N)

O(B/N)

Fixed
(Riak)

O(1)

O(B)

Auto-sharding
(MongoDb)

O(B)

O(1)

N = number of nodes
B = size of dataset
(read more at http://bit.ly/virtualnodes)
Thursday, 24 October 13

12
Virtual Nodes!



New in 1.2
Enabled by
default in 2.0

→ set num_tokens:

256

in cassandra.yaml
13

Thursday, 24 October 13
Adding nodes to a cluster

• From a single node...
• Multiple tokens
• Ranges of different
sizes

14
Thursday, 24 October 13
Adding nodes to a cluster

• We add a second node
• “Steals” ranges from
the existing node

15
Thursday, 24 October 13
Adding nodes to a cluster

• And a third one...
• “Steals” ranges from
the existing nodes
• Distribution is close
to 1/3 each

16
Thursday, 24 October 13
An ideal distribution

17
Thursday, 24 October 13
Actually more like this

18
Thursday, 24 October 13
Bootstrap

• Assign a new host T random tokens (T=256)
• New tokens split ranges from existing nodes
• Each existing node contributes to the bootstrap
• Optimal data movement
• No need to rebalance, or double cluster size
• No need to calculate tokens
19
Thursday, 24 October 13
Removing nodes from a cluster

Removing the node
with blue ranges:

20
Thursday, 24 October 13
Removing nodes from a cluster

21
Thursday, 24 October 13
Removing a node

• Nodetool removetoken removenode
• nodetool removenode <host_id>
• Dead host's tokens removed from ring
• Ranges recalculated & data moved
• All nodes participate!

22
Thursday, 24 October 13
nodetool ring becomes useless...
$ nodetool ring
Datacenter: datacenter1
==========
Address
Rack
Status State

Load

192.168.100.2
192.168.100.2
192.168.100.2
192.168.100.2
192.168.100.2
192.168.100.2
192.168.100.2
192.168.100.2
192.168.100.2
192.168.100.2
192.168.100.2
192.168.100.2
192.168.100.2
192.168.100.2

48.18
48.18
48.18
48.18
48.18
48.18
48.18
48.18
48.18
48.18
48.18
48.18
48.18
48.18

rack1
rack1
rack1
rack1
rack1
rack1
rack1
rack1
rack1
rack1
rack1
rack1
rack1
rack1

Up
Up
Up
Up
Up
Up
Up
Up
Up
Up
Up
Up
Up
Up

Normal
Normal
Normal
Normal
Normal
Normal
Normal
Normal
Normal
Normal
Normal
Normal
Normal
Normal

Owns
KB
KB
KB
KB
KB
KB
KB
KB
KB
KB
KB
KB
KB
KB

19.46%
19.46%
19.46%
19.46%
19.46%
19.46%
19.46%
19.46%
19.46%
19.46%
19.46%
19.46%
19.46%
19.46%

Token
908086307850
-92138833317
-91449505236
-89961709812
-89833237466
-89829145910
-88349645925
-87940053784
-87315744643
-86833403935
-86172092729
-85207698040
-85134888150
-85110178049
-84965473082

23
Thursday, 24 October 13
nodetool status
$ nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address
Load
Tokens Owns
UN 192.168.100.2 48.18 KB
256
19.5%
UN 192.168.100.3 48.21 KB
256
19.9%
UN 192.168.100.1 46.19 KB
256
21.3%
UN 192.168.100.5 48.13 KB
256
18.9%
UN 192.168.100.4 48.15 KB
256
20.5%

Host ID
bb84e34e-b929-41c2-a5
50e8c1b1-a28f-431a-85
67bdd989-1b34-4bbd-a5
1a88e040-84fd-4461-80
3be40484-8225-467c-82

24
Thursday, 24 October 13
Heterogeneity
Fewer tokens, less data!

25
Thursday, 24 October 13
Modeled with simulated token assignment
Virtual Nodes: Operational Aspirin

Frequency

mean range size

Range size (arbitrary units)
Thursday, 24 October 13

26
How does this lead to balanced load?!

• Each host has the same distribution of
range sizes
• So will assume roughly equal portions of
the key-space
• Modelled with simulated data inserted
into ranges...
27
Thursday, 24 October 13
Normalised data load

Virtual Nodes: Operational Aspirin

Virtual node (location in key-space)
Thursday, 24 October 13

28
Frequency

How balanced is balanced?
Virtual Nodes: Operational Aspirin

Normalised load (arbitrary units)
Thursday, 24 October 13

29
A balanced cluster

• Keys are randomly distributed
• V-node partition will assume the load
proportional to its size
• Load tends towards balance with increase in
number of nodes
• 2 nodes: 48.4% and 51.6%
• 3 nodes: 34.3%, 33.0%, 32.7%
• 4 nodes: 24.3%, 25.2%, 24.9%, 25.6%
30
Thursday, 24 October 13
Performance testing

• 17 node EC2 m1.large
• Inserted 460 million keys
• at RF=3
• Timed removenode and then bootstrap
• Results at http://bit.ly/vnodesperf
31
Thursday, 24 October 13
Performance testing

Time (seconds)

500

Cassandra 1.2

Cassandra 1.1

375

250

125

0
removenode

bootstrap
32

Thursday, 24 October 13
Migration path for a non-vnode cluster

• Several techniques to migrate to vnodes
• The “simplest” is to rebuild your cluster
• With downtime: restore from backup
• Without downtime: twice the hardware

• “shuffle” is the proposed alternative
• Migrate all nodes to vnodes, shuffle ranges
• Very few success stories
33
Thursday, 24 October 13
Conclusion

• You should already be using virtual nodes!
• Token management is a thing of the past
• Embrace the randomness
• Scale up and down without pain

34
Thursday, 24 October 13
Thanks!
@yowgi
@acunu

Thursday, 24 October 13
We’re hiring!

• Acunu suggested and developed virtual nodes
• Patches by @samoverton and @jericevans

• Eric Evans also contributed much of CQL
• We are looking for developers to work on
Apache Cassandra, contributing features and
enhancements to the Open-Source project

36
Thursday, 24 October 13

Contenu connexe

Tendances

CERN OpenStack Cloud Control Plane - From VMs to K8s
CERN OpenStack Cloud Control Plane - From VMs to K8sCERN OpenStack Cloud Control Plane - From VMs to K8s
CERN OpenStack Cloud Control Plane - From VMs to K8sBelmiro Moreira
 
Future Science on Future OpenStack
Future Science on Future OpenStackFuture Science on Future OpenStack
Future Science on Future OpenStackBelmiro Moreira
 
Evolution of Openstack Networking at CERN
Evolution of Openstack Networking at CERNEvolution of Openstack Networking at CERN
Evolution of Openstack Networking at CERNBelmiro Moreira
 
Highly Scalable Java Programming for Multi-Core System
Highly Scalable Java Programming for Multi-Core SystemHighly Scalable Java Programming for Multi-Core System
Highly Scalable Java Programming for Multi-Core SystemJames Gan
 
Introduction To Tensorflow
Introduction To TensorflowIntroduction To Tensorflow
Introduction To TensorflowRayyan Khalid
 
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...Codemotion
 
FCS 05: A Multi-Ring Method for Efficient Multi-Dimensional Data Lookup in P2...
FCS 05: A Multi-Ring Method for Efficient Multi-Dimensional Data Lookup in P2...FCS 05: A Multi-Ring Method for Efficient Multi-Dimensional Data Lookup in P2...
FCS 05: A Multi-Ring Method for Efficient Multi-Dimensional Data Lookup in P2...James Salter
 
The OpenStack Cloud at CERN - OpenStack Nordic
The OpenStack Cloud at CERN - OpenStack NordicThe OpenStack Cloud at CERN - OpenStack Nordic
The OpenStack Cloud at CERN - OpenStack NordicTim Bell
 
Moving from CellsV1 to CellsV2 at CERN
Moving from CellsV1 to CellsV2 at CERNMoving from CellsV1 to CellsV2 at CERN
Moving from CellsV1 to CellsV2 at CERNBelmiro Moreira
 
Testing data and metadata backends with ClawIO
Testing data and metadata backends with ClawIOTesting data and metadata backends with ClawIO
Testing data and metadata backends with ClawIOHugo González Labrador
 
LesFurets.com: From 0 to Cassandra on AWS in 30 days - Tsunami Alerting Syste...
LesFurets.com: From 0 to Cassandra on AWS in 30 days - Tsunami Alerting Syste...LesFurets.com: From 0 to Cassandra on AWS in 30 days - Tsunami Alerting Syste...
LesFurets.com: From 0 to Cassandra on AWS in 30 days - Tsunami Alerting Syste...DataStax Academy
 
The Old New Crash: Cloud Memory Dump Analysis
The Old New Crash: Cloud Memory Dump AnalysisThe Old New Crash: Cloud Memory Dump Analysis
The Old New Crash: Cloud Memory Dump AnalysisDmitry Vostokov
 
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
 
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
 
Tsunami alerting with Cassandra (From 0 to Cassandra on AWS in 30 days)
Tsunami alerting with Cassandra (From 0 to Cassandra on AWS in 30 days)Tsunami alerting with Cassandra (From 0 to Cassandra on AWS in 30 days)
Tsunami alerting with Cassandra (From 0 to Cassandra on AWS in 30 days)andrei.arion
 

Tendances (18)

CERN OpenStack Cloud Control Plane - From VMs to K8s
CERN OpenStack Cloud Control Plane - From VMs to K8sCERN OpenStack Cloud Control Plane - From VMs to K8s
CERN OpenStack Cloud Control Plane - From VMs to K8s
 
Future Science on Future OpenStack
Future Science on Future OpenStackFuture Science on Future OpenStack
Future Science on Future OpenStack
 
Evolution of Openstack Networking at CERN
Evolution of Openstack Networking at CERNEvolution of Openstack Networking at CERN
Evolution of Openstack Networking at CERN
 
Highly Scalable Java Programming for Multi-Core System
Highly Scalable Java Programming for Multi-Core SystemHighly Scalable Java Programming for Multi-Core System
Highly Scalable Java Programming for Multi-Core System
 
Introduction To Tensorflow
Introduction To TensorflowIntroduction To Tensorflow
Introduction To Tensorflow
 
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
 
FCS 05: A Multi-Ring Method for Efficient Multi-Dimensional Data Lookup in P2...
FCS 05: A Multi-Ring Method for Efficient Multi-Dimensional Data Lookup in P2...FCS 05: A Multi-Ring Method for Efficient Multi-Dimensional Data Lookup in P2...
FCS 05: A Multi-Ring Method for Efficient Multi-Dimensional Data Lookup in P2...
 
CERNBox: Site Report
CERNBox: Site ReportCERNBox: Site Report
CERNBox: Site Report
 
What is CERNBox ?
What is CERNBox ?What is CERNBox ?
What is CERNBox ?
 
The OpenStack Cloud at CERN - OpenStack Nordic
The OpenStack Cloud at CERN - OpenStack NordicThe OpenStack Cloud at CERN - OpenStack Nordic
The OpenStack Cloud at CERN - OpenStack Nordic
 
Moving from CellsV1 to CellsV2 at CERN
Moving from CellsV1 to CellsV2 at CERNMoving from CellsV1 to CellsV2 at CERN
Moving from CellsV1 to CellsV2 at CERN
 
Testing data and metadata backends with ClawIO
Testing data and metadata backends with ClawIOTesting data and metadata backends with ClawIO
Testing data and metadata backends with ClawIO
 
LesFurets.com: From 0 to Cassandra on AWS in 30 days - Tsunami Alerting Syste...
LesFurets.com: From 0 to Cassandra on AWS in 30 days - Tsunami Alerting Syste...LesFurets.com: From 0 to Cassandra on AWS in 30 days - Tsunami Alerting Syste...
LesFurets.com: From 0 to Cassandra on AWS in 30 days - Tsunami Alerting Syste...
 
The Old New Crash: Cloud Memory Dump Analysis
The Old New Crash: Cloud Memory Dump AnalysisThe Old New Crash: Cloud Memory Dump Analysis
The Old New Crash: Cloud Memory Dump Analysis
 
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...
 
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 ...
 
Spanner osdi2012
Spanner osdi2012Spanner osdi2012
Spanner osdi2012
 
Tsunami alerting with Cassandra (From 0 to Cassandra on AWS in 30 days)
Tsunami alerting with Cassandra (From 0 to Cassandra on AWS in 30 days)Tsunami alerting with Cassandra (From 0 to Cassandra on AWS in 30 days)
Tsunami alerting with Cassandra (From 0 to Cassandra on AWS in 30 days)
 

Similaire à Virtual nodes: Operational Aspirin

Fast Single-pass K-means Clusterting at Oxford
Fast Single-pass K-means Clusterting at Oxford Fast Single-pass K-means Clusterting at Oxford
Fast Single-pass K-means Clusterting at Oxford MapR Technologies
 
Oxford 05-oct-2012
Oxford 05-oct-2012Oxford 05-oct-2012
Oxford 05-oct-2012Ted Dunning
 
NEURAL NETWORK IN MACHINE LEARNING FOR STUDENTS
NEURAL NETWORK IN MACHINE LEARNING FOR STUDENTSNEURAL NETWORK IN MACHINE LEARNING FOR STUDENTS
NEURAL NETWORK IN MACHINE LEARNING FOR STUDENTShemasubbu08
 
Cassandra and Spark
Cassandra and SparkCassandra and Spark
Cassandra and Sparknickmbailey
 
Clustering of graphs and search of assemblages
Clustering of graphs and search of assemblagesClustering of graphs and search of assemblages
Clustering of graphs and search of assemblagesData-Centric_Alliance
 
Training machine learning k means 2017
Training machine learning k means 2017Training machine learning k means 2017
Training machine learning k means 2017Iwan Sofana
 
osdi23_slides_lo_v2.pdf
osdi23_slides_lo_v2.pdfosdi23_slides_lo_v2.pdf
osdi23_slides_lo_v2.pdfgmdvmk
 
24-ad-hoc.ppt
24-ad-hoc.ppt24-ad-hoc.ppt
24-ad-hoc.pptsumadi26
 
Convolutional Neural Networks
Convolutional Neural NetworksConvolutional Neural Networks
Convolutional Neural Networksmilad abbasi
 
3b318431-df9f-4a2c-9909-61ecb6af8444.pptx
3b318431-df9f-4a2c-9909-61ecb6af8444.pptx3b318431-df9f-4a2c-9909-61ecb6af8444.pptx
3b318431-df9f-4a2c-9909-61ecb6af8444.pptxNANDHINIS900805
 
Convolutional Neural Networks - Veronica Vilaplana - UPC Barcelona 2018
Convolutional Neural Networks - Veronica Vilaplana - UPC Barcelona 2018Convolutional Neural Networks - Veronica Vilaplana - UPC Barcelona 2018
Convolutional Neural Networks - Veronica Vilaplana - UPC Barcelona 2018Universitat Politècnica de Catalunya
 

Similaire à Virtual nodes: Operational Aspirin (20)

Fast Single-pass K-means Clusterting at Oxford
Fast Single-pass K-means Clusterting at Oxford Fast Single-pass K-means Clusterting at Oxford
Fast Single-pass K-means Clusterting at Oxford
 
Oxford 05-oct-2012
Oxford 05-oct-2012Oxford 05-oct-2012
Oxford 05-oct-2012
 
ACM 2013-02-25
ACM 2013-02-25ACM 2013-02-25
ACM 2013-02-25
 
L6.sp17.pptx
L6.sp17.pptxL6.sp17.pptx
L6.sp17.pptx
 
Hoard_2022AIM1001.pptx.pdf
Hoard_2022AIM1001.pptx.pdfHoard_2022AIM1001.pptx.pdf
Hoard_2022AIM1001.pptx.pdf
 
CDN algos
CDN algosCDN algos
CDN algos
 
NEURAL NETWORK IN MACHINE LEARNING FOR STUDENTS
NEURAL NETWORK IN MACHINE LEARNING FOR STUDENTSNEURAL NETWORK IN MACHINE LEARNING FOR STUDENTS
NEURAL NETWORK IN MACHINE LEARNING FOR STUDENTS
 
Cassandra and Spark
Cassandra and SparkCassandra and Spark
Cassandra and Spark
 
Clustering of graphs and search of assemblages
Clustering of graphs and search of assemblagesClustering of graphs and search of assemblages
Clustering of graphs and search of assemblages
 
Devops kc
Devops kcDevops kc
Devops kc
 
lec16-memory.ppt
lec16-memory.pptlec16-memory.ppt
lec16-memory.ppt
 
Paralell
ParalellParalell
Paralell
 
Training machine learning k means 2017
Training machine learning k means 2017Training machine learning k means 2017
Training machine learning k means 2017
 
osdi23_slides_lo_v2.pdf
osdi23_slides_lo_v2.pdfosdi23_slides_lo_v2.pdf
osdi23_slides_lo_v2.pdf
 
Kademlia introduction
Kademlia introductionKademlia introduction
Kademlia introduction
 
24-ad-hoc.ppt
24-ad-hoc.ppt24-ad-hoc.ppt
24-ad-hoc.ppt
 
Cnn
CnnCnn
Cnn
 
Convolutional Neural Networks
Convolutional Neural NetworksConvolutional Neural Networks
Convolutional Neural Networks
 
3b318431-df9f-4a2c-9909-61ecb6af8444.pptx
3b318431-df9f-4a2c-9909-61ecb6af8444.pptx3b318431-df9f-4a2c-9909-61ecb6af8444.pptx
3b318431-df9f-4a2c-9909-61ecb6af8444.pptx
 
Convolutional Neural Networks - Veronica Vilaplana - UPC Barcelona 2018
Convolutional Neural Networks - Veronica Vilaplana - UPC Barcelona 2018Convolutional Neural Networks - Veronica Vilaplana - UPC Barcelona 2018
Convolutional Neural Networks - Veronica Vilaplana - UPC Barcelona 2018
 

Plus de Acunu

Acunu and Hailo: a realtime analytics case study on Cassandra
Acunu and Hailo: a realtime analytics case study on CassandraAcunu and Hailo: a realtime analytics case study on Cassandra
Acunu and Hailo: a realtime analytics case study on CassandraAcunu
 
Acunu Analytics and Cassandra at Hailo All Your Base 2013
Acunu Analytics and Cassandra at Hailo All Your Base 2013 Acunu Analytics and Cassandra at Hailo All Your Base 2013
Acunu Analytics and Cassandra at Hailo All Your Base 2013 Acunu
 
Understanding Cassandra internals to solve real-world problems
Understanding Cassandra internals to solve real-world problemsUnderstanding Cassandra internals to solve real-world problems
Understanding Cassandra internals to solve real-world problemsAcunu
 
Acunu Analytics: Simpler Real-Time Cassandra Apps
Acunu Analytics: Simpler Real-Time Cassandra AppsAcunu Analytics: Simpler Real-Time Cassandra Apps
Acunu Analytics: Simpler Real-Time Cassandra AppsAcunu
 
All Your Base
All Your BaseAll Your Base
All Your BaseAcunu
 
Realtime Analytics with Apache Cassandra
Realtime Analytics with Apache CassandraRealtime Analytics with Apache Cassandra
Realtime Analytics with Apache CassandraAcunu
 
Realtime Analytics with Apache Cassandra - JAX London
Realtime Analytics with Apache Cassandra - JAX LondonRealtime Analytics with Apache Cassandra - JAX London
Realtime Analytics with Apache Cassandra - JAX LondonAcunu
 
Real-time Cassandra
Real-time CassandraReal-time Cassandra
Real-time CassandraAcunu
 
Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...
Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...
Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...Acunu
 
Realtime Analytics with Cassandra
Realtime Analytics with CassandraRealtime Analytics with Cassandra
Realtime Analytics with CassandraAcunu
 
Acunu Analytics @ Cassandra London
Acunu Analytics @ Cassandra LondonAcunu Analytics @ Cassandra London
Acunu Analytics @ Cassandra LondonAcunu
 
Exploring Big Data value for your business
Exploring Big Data value for your businessExploring Big Data value for your business
Exploring Big Data value for your businessAcunu
 
Realtime Analytics on the Twitter Firehose with Cassandra
Realtime Analytics on the Twitter Firehose with CassandraRealtime Analytics on the Twitter Firehose with Cassandra
Realtime Analytics on the Twitter Firehose with CassandraAcunu
 
Progressive NOSQL: Cassandra
Progressive NOSQL: CassandraProgressive NOSQL: Cassandra
Progressive NOSQL: CassandraAcunu
 
Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...
Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...
Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...Acunu
 
Cassandra EU 2012 - Putting the X Factor into Cassandra
Cassandra EU 2012 - Putting the X Factor into CassandraCassandra EU 2012 - Putting the X Factor into Cassandra
Cassandra EU 2012 - Putting the X Factor into CassandraAcunu
 
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source EffortsCassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source EffortsAcunu
 
Next Generation Cassandra
Next Generation CassandraNext Generation Cassandra
Next Generation CassandraAcunu
 
Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans
Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans
Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans Acunu
 
Cassandra EU 2012 - Storage Internals by Nicolas Favre-Felix
Cassandra EU 2012 - Storage Internals by Nicolas Favre-FelixCassandra EU 2012 - Storage Internals by Nicolas Favre-Felix
Cassandra EU 2012 - Storage Internals by Nicolas Favre-FelixAcunu
 

Plus de Acunu (20)

Acunu and Hailo: a realtime analytics case study on Cassandra
Acunu and Hailo: a realtime analytics case study on CassandraAcunu and Hailo: a realtime analytics case study on Cassandra
Acunu and Hailo: a realtime analytics case study on Cassandra
 
Acunu Analytics and Cassandra at Hailo All Your Base 2013
Acunu Analytics and Cassandra at Hailo All Your Base 2013 Acunu Analytics and Cassandra at Hailo All Your Base 2013
Acunu Analytics and Cassandra at Hailo All Your Base 2013
 
Understanding Cassandra internals to solve real-world problems
Understanding Cassandra internals to solve real-world problemsUnderstanding Cassandra internals to solve real-world problems
Understanding Cassandra internals to solve real-world problems
 
Acunu Analytics: Simpler Real-Time Cassandra Apps
Acunu Analytics: Simpler Real-Time Cassandra AppsAcunu Analytics: Simpler Real-Time Cassandra Apps
Acunu Analytics: Simpler Real-Time Cassandra Apps
 
All Your Base
All Your BaseAll Your Base
All Your Base
 
Realtime Analytics with Apache Cassandra
Realtime Analytics with Apache CassandraRealtime Analytics with Apache Cassandra
Realtime Analytics with Apache Cassandra
 
Realtime Analytics with Apache Cassandra - JAX London
Realtime Analytics with Apache Cassandra - JAX LondonRealtime Analytics with Apache Cassandra - JAX London
Realtime Analytics with Apache Cassandra - JAX London
 
Real-time Cassandra
Real-time CassandraReal-time Cassandra
Real-time Cassandra
 
Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...
Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...
Realtime Analytics on the Twitter Firehose with Apache Cassandra - Denormaliz...
 
Realtime Analytics with Cassandra
Realtime Analytics with CassandraRealtime Analytics with Cassandra
Realtime Analytics with Cassandra
 
Acunu Analytics @ Cassandra London
Acunu Analytics @ Cassandra LondonAcunu Analytics @ Cassandra London
Acunu Analytics @ Cassandra London
 
Exploring Big Data value for your business
Exploring Big Data value for your businessExploring Big Data value for your business
Exploring Big Data value for your business
 
Realtime Analytics on the Twitter Firehose with Cassandra
Realtime Analytics on the Twitter Firehose with CassandraRealtime Analytics on the Twitter Firehose with Cassandra
Realtime Analytics on the Twitter Firehose with Cassandra
 
Progressive NOSQL: Cassandra
Progressive NOSQL: CassandraProgressive NOSQL: Cassandra
Progressive NOSQL: Cassandra
 
Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...
Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...
Cassandra EU 2012 - Overview of Case Studies and State of the Market by 451 R...
 
Cassandra EU 2012 - Putting the X Factor into Cassandra
Cassandra EU 2012 - Putting the X Factor into CassandraCassandra EU 2012 - Putting the X Factor into Cassandra
Cassandra EU 2012 - Putting the X Factor into Cassandra
 
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source EffortsCassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
Cassandra EU 2012 - Netflix's Cassandra Architecture and Open Source Efforts
 
Next Generation Cassandra
Next Generation CassandraNext Generation Cassandra
Next Generation Cassandra
 
Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans
Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans
Cassandra EU 2012 - CQL: Then, Now and When by Eric Evans
 
Cassandra EU 2012 - Storage Internals by Nicolas Favre-Felix
Cassandra EU 2012 - Storage Internals by Nicolas Favre-FelixCassandra EU 2012 - Storage Internals by Nicolas Favre-Felix
Cassandra EU 2012 - Storage Internals by Nicolas Favre-Felix
 

Dernier

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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.pptxEarley Information Science
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
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?Igalia
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
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 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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 MountPuma Security, LLC
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Dernier (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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?
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Virtual nodes: Operational Aspirin

  • 1. Virtual nodes: Operational Aspirin Nicolas Favre-Felix nicolas@acunu.com @yowgi Thursday, 24 October 13
  • 2. 1-minute recap on Cassandra distribution • Nodes are clustered in a “ring” • Each node has a token in [0,2127-1]: • 0 • 42535295865117307932921825928971026432 • 85070591730234615865843651857942052864 • 127605887595351923798765477786913079296 • Keys are hashed using MD5 (now Murmur3) • Each node owns a share of the key-space 2 Thursday, 24 October 13
  • 3. Cassandra distribution limitations • Operational complexity • Rebuild cost for capacity bound clusters • Impact on maintenance operations • Impact on topology changes • No native support for heterogeneous hardware 3 Thursday, 24 October 13
  • 4. Adding a node to an existing cluster 4 Thursday, 24 October 13
  • 5. Insert the new node... 5 Thursday, 24 October 13
  • 6. Recalculate ranges and rebalance by hand 6 Thursday, 24 October 13
  • 7. Usually just double the number of nodes 7 Thursday, 24 October 13
  • 8. Add/remove node • Need to rebalance ranges between nodes • Move more data than is optimal • (optimal would be 1/N) • Impacts at most RF nodes • (prefer to spread load across cluster) • Manual, tedious, error-prone, painful... 8 Thursday, 24 October 13
  • 9. Removing a node • nodetool removetoken (removenode from 1.2) • Dead host's token removed from ring • Next host in ring assumes range • Replica count restored • Involves at most 2 * RF - 1 nodes • If we can make it faster, we can store more data! 9 Thursday, 24 October 13
  • 11. Virtual nodes in Cassandra 1.2+ • More than one token per node • Random token assignment • Incremental cluster resize, one node at a time • Streaming to/from all nodes, not just neighbors • Only random partitioners are supported • Multi-DC support still works in the same way 11 Thursday, 24 October 13
  • 12. Different virtual nodes strategies Number partitions Partition Size Random (Cassandra 1.2+) O(N) O(B/N) Fixed (Riak) O(1) O(B) Auto-sharding (MongoDb) O(B) O(1) N = number of nodes B = size of dataset (read more at http://bit.ly/virtualnodes) Thursday, 24 October 13 12
  • 13. Virtual Nodes!   New in 1.2 Enabled by default in 2.0 → set num_tokens: 256 in cassandra.yaml 13 Thursday, 24 October 13
  • 14. Adding nodes to a cluster • From a single node... • Multiple tokens • Ranges of different sizes 14 Thursday, 24 October 13
  • 15. Adding nodes to a cluster • We add a second node • “Steals” ranges from the existing node 15 Thursday, 24 October 13
  • 16. Adding nodes to a cluster • And a third one... • “Steals” ranges from the existing nodes • Distribution is close to 1/3 each 16 Thursday, 24 October 13
  • 18. Actually more like this 18 Thursday, 24 October 13
  • 19. Bootstrap • Assign a new host T random tokens (T=256) • New tokens split ranges from existing nodes • Each existing node contributes to the bootstrap • Optimal data movement • No need to rebalance, or double cluster size • No need to calculate tokens 19 Thursday, 24 October 13
  • 20. Removing nodes from a cluster Removing the node with blue ranges: 20 Thursday, 24 October 13
  • 21. Removing nodes from a cluster 21 Thursday, 24 October 13
  • 22. Removing a node • Nodetool removetoken removenode • nodetool removenode <host_id> • Dead host's tokens removed from ring • Ranges recalculated & data moved • All nodes participate! 22 Thursday, 24 October 13
  • 23. nodetool ring becomes useless... $ nodetool ring Datacenter: datacenter1 ========== Address Rack Status State Load 192.168.100.2 192.168.100.2 192.168.100.2 192.168.100.2 192.168.100.2 192.168.100.2 192.168.100.2 192.168.100.2 192.168.100.2 192.168.100.2 192.168.100.2 192.168.100.2 192.168.100.2 192.168.100.2 48.18 48.18 48.18 48.18 48.18 48.18 48.18 48.18 48.18 48.18 48.18 48.18 48.18 48.18 rack1 rack1 rack1 rack1 rack1 rack1 rack1 rack1 rack1 rack1 rack1 rack1 rack1 rack1 Up Up Up Up Up Up Up Up Up Up Up Up Up Up Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal Owns KB KB KB KB KB KB KB KB KB KB KB KB KB KB 19.46% 19.46% 19.46% 19.46% 19.46% 19.46% 19.46% 19.46% 19.46% 19.46% 19.46% 19.46% 19.46% 19.46% Token 908086307850 -92138833317 -91449505236 -89961709812 -89833237466 -89829145910 -88349645925 -87940053784 -87315744643 -86833403935 -86172092729 -85207698040 -85134888150 -85110178049 -84965473082 23 Thursday, 24 October 13
  • 24. nodetool status $ nodetool status Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns UN 192.168.100.2 48.18 KB 256 19.5% UN 192.168.100.3 48.21 KB 256 19.9% UN 192.168.100.1 46.19 KB 256 21.3% UN 192.168.100.5 48.13 KB 256 18.9% UN 192.168.100.4 48.15 KB 256 20.5% Host ID bb84e34e-b929-41c2-a5 50e8c1b1-a28f-431a-85 67bdd989-1b34-4bbd-a5 1a88e040-84fd-4461-80 3be40484-8225-467c-82 24 Thursday, 24 October 13
  • 25. Heterogeneity Fewer tokens, less data! 25 Thursday, 24 October 13
  • 26. Modeled with simulated token assignment Virtual Nodes: Operational Aspirin Frequency mean range size Range size (arbitrary units) Thursday, 24 October 13 26
  • 27. How does this lead to balanced load?! • Each host has the same distribution of range sizes • So will assume roughly equal portions of the key-space • Modelled with simulated data inserted into ranges... 27 Thursday, 24 October 13
  • 28. Normalised data load Virtual Nodes: Operational Aspirin Virtual node (location in key-space) Thursday, 24 October 13 28
  • 29. Frequency How balanced is balanced? Virtual Nodes: Operational Aspirin Normalised load (arbitrary units) Thursday, 24 October 13 29
  • 30. A balanced cluster • Keys are randomly distributed • V-node partition will assume the load proportional to its size • Load tends towards balance with increase in number of nodes • 2 nodes: 48.4% and 51.6% • 3 nodes: 34.3%, 33.0%, 32.7% • 4 nodes: 24.3%, 25.2%, 24.9%, 25.6% 30 Thursday, 24 October 13
  • 31. Performance testing • 17 node EC2 m1.large • Inserted 460 million keys • at RF=3 • Timed removenode and then bootstrap • Results at http://bit.ly/vnodesperf 31 Thursday, 24 October 13
  • 32. Performance testing Time (seconds) 500 Cassandra 1.2 Cassandra 1.1 375 250 125 0 removenode bootstrap 32 Thursday, 24 October 13
  • 33. Migration path for a non-vnode cluster • Several techniques to migrate to vnodes • The “simplest” is to rebuild your cluster • With downtime: restore from backup • Without downtime: twice the hardware • “shuffle” is the proposed alternative • Migrate all nodes to vnodes, shuffle ranges • Very few success stories 33 Thursday, 24 October 13
  • 34. Conclusion • You should already be using virtual nodes! • Token management is a thing of the past • Embrace the randomness • Scale up and down without pain 34 Thursday, 24 October 13
  • 36. We’re hiring! • Acunu suggested and developed virtual nodes • Patches by @samoverton and @jericevans • Eric Evans also contributed much of CQL • We are looking for developers to work on Apache Cassandra, contributing features and enhancements to the Open-Source project 36 Thursday, 24 October 13