- 1. Introduction to Operations
- 2. The write path
-
- 2.1 Understand what the coordinator role is.
- 2.2 Understand what the Data role of a node is
- 2.3 Describe what a MemTable is
- 2.4 Describe what the commit log is
- 2.5 Explain how durability is achieved in Cassandra
- 2.6 Define what a successful write is within Cassandra
- 2.7 Understand what could cause a write failure in Cassandra
- 2.8 Understand how Cassandra recovers writes via the commit log
- 2.9 Identify the different methods available in Cassandra to monitor writes
- 2.10 Identify the different issues that can cause writes to be slow or fail
- 2.11 Understand how concurrent reads and writes can affect each other
- 3. The read path
-
- 3.1 Describe the sequence of the read path
- 3.2 Understand the role of the read cache in a read operation
- 3.3 Understand the role of the key cache in a read operation
- 3.4 What are bloom filters and how do they improve read performance?
- 3.5 Understand the role of the primary index in a read operation
- 3.6 Identify the various components that Cassandra uses when reading columns versus an entire row
- 3.7 Identify the causes of slow reads or a read failure
- 4. Ring management
-
- 4.1 Describe how repair works
- 4.2 Describe what decommission does
- 4.3 Describe what Remove Token does
- 4.4 Understand how to recover a downed node in your cluster
- 4.5 What is bootstrapping and how does it work?
- 4.6 Describe what a seed node is
- 4.7 How many seeds should a cluster have?
- 4.8 Understand how to set up a multi-datacenter cluster
- 5. Packaging for Cassandra
-
- 5.1 Understand the different Cassandra distributions
- 5.2 How is Cassandra packaged from Apache?
- 5.3 Differentiate between the different DataStax distributions
- 5.4 How are the DataStax distributions shipped?
- 5.5 Where can I download the DataStax distributions?
- 5.6 What is in the DataStax community distribution?
- 5.7 What is in the DataStax Enterprise distributions?
- 6. Tuning
-
- 6.1 Understand Effective methods of tuning Cassandra
- 6.2 Understand how the row cache works
- 6.3 Understand when and when not to use the row cache
- 6.4 Tune the row cache
- 6.5 How do I monitor the row cache?
- 6.6 Understand how the key cache works
- 6.7 Tune the Key cache
- 6.8 How can I properly estimate the size of my cache(s)
- 6.9 How to tune for database performance through data modeling
- 6.10 Identify Hardware and OS causes of performance issues
- 6.11 Determine the appropriate heap size for my Cassandra instance
- 6.12 Understand the different methods of tuning for write performance
- 6.13 Understand how to tune for better garbage collection
- 6.14 Understand how to tune for better compaction performance
- 7. The system Keyspace
-
- 7.1 Identify the different components of the system Keyspace
- 7.2 What can I find in the index info?
- 7.3 Identify the different items that can be found in the location info
- 7.4 Understand what schema migrations are and where to view the data
- 7.5 Locate hint information from the current node
- 7.6 Locate version information from the system Keyspace
- 7.7 How do I manage the system Keyspace if problems occur?
- 8. Managing data
-
- 8.1 Understand and identify the various components of the Cassandra data structure
- 8.2 Establish data directory location(s)
- 8.3 How do Keyspaces fit into the data structure?
- 8.4 How do Column Families fit into the data structure?
- 8.5 Identify the Column Family filename structure
- 8.6 Understand what information is held within a Column Family data file
- 8.7 Understand what a snapshot id
- 8.8 Create and locate snapshots within the Cassandra system
- 9. Sizing
-
- 9.1 Determine how to properly size my Cassandra cluster
- 9.2 How much memory should I give to Java?
- 9.3 What type of CPU should I use?
- 9.4 Determine the optimal disk configuration for the nodes in my Cassandra cluster
- 9.5 Choose the proper disk type for the commit log and data directories
- 9.6 Understand how different compaction strategies effect disk sizing requirements
- 9.7 Determine disk capacity requirements for my Cassandra node
- 9.8 How big can I/should I go for my per node capacity?
- 9.9 Are SSDs good for a Cassandra node?
- 9.10 Understand concerns when using the cloud for a Cassandra cluster
- 10. Troubleshooting
-
- 10.1 Understand how to troubleshoot different issues with Cassandra
- 10.2 Identify the different issues that can cause data corruption in Cassandra
- 10.3 Understand the indicators for data corruption
- 10.4 List the various steps and methods to manually fix corruption issues
- 10.5 Understand what can cause schema problems
- 10.6 Understand how to fix schema migration problems
- 10.7 Identify the different causes of IO problems
- 11. Monitoring
-
- 11.1 Describe what OpsCenter is and how it operates
- 11.2 What can be monitored with OpsCenter?
- 11.3 How does OpsCenter monitor a cluster?
- 11.4 Describe how to monitor a cluster with nodetool
- 11.5 Describe how to monitor a cluster using JConsole
- 11.6 What can I monitor with JConsole?
- 11.7 How do I navigate the JConsole UI?
- 11.8 Describe what the different compaction metrics are
- 11.9 Describe the thread pool monitoring options
- 11.10 Understand how to monitor Read and Write latency in JConsole
- 11.11 Understand how to monitor and adjust your cache(s) in JConsole
- 12. Compaction
-
- 12.1 Describe what compaction is and why it is necessary
- 12.2 Understand legacy forms of compaction if using older version of Cassandra
- 12.3 Describe the compaction process in general
- 12.4 Understand what size tiered compaction is and how it operates
- 12.5 Describe the drawbacks to the size tiered strategy
- 12.6 Understand what level compaction is and how it operates
- 12.7 Describe the different levels of the level compaction process and how they relate
- 12.8 Discuss the benefits and drawbacks of the level compaction process
- 12.9 Describe what cleanup does
- 12.10 Describe what SSTableRebuild does
- 12.11 Describe what SSTableUpdate does
- 12.12 Describe secondary index compactions
- 12.13 Describe what nodetool scrub does
- 12.14 Describe what a validation compaction is
- 12.15 Describe when caches are saved
- 12.16 Describe how to tune compaction in the JVM, and in YAML
- 13. Tombstones
-
- 13.1 Understand how tombstones work and why they are necessary
- 13.2 Understand deletes in a distributed system
- 13.3 Understand how a tombstone works
- 13.4 How is a tombstone created, and what is eviction?
- 13.5 Name the different components of a row that can receive a tombstone
- 13.6 Understand how tombstones are removed from the system
- 13.7 Identify which methods of tombstone removal are better
- 14. Failure
-
- 14.1 Identify the different types of failure that can occur in a distributed system
- 14.2 Understand the effects of failure on the Cassandra system
- 14.3 Understand the consequences of a node failure and how to protect against
- 14.4 Identify the various methods of addressing node failure
- 14.5 Identify the causes of a partial node failure
- 14.6 Understand the various causes of network failure
- 14.7 What are the causes and effects of a network partition?
- 14.8 Understand how to fix a network partition error
