SlideShare a Scribd company logo
1 of 33
Download to read offline
V is for vnodes
    Patrick McFadin, Sr Solution Architect
    DataStax


    ©2012 DataStax
                                             1
Friday, February 15, 13
Agenda for today
        • What is a node?
        • How vnodes work
        • Converting your cluster
        • Benefits




    ©2012 DataStax
                                    2
Friday, February 15, 13
Since the beginning...
                     Cassandra has had...



                             Clusters, which have...



                                      Keyspaces, which have...



                                              Column Families, which have...




    ©2012 DataStax
                                                                               3
Friday, February 15, 13
Row Keys

                          Unique in a column family
                          Can be up to 64k in size
                          Can be sorted in the cluster
                                                          Byte Ordered Partitioner

                                    OR...



                          Can be randomly placed in cluster
                                                         Random Partitioner



    ©2012 DataStax
                                                                                     4
Friday, February 15, 13
Row Keys
                  How do you...

                  • Create a random number?
                  • Make sure the number is big enough?
                  • Make it reproducible?


                                 MD5 does the job


                     Input a Row Key     MD5        Get a 128 bit number




    ©2012 DataStax
                                                                           5
Friday, February 15, 13
Row Keys
                           Input                                      Get

                 @PatrickMcFadin             MD5        0xcfc2d0610aaa712a8c36711d08a2550a




                           Input                                      Get

                          8675309            MD5        0x6cc0d36686e6a433aa76f96773852d35




                            The number produced is a range between:

                            0 and 2128-1... but Cassandra uses 2127-1

         2128 = 340,282,366,920,938,463,463,374,607,431,768,211,456

                                            ...otherwise known as a HUGE number.
    ©2012 DataStax
                                                                                             6
Friday, February 15, 13
©2012 DataStax
                          7
Friday, February 15, 13
Token Assignment
        • Each Cassandra node is assigned a token
        • Each token is a number inside the huge range
        • Tokens mark the ownership range of Row Keys

                          From: Token = 0




                                               To: Token = 56713727820156410577229101238628035242




                                                   From:



                            To: Token = 113427455640312821154458202477256070484

    ©2012 DataStax
                                                                                                    8
Friday, February 15, 13
Row Key to Token
                    Input                                                     Get

       @PatrickMcFadin                      MD5          276161727147663567581939045564154008842




                                       Token = 0




                              I’ll                 Token = 56713727820156410577229101238628035242
                            take it!



                            Token = 113427455640312821154458202477256070484

    ©2012 DataStax
                                                                                                    9
Friday, February 15, 13
Row Key to Token
                    Input                                                     Get

       @PatrickMcFadin                      MD5          276161727147663567581939045564154008842




                                       Token = 0




                              I’ll                 Token = 56713727820156410577229101238628035242
                            take it!



                            Token = 113427455640312821154458202477256070484

    ©2012 DataStax
                                                                                                    9
Friday, February 15, 13
Row Key to Token
                    Input                                                     Get

       @PatrickMcFadin                      MD5          276161727147663567581939045564154008842




                                       Token = 0




                              I’ll                 Token = 56713727820156410577229101238628035242
                            take it!



                            Token = 113427455640312821154458202477256070484

    ©2012 DataStax
                                                                                                    9
Friday, February 15, 13
Cassandra 1.1 Node
        • Responsible for a single range of keys
        • Range determined by single token
        • One server = One token = One node




    ©2012 DataStax
                                                   10
Friday, February 15, 13
Cassandra 1.1 Node
        • Responsible for a single range of keys
        • Range determined by single token
        • One server = One token = One node




    ©2012 DataStax
                                                   10
Friday, February 15, 13
Cassandra 1.1 Node
        • Responsible for a single range of keys
        • Range determined by single token
        • One server = One token = One node




          Commodity node?

    ©2012 DataStax
                                                   10
Friday, February 15, 13
Cassandra 1.1 Node
        • Responsible for a single range of keys
        • Range determined by single token
        • One server = One token = One node




          Commodity node?

    ©2012 DataStax
                                                   10
Friday, February 15, 13
Cassandra 1.1 Node
        • Responsible for a single range of keys
        • Range determined by single token
        • One server = One token = One node




          Commodity node?             What you really want.

    ©2012 DataStax
                                                              10
Friday, February 15, 13
Cassandra 1.1 Node
        • Responsible for a single range of keys
        • Range determined by single token
        • One server = One token = One node




          Commodity node?             What you really want.

    ©2012 DataStax
                                                              10
Friday, February 15, 13
Time for a new plan

               • Hardware is only getting bigger
               • One node is responsible for more data
               • Token assignments are a pain




    ©2012 DataStax
                                                         11
Friday, February 15, 13
Token assignment (sucks)
        • Tokens need to be evenly spread
        • Growing a ring... not good options
        • Shrinking a ring... not good options
        • Tokens have to be added to each server config




    ©2012 DataStax
                                                         12
Friday, February 15, 13
Enter Virtual Nodes
        • One server should have many nodes
        • Each node should be small
        • Tokens should be automatic

                  Version 1.1          Version 1.2
                          Server 1       Server 1

                                         1      2

                            1-4
                                         4      3




    ©2012 DataStax
                                                     13
Friday, February 15, 13
Virtual Node Features
        • Default 256 Nodes per server
        • Auto assign tokens
        • Faster rebuilds of servers
        • Faster server add to cluster
        • New partitioner (More later)




    ©2012 DataStax
                                         14
Friday, February 15, 13
Transitioning to vnodes
              Super easy!

              Find these lines in your cassandra.yaml file:

                          #num_tokens:

                          initial_token: <some big number>




             Change to:
                          num_tokens: 256

                          initial_token:




              and restart.
                                                             Repeat on all nodes in cluster
    ©2012 DataStax
                                                                                         15
Friday, February 15, 13
Transitioning to vnodes
           After all Cassandra instances have been reset

                          Initialize a shuffle operation

                          [patrick@cassandra0 ~]$ cassandra-shuffle create




                          Enable shuffling

                          [patrick@cassandra0 ~]$ cassandra-shuffle enable




                          List pending relocations*

                          [patrick@cassandra0 ~]$ cassandra-shuffle ls




                                                                             Let’s walk through it...
                             *This is a slow op. Be patient.
    ©2012 DataStax
                                                                                                    16
Friday, February 15, 13
Existing 1.1 cluster
                          Server 1   Server 2



                            1-4        4-8




                          Server 4   Server 3



                          13-16       9-12




    ©2012 DataStax

Friday, February 15, 13
Set num_tokens and restart
                            Server 1        Server 2

                           1-4     1-4    4-8     4-8



                           1-4     1-4    4-8     4-8




                            Server 4        Server 3

                          13-16   13-16   9-12    9-12



                          13-16   13-16   9-12    9-12



    ©2012 DataStax
                                                         18
Friday, February 15, 13
Set num_tokens and restart
                           Server 1                  Server 2

                          1       2                 5       6



                          3       4                 7       8




                           Server 4                  Server 3

                          13      14                9       10



                          15      16               11       12



    ©2012 DataStax
                                       Initialize and Enable shuffling...
                                                                            19
Friday, February 15, 13
Shuffle enable
                           Server 1    Server 2

                          1       5    2          6



                          13      9    14     10




                           Server 4    Server 3

                          3       7    4          8



                          16      12   15     11



    ©2012 DataStax
                                                      20
Friday, February 15, 13
Shuffle complete
                           Server 1    Server 2

                          1       5    2          6



                          13      9    14     10




                           Server 4    Server 3

                          3       7    4          8



                          16      12   15     11



    ©2012 DataStax
                                                      21
Friday, February 15, 13
Ops life with vnodes
        • Add any number of nodes
        • No token assignments!
        • Bigger server? Larger num_tokens
        • Decommission any number of nodes
        • New nodetool command: status




                          One more time now!

    ©2012 DataStax
                                               22
Friday, February 15, 13
Bonus new thing
        • New Partitioner: Murmur3Partitoner
        • Murmur3 replaces MD5
        • Slightly faster than MD5 in certain cases
        • Go forward partitioner for NEW clusters
        • No need to convert




            More details here:
            https://issues.apache.org/jira/browse/CASSANDRA-3772


    ©2012 DataStax
                                                                   23
Friday, February 15, 13
In conclusion...


                              Go out and try some vnode love today!



                              Download Cassandra 1.2 now


                          http://www.datastax.com/download/community


                            http://cassandra.apache.org/download/




    ©2012 DataStax
                                                                       24
Friday, February 15, 13
Some handy references

              http://www.datastax.com/dev/blog/virtual-nodes-in-cassandra-1-2


               http://www.datastax.com/dev/blog/upgrading-an-existing-cluster-to-vnodes


              Follow me on Twitter for more: @PatrickMcFadin




    ©2012 DataStax
                                                                                          25
Friday, February 15, 13
We power the apps
                           that transform
                              business.



    ©2012 DataStax
                                              26
Friday, February 15, 13

More Related Content

What's hot

Transparent Data Encryption
Transparent Data EncryptionTransparent Data Encryption
Transparent Data EncryptionJohn Magnabosco
 
Supporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability ImprovementsSupporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability ImprovementsDataWorks Summit
 
Gain 3 Benefits with Delta Sharing
Gain 3 Benefits with Delta SharingGain 3 Benefits with Delta Sharing
Gain 3 Benefits with Delta SharingDatabricks
 
Plny12 galera-cluster-best-practices
Plny12 galera-cluster-best-practicesPlny12 galera-cluster-best-practices
Plny12 galera-cluster-best-practicesDimas Prasetyo
 
Intro to MySQL Master Slave Replication
Intro to MySQL Master Slave ReplicationIntro to MySQL Master Slave Replication
Intro to MySQL Master Slave Replicationsatejsahu
 
Hdfs ha using journal nodes
Hdfs ha using journal nodesHdfs ha using journal nodes
Hdfs ha using journal nodesEvans Ye
 
MariaDB Galera Cluster presentation
MariaDB Galera Cluster presentationMariaDB Galera Cluster presentation
MariaDB Galera Cluster presentationFrancisco Gonçalves
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기NeoClova
 
Cassandra & puppet, scaling data at $15 per month
Cassandra & puppet, scaling data at $15 per monthCassandra & puppet, scaling data at $15 per month
Cassandra & puppet, scaling data at $15 per monthdaveconnors
 
Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink Slim Baltagi
 
Nginx Internals
Nginx InternalsNginx Internals
Nginx InternalsJoshua Zhu
 
High Performance Object Storage in 30 Minutes with Supermicro and MinIO
High Performance Object Storage in 30 Minutes with Supermicro and MinIOHigh Performance Object Storage in 30 Minutes with Supermicro and MinIO
High Performance Object Storage in 30 Minutes with Supermicro and MinIORebekah Rodriguez
 
Troubleshooting redis
Troubleshooting redisTroubleshooting redis
Troubleshooting redisDaeMyung Kang
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterKenny Gryp
 
Apache Hadoop YARN
Apache Hadoop YARNApache Hadoop YARN
Apache Hadoop YARNAdam Kawa
 
An Overview of Apache Cassandra
An Overview of Apache CassandraAn Overview of Apache Cassandra
An Overview of Apache CassandraDataStax
 
Jvm tuning for low latency application & Cassandra
Jvm tuning for low latency application & CassandraJvm tuning for low latency application & Cassandra
Jvm tuning for low latency application & CassandraQuentin Ambard
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker, Inc.
 

What's hot (20)

Transparent Data Encryption
Transparent Data EncryptionTransparent Data Encryption
Transparent Data Encryption
 
Supporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability ImprovementsSupporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability Improvements
 
Gain 3 Benefits with Delta Sharing
Gain 3 Benefits with Delta SharingGain 3 Benefits with Delta Sharing
Gain 3 Benefits with Delta Sharing
 
Plny12 galera-cluster-best-practices
Plny12 galera-cluster-best-practicesPlny12 galera-cluster-best-practices
Plny12 galera-cluster-best-practices
 
Intro to MySQL Master Slave Replication
Intro to MySQL Master Slave ReplicationIntro to MySQL Master Slave Replication
Intro to MySQL Master Slave Replication
 
Hdfs ha using journal nodes
Hdfs ha using journal nodesHdfs ha using journal nodes
Hdfs ha using journal nodes
 
MariaDB Galera Cluster presentation
MariaDB Galera Cluster presentationMariaDB Galera Cluster presentation
MariaDB Galera Cluster presentation
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기
 
Cassandra & puppet, scaling data at $15 per month
Cassandra & puppet, scaling data at $15 per monthCassandra & puppet, scaling data at $15 per month
Cassandra & puppet, scaling data at $15 per month
 
Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink
 
Nginx Internals
Nginx InternalsNginx Internals
Nginx Internals
 
Rapid Home Provisioning
Rapid Home ProvisioningRapid Home Provisioning
Rapid Home Provisioning
 
High Performance Object Storage in 30 Minutes with Supermicro and MinIO
High Performance Object Storage in 30 Minutes with Supermicro and MinIOHigh Performance Object Storage in 30 Minutes with Supermicro and MinIO
High Performance Object Storage in 30 Minutes with Supermicro and MinIO
 
Troubleshooting redis
Troubleshooting redisTroubleshooting redis
Troubleshooting redis
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
 
Apache Hadoop YARN
Apache Hadoop YARNApache Hadoop YARN
Apache Hadoop YARN
 
An Overview of Apache Cassandra
An Overview of Apache CassandraAn Overview of Apache Cassandra
An Overview of Apache Cassandra
 
Jvm tuning for low latency application & Cassandra
Jvm tuning for low latency application & CassandraJvm tuning for low latency application & Cassandra
Jvm tuning for low latency application & Cassandra
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 

Viewers also liked

Cassandra overview: Um Caso Prático
Cassandra overview:  Um Caso PráticoCassandra overview:  Um Caso Prático
Cassandra overview: Um Caso PráticoEiti Kimura
 
Bulk Loading Data into Cassandra
Bulk Loading Data into CassandraBulk Loading Data into Cassandra
Bulk Loading Data into CassandraDataStax
 
Webinar | Introducing DataStax Enterprise 4.6
Webinar | Introducing DataStax Enterprise 4.6Webinar | Introducing DataStax Enterprise 4.6
Webinar | Introducing DataStax Enterprise 4.6DataStax
 
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...DataStax
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...DataStax
 
Cassandra Community Webinar: Back to Basics with CQL3
Cassandra Community Webinar: Back to Basics with CQL3Cassandra Community Webinar: Back to Basics with CQL3
Cassandra Community Webinar: Back to Basics with CQL3DataStax
 
Webinar: Don't Leave Your Data in the Dark
Webinar: Don't Leave Your Data in the DarkWebinar: Don't Leave Your Data in the Dark
Webinar: Don't Leave Your Data in the DarkDataStax
 
How much money do you lose every time your ecommerce site goes down?
How much money do you lose every time your ecommerce site goes down?How much money do you lose every time your ecommerce site goes down?
How much money do you lose every time your ecommerce site goes down?DataStax
 
Cassandra Community Webinar | In Case of Emergency Break Glass
Cassandra Community Webinar | In Case of Emergency Break GlassCassandra Community Webinar | In Case of Emergency Break Glass
Cassandra Community Webinar | In Case of Emergency Break GlassDataStax
 
Don't Let Your Shoppers Drop; 5 Rules for Today’s eCommerce
Don't Let Your Shoppers Drop; 5 Rules for Today’s eCommerceDon't Let Your Shoppers Drop; 5 Rules for Today’s eCommerce
Don't Let Your Shoppers Drop; 5 Rules for Today’s eCommerceDataStax
 
Getting Big Value from Big Data
Getting Big Value from Big DataGetting Big Value from Big Data
Getting Big Value from Big DataDataStax
 
Webinar: Eventual Consistency != Hopeful Consistency
Webinar: Eventual Consistency != Hopeful ConsistencyWebinar: Eventual Consistency != Hopeful Consistency
Webinar: Eventual Consistency != Hopeful ConsistencyDataStax
 
Webinar | How Clear Capital Delivers Always-on Appraisals on 122 Million Prop...
Webinar | How Clear Capital Delivers Always-on Appraisals on 122 Million Prop...Webinar | How Clear Capital Delivers Always-on Appraisals on 122 Million Prop...
Webinar | How Clear Capital Delivers Always-on Appraisals on 122 Million Prop...DataStax
 
Webinar: Getting Started with Apache Cassandra
Webinar: Getting Started with Apache CassandraWebinar: Getting Started with Apache Cassandra
Webinar: Getting Started with Apache CassandraDataStax
 
Webinar | From Zero to 1 Million with Google Cloud Platform and DataStax
Webinar | From Zero to 1 Million with Google Cloud Platform and DataStaxWebinar | From Zero to 1 Million with Google Cloud Platform and DataStax
Webinar | From Zero to 1 Million with Google Cloud Platform and DataStaxDataStax
 
Cassandra TK 2014 - Large Nodes
Cassandra TK 2014 - Large NodesCassandra TK 2014 - Large Nodes
Cassandra TK 2014 - Large Nodesaaronmorton
 
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...DataStax
 
Webinar: 2 Billion Data Points Each Day
Webinar: 2 Billion Data Points Each DayWebinar: 2 Billion Data Points Each Day
Webinar: 2 Billion Data Points Each DayDataStax
 
Don’t Get Caught in a PCI Pickle: Meet Compliance and Protect Payment Card Da...
Don’t Get Caught in a PCI Pickle: Meet Compliance and Protect Payment Card Da...Don’t Get Caught in a PCI Pickle: Meet Compliance and Protect Payment Card Da...
Don’t Get Caught in a PCI Pickle: Meet Compliance and Protect Payment Card Da...DataStax
 
Cassandra Community Webinar | Make Life Easier - An Introduction to Cassandra...
Cassandra Community Webinar | Make Life Easier - An Introduction to Cassandra...Cassandra Community Webinar | Make Life Easier - An Introduction to Cassandra...
Cassandra Community Webinar | Make Life Easier - An Introduction to Cassandra...DataStax
 

Viewers also liked (20)

Cassandra overview: Um Caso Prático
Cassandra overview:  Um Caso PráticoCassandra overview:  Um Caso Prático
Cassandra overview: Um Caso Prático
 
Bulk Loading Data into Cassandra
Bulk Loading Data into CassandraBulk Loading Data into Cassandra
Bulk Loading Data into Cassandra
 
Webinar | Introducing DataStax Enterprise 4.6
Webinar | Introducing DataStax Enterprise 4.6Webinar | Introducing DataStax Enterprise 4.6
Webinar | Introducing DataStax Enterprise 4.6
 
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
 
Cassandra Community Webinar: Back to Basics with CQL3
Cassandra Community Webinar: Back to Basics with CQL3Cassandra Community Webinar: Back to Basics with CQL3
Cassandra Community Webinar: Back to Basics with CQL3
 
Webinar: Don't Leave Your Data in the Dark
Webinar: Don't Leave Your Data in the DarkWebinar: Don't Leave Your Data in the Dark
Webinar: Don't Leave Your Data in the Dark
 
How much money do you lose every time your ecommerce site goes down?
How much money do you lose every time your ecommerce site goes down?How much money do you lose every time your ecommerce site goes down?
How much money do you lose every time your ecommerce site goes down?
 
Cassandra Community Webinar | In Case of Emergency Break Glass
Cassandra Community Webinar | In Case of Emergency Break GlassCassandra Community Webinar | In Case of Emergency Break Glass
Cassandra Community Webinar | In Case of Emergency Break Glass
 
Don't Let Your Shoppers Drop; 5 Rules for Today’s eCommerce
Don't Let Your Shoppers Drop; 5 Rules for Today’s eCommerceDon't Let Your Shoppers Drop; 5 Rules for Today’s eCommerce
Don't Let Your Shoppers Drop; 5 Rules for Today’s eCommerce
 
Getting Big Value from Big Data
Getting Big Value from Big DataGetting Big Value from Big Data
Getting Big Value from Big Data
 
Webinar: Eventual Consistency != Hopeful Consistency
Webinar: Eventual Consistency != Hopeful ConsistencyWebinar: Eventual Consistency != Hopeful Consistency
Webinar: Eventual Consistency != Hopeful Consistency
 
Webinar | How Clear Capital Delivers Always-on Appraisals on 122 Million Prop...
Webinar | How Clear Capital Delivers Always-on Appraisals on 122 Million Prop...Webinar | How Clear Capital Delivers Always-on Appraisals on 122 Million Prop...
Webinar | How Clear Capital Delivers Always-on Appraisals on 122 Million Prop...
 
Webinar: Getting Started with Apache Cassandra
Webinar: Getting Started with Apache CassandraWebinar: Getting Started with Apache Cassandra
Webinar: Getting Started with Apache Cassandra
 
Webinar | From Zero to 1 Million with Google Cloud Platform and DataStax
Webinar | From Zero to 1 Million with Google Cloud Platform and DataStaxWebinar | From Zero to 1 Million with Google Cloud Platform and DataStax
Webinar | From Zero to 1 Million with Google Cloud Platform and DataStax
 
Cassandra TK 2014 - Large Nodes
Cassandra TK 2014 - Large NodesCassandra TK 2014 - Large Nodes
Cassandra TK 2014 - Large Nodes
 
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...
 
Webinar: 2 Billion Data Points Each Day
Webinar: 2 Billion Data Points Each DayWebinar: 2 Billion Data Points Each Day
Webinar: 2 Billion Data Points Each Day
 
Don’t Get Caught in a PCI Pickle: Meet Compliance and Protect Payment Card Da...
Don’t Get Caught in a PCI Pickle: Meet Compliance and Protect Payment Card Da...Don’t Get Caught in a PCI Pickle: Meet Compliance and Protect Payment Card Da...
Don’t Get Caught in a PCI Pickle: Meet Compliance and Protect Payment Card Da...
 
Cassandra Community Webinar | Make Life Easier - An Introduction to Cassandra...
Cassandra Community Webinar | Make Life Easier - An Introduction to Cassandra...Cassandra Community Webinar | Make Life Easier - An Introduction to Cassandra...
Cassandra Community Webinar | Make Life Easier - An Introduction to Cassandra...
 

More from Patrick McFadin

Successful Architectures for Fast Data
Successful Architectures for Fast DataSuccessful Architectures for Fast Data
Successful Architectures for Fast DataPatrick McFadin
 
Open source or proprietary, choose wisely!
Open source or proprietary,  choose wisely!Open source or proprietary,  choose wisely!
Open source or proprietary, choose wisely!Patrick McFadin
 
An Introduction to time series with Team Apache
An Introduction to time series with Team ApacheAn Introduction to time series with Team Apache
An Introduction to time series with Team ApachePatrick McFadin
 
Laying down the smack on your data pipelines
Laying down the smack on your data pipelinesLaying down the smack on your data pipelines
Laying down the smack on your data pipelinesPatrick McFadin
 
Help! I want to contribute to an Open Source project but my boss says no.
Help! I want to contribute to an Open Source project but my boss says no.Help! I want to contribute to an Open Source project but my boss says no.
Help! I want to contribute to an Open Source project but my boss says no.Patrick McFadin
 
Analyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and CassandraAnalyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and CassandraPatrick McFadin
 
Storing time series data with Apache Cassandra
Storing time series data with Apache CassandraStoring time series data with Apache Cassandra
Storing time series data with Apache CassandraPatrick McFadin
 
A Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax EnterpriseA Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax EnterprisePatrick McFadin
 
Cassandra 3.0 advanced preview
Cassandra 3.0 advanced previewCassandra 3.0 advanced preview
Cassandra 3.0 advanced previewPatrick McFadin
 
Advanced data modeling with apache cassandra
Advanced data modeling with apache cassandraAdvanced data modeling with apache cassandra
Advanced data modeling with apache cassandraPatrick McFadin
 
Introduction to data modeling with apache cassandra
Introduction to data modeling with apache cassandraIntroduction to data modeling with apache cassandra
Introduction to data modeling with apache cassandraPatrick McFadin
 
Apache cassandra and spark. you got the the lighter, let's start the fire
Apache cassandra and spark. you got the the lighter, let's start the fireApache cassandra and spark. you got the the lighter, let's start the fire
Apache cassandra and spark. you got the the lighter, let's start the firePatrick McFadin
 
Owning time series with team apache Strata San Jose 2015
Owning time series with team apache   Strata San Jose 2015Owning time series with team apache   Strata San Jose 2015
Owning time series with team apache Strata San Jose 2015Patrick McFadin
 
Nike Tech Talk: Double Down on Apache Cassandra and Spark
Nike Tech Talk:  Double Down on Apache Cassandra and SparkNike Tech Talk:  Double Down on Apache Cassandra and Spark
Nike Tech Talk: Double Down on Apache Cassandra and SparkPatrick McFadin
 
Apache cassandra & apache spark for time series data
Apache cassandra & apache spark for time series dataApache cassandra & apache spark for time series data
Apache cassandra & apache spark for time series dataPatrick McFadin
 
Real data models of silicon valley
Real data models of silicon valleyReal data models of silicon valley
Real data models of silicon valleyPatrick McFadin
 
Introduction to cassandra 2014
Introduction to cassandra 2014Introduction to cassandra 2014
Introduction to cassandra 2014Patrick McFadin
 
Making money with open source and not losing your soul: A practical guide
Making money with open source and not losing your soul: A practical guideMaking money with open source and not losing your soul: A practical guide
Making money with open source and not losing your soul: A practical guidePatrick McFadin
 
Time series with Apache Cassandra - Long version
Time series with Apache Cassandra - Long versionTime series with Apache Cassandra - Long version
Time series with Apache Cassandra - Long versionPatrick McFadin
 
Time series with apache cassandra strata
Time series with apache cassandra   strataTime series with apache cassandra   strata
Time series with apache cassandra strataPatrick McFadin
 

More from Patrick McFadin (20)

Successful Architectures for Fast Data
Successful Architectures for Fast DataSuccessful Architectures for Fast Data
Successful Architectures for Fast Data
 
Open source or proprietary, choose wisely!
Open source or proprietary,  choose wisely!Open source or proprietary,  choose wisely!
Open source or proprietary, choose wisely!
 
An Introduction to time series with Team Apache
An Introduction to time series with Team ApacheAn Introduction to time series with Team Apache
An Introduction to time series with Team Apache
 
Laying down the smack on your data pipelines
Laying down the smack on your data pipelinesLaying down the smack on your data pipelines
Laying down the smack on your data pipelines
 
Help! I want to contribute to an Open Source project but my boss says no.
Help! I want to contribute to an Open Source project but my boss says no.Help! I want to contribute to an Open Source project but my boss says no.
Help! I want to contribute to an Open Source project but my boss says no.
 
Analyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and CassandraAnalyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and Cassandra
 
Storing time series data with Apache Cassandra
Storing time series data with Apache CassandraStoring time series data with Apache Cassandra
Storing time series data with Apache Cassandra
 
A Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax EnterpriseA Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
 
Cassandra 3.0 advanced preview
Cassandra 3.0 advanced previewCassandra 3.0 advanced preview
Cassandra 3.0 advanced preview
 
Advanced data modeling with apache cassandra
Advanced data modeling with apache cassandraAdvanced data modeling with apache cassandra
Advanced data modeling with apache cassandra
 
Introduction to data modeling with apache cassandra
Introduction to data modeling with apache cassandraIntroduction to data modeling with apache cassandra
Introduction to data modeling with apache cassandra
 
Apache cassandra and spark. you got the the lighter, let's start the fire
Apache cassandra and spark. you got the the lighter, let's start the fireApache cassandra and spark. you got the the lighter, let's start the fire
Apache cassandra and spark. you got the the lighter, let's start the fire
 
Owning time series with team apache Strata San Jose 2015
Owning time series with team apache   Strata San Jose 2015Owning time series with team apache   Strata San Jose 2015
Owning time series with team apache Strata San Jose 2015
 
Nike Tech Talk: Double Down on Apache Cassandra and Spark
Nike Tech Talk:  Double Down on Apache Cassandra and SparkNike Tech Talk:  Double Down on Apache Cassandra and Spark
Nike Tech Talk: Double Down on Apache Cassandra and Spark
 
Apache cassandra & apache spark for time series data
Apache cassandra & apache spark for time series dataApache cassandra & apache spark for time series data
Apache cassandra & apache spark for time series data
 
Real data models of silicon valley
Real data models of silicon valleyReal data models of silicon valley
Real data models of silicon valley
 
Introduction to cassandra 2014
Introduction to cassandra 2014Introduction to cassandra 2014
Introduction to cassandra 2014
 
Making money with open source and not losing your soul: A practical guide
Making money with open source and not losing your soul: A practical guideMaking money with open source and not losing your soul: A practical guide
Making money with open source and not losing your soul: A practical guide
 
Time series with Apache Cassandra - Long version
Time series with Apache Cassandra - Long versionTime series with Apache Cassandra - Long version
Time series with Apache Cassandra - Long version
 
Time series with apache cassandra strata
Time series with apache cassandra   strataTime series with apache cassandra   strata
Time series with apache cassandra strata
 

Recently uploaded

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Exploring ChatGPT Prompt Hacks To Maximally Optimise Your Queries
Exploring ChatGPT Prompt Hacks To Maximally Optimise Your QueriesExploring ChatGPT Prompt Hacks To Maximally Optimise Your Queries
Exploring ChatGPT Prompt Hacks To Maximally Optimise Your QueriesSanjay Willie
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Fact vs. Fiction: Autodetecting Hallucinations in LLMs
Fact vs. Fiction: Autodetecting Hallucinations in LLMsFact vs. Fiction: Autodetecting Hallucinations in LLMs
Fact vs. Fiction: Autodetecting Hallucinations in LLMsZilliz
 

Recently uploaded (20)

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Exploring ChatGPT Prompt Hacks To Maximally Optimise Your Queries
Exploring ChatGPT Prompt Hacks To Maximally Optimise Your QueriesExploring ChatGPT Prompt Hacks To Maximally Optimise Your Queries
Exploring ChatGPT Prompt Hacks To Maximally Optimise Your Queries
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Fact vs. Fiction: Autodetecting Hallucinations in LLMs
Fact vs. Fiction: Autodetecting Hallucinations in LLMsFact vs. Fiction: Autodetecting Hallucinations in LLMs
Fact vs. Fiction: Autodetecting Hallucinations in LLMs
 

Cassandra Virtual Node talk

  • 1. V is for vnodes Patrick McFadin, Sr Solution Architect DataStax ©2012 DataStax 1 Friday, February 15, 13
  • 2. Agenda for today • What is a node? • How vnodes work • Converting your cluster • Benefits ©2012 DataStax 2 Friday, February 15, 13
  • 3. Since the beginning... Cassandra has had... Clusters, which have... Keyspaces, which have... Column Families, which have... ©2012 DataStax 3 Friday, February 15, 13
  • 4. Row Keys Unique in a column family Can be up to 64k in size Can be sorted in the cluster Byte Ordered Partitioner OR... Can be randomly placed in cluster Random Partitioner ©2012 DataStax 4 Friday, February 15, 13
  • 5. Row Keys How do you... • Create a random number? • Make sure the number is big enough? • Make it reproducible? MD5 does the job Input a Row Key MD5 Get a 128 bit number ©2012 DataStax 5 Friday, February 15, 13
  • 6. Row Keys Input Get @PatrickMcFadin MD5 0xcfc2d0610aaa712a8c36711d08a2550a Input Get 8675309 MD5 0x6cc0d36686e6a433aa76f96773852d35 The number produced is a range between: 0 and 2128-1... but Cassandra uses 2127-1 2128 = 340,282,366,920,938,463,463,374,607,431,768,211,456 ...otherwise known as a HUGE number. ©2012 DataStax 6 Friday, February 15, 13
  • 7. ©2012 DataStax 7 Friday, February 15, 13
  • 8. Token Assignment • Each Cassandra node is assigned a token • Each token is a number inside the huge range • Tokens mark the ownership range of Row Keys From: Token = 0 To: Token = 56713727820156410577229101238628035242 From: To: Token = 113427455640312821154458202477256070484 ©2012 DataStax 8 Friday, February 15, 13
  • 9. Row Key to Token Input Get @PatrickMcFadin MD5 276161727147663567581939045564154008842 Token = 0 I’ll Token = 56713727820156410577229101238628035242 take it! Token = 113427455640312821154458202477256070484 ©2012 DataStax 9 Friday, February 15, 13
  • 10. Row Key to Token Input Get @PatrickMcFadin MD5 276161727147663567581939045564154008842 Token = 0 I’ll Token = 56713727820156410577229101238628035242 take it! Token = 113427455640312821154458202477256070484 ©2012 DataStax 9 Friday, February 15, 13
  • 11. Row Key to Token Input Get @PatrickMcFadin MD5 276161727147663567581939045564154008842 Token = 0 I’ll Token = 56713727820156410577229101238628035242 take it! Token = 113427455640312821154458202477256070484 ©2012 DataStax 9 Friday, February 15, 13
  • 12. Cassandra 1.1 Node • Responsible for a single range of keys • Range determined by single token • One server = One token = One node ©2012 DataStax 10 Friday, February 15, 13
  • 13. Cassandra 1.1 Node • Responsible for a single range of keys • Range determined by single token • One server = One token = One node ©2012 DataStax 10 Friday, February 15, 13
  • 14. Cassandra 1.1 Node • Responsible for a single range of keys • Range determined by single token • One server = One token = One node Commodity node? ©2012 DataStax 10 Friday, February 15, 13
  • 15. Cassandra 1.1 Node • Responsible for a single range of keys • Range determined by single token • One server = One token = One node Commodity node? ©2012 DataStax 10 Friday, February 15, 13
  • 16. Cassandra 1.1 Node • Responsible for a single range of keys • Range determined by single token • One server = One token = One node Commodity node? What you really want. ©2012 DataStax 10 Friday, February 15, 13
  • 17. Cassandra 1.1 Node • Responsible for a single range of keys • Range determined by single token • One server = One token = One node Commodity node? What you really want. ©2012 DataStax 10 Friday, February 15, 13
  • 18. Time for a new plan • Hardware is only getting bigger • One node is responsible for more data • Token assignments are a pain ©2012 DataStax 11 Friday, February 15, 13
  • 19. Token assignment (sucks) • Tokens need to be evenly spread • Growing a ring... not good options • Shrinking a ring... not good options • Tokens have to be added to each server config ©2012 DataStax 12 Friday, February 15, 13
  • 20. Enter Virtual Nodes • One server should have many nodes • Each node should be small • Tokens should be automatic Version 1.1 Version 1.2 Server 1 Server 1 1 2 1-4 4 3 ©2012 DataStax 13 Friday, February 15, 13
  • 21. Virtual Node Features • Default 256 Nodes per server • Auto assign tokens • Faster rebuilds of servers • Faster server add to cluster • New partitioner (More later) ©2012 DataStax 14 Friday, February 15, 13
  • 22. Transitioning to vnodes Super easy! Find these lines in your cassandra.yaml file: #num_tokens: initial_token: <some big number> Change to: num_tokens: 256 initial_token: and restart. Repeat on all nodes in cluster ©2012 DataStax 15 Friday, February 15, 13
  • 23. Transitioning to vnodes After all Cassandra instances have been reset Initialize a shuffle operation [patrick@cassandra0 ~]$ cassandra-shuffle create Enable shuffling [patrick@cassandra0 ~]$ cassandra-shuffle enable List pending relocations* [patrick@cassandra0 ~]$ cassandra-shuffle ls Let’s walk through it... *This is a slow op. Be patient. ©2012 DataStax 16 Friday, February 15, 13
  • 24. Existing 1.1 cluster Server 1 Server 2 1-4 4-8 Server 4 Server 3 13-16 9-12 ©2012 DataStax Friday, February 15, 13
  • 25. Set num_tokens and restart Server 1 Server 2 1-4 1-4 4-8 4-8 1-4 1-4 4-8 4-8 Server 4 Server 3 13-16 13-16 9-12 9-12 13-16 13-16 9-12 9-12 ©2012 DataStax 18 Friday, February 15, 13
  • 26. Set num_tokens and restart Server 1 Server 2 1 2 5 6 3 4 7 8 Server 4 Server 3 13 14 9 10 15 16 11 12 ©2012 DataStax Initialize and Enable shuffling... 19 Friday, February 15, 13
  • 27. Shuffle enable Server 1 Server 2 1 5 2 6 13 9 14 10 Server 4 Server 3 3 7 4 8 16 12 15 11 ©2012 DataStax 20 Friday, February 15, 13
  • 28. Shuffle complete Server 1 Server 2 1 5 2 6 13 9 14 10 Server 4 Server 3 3 7 4 8 16 12 15 11 ©2012 DataStax 21 Friday, February 15, 13
  • 29. Ops life with vnodes • Add any number of nodes • No token assignments! • Bigger server? Larger num_tokens • Decommission any number of nodes • New nodetool command: status One more time now! ©2012 DataStax 22 Friday, February 15, 13
  • 30. Bonus new thing • New Partitioner: Murmur3Partitoner • Murmur3 replaces MD5 • Slightly faster than MD5 in certain cases • Go forward partitioner for NEW clusters • No need to convert More details here: https://issues.apache.org/jira/browse/CASSANDRA-3772 ©2012 DataStax 23 Friday, February 15, 13
  • 31. In conclusion... Go out and try some vnode love today! Download Cassandra 1.2 now http://www.datastax.com/download/community http://cassandra.apache.org/download/ ©2012 DataStax 24 Friday, February 15, 13
  • 32. Some handy references http://www.datastax.com/dev/blog/virtual-nodes-in-cassandra-1-2 http://www.datastax.com/dev/blog/upgrading-an-existing-cluster-to-vnodes Follow me on Twitter for more: @PatrickMcFadin ©2012 DataStax 25 Friday, February 15, 13
  • 33. We power the apps that transform business. ©2012 DataStax 26 Friday, February 15, 13