|
Session 1: Cassandra Overview
-
Why We Need Cassandra
-
High level Cassandra Overview
-
Cassandra Features
-
Basic Cassandra Installation and Configuration
Session 2: Cassandra Architecture and CQL Overview
-
Cassandra Architecture Overview
-
Cassandra Clusters and Rings
-
Data Replication in Cassandra
-
Cassandra Consistency / Eventual Consistency
-
Introduction to CQL
-
Defining Tables with a Single Primary Key
-
Using cqlsh for Interactive Querying
-
Selecting and Inserting/Upserting Data with CQL
-
Data Replication and Distribution
-
Basic Data Types (including uuid, timeuuid)
Session 3: Data Modeling and CQL Core Concepts
-
Defining a Compound Primary Key
-
CQL for Compound Primary Keys
-
Partition Keys and Data Distribution
-
Clustering Columns
-
Overview of Internal Data Organization
-
Additional Querying Capabilities
-
Result Ordering - ORDER BY and CLUSTERING ORDER BY
-
UPDATE and DELETE Queries
-
Result Filtering, ALLOW FILTERING
-
Batch Queries
-
Data Modeling Guidelines
-
Denormalization
-
Data Modeling Workflow
-
Data Modeling Principles
-
Primary Key Considerations
-
Composite Partition Keys
-
Defining with CQL
-
Data Distribution with Composite Partition Key
-
Overview of Internal Data Organization
Session 4: Additional CQL Capabilities
-
Indexing
-
Primary/Partition Keys and Pagination with token()
-
Secondary Indexes and Usage Guidelines
-
Cassandra Counters
-
Counter Structure and Definition
-
Using Counters
-
Counter Limitations
-
Cassandra collections
-
Collection Structure and Uses
-
Defining Collections (set, list, and map)
-
Querying Collections (Including Insert, Update, Delete)
-
Limitations
-
Overview of Internal Storage Organization
-
Static Column: Overview and Usage
-
Static Column Guidelines
-
Materialized View: Overview and Usage
-
Materialized View Guidelines
Session 5: Data Consistency In Cassandra
-
Overview of Consistency in Cassandra
-
CAP Theorem
-
Eventual (Tunable) Consistency in C* - ONE, QUORUM, ALL
-
Choosing CL ONE
-
Choosing CL QUORUM
-
Achieving Immediate Consistency
-
Using other Consistency Levels
-
Internal Repair Mechanisms (Read Repair, Hinted Handoff)
|
Session 6: Lightweight Transactions (LWT)/ Compare and Set (CAS)
-
Overview of Lightweight Transactions
-
Using LWT, the [applied] Column
-
IF EXISTS, IF NOT EXISTS, Other IF conditions
-
Basic CAS Internals
-
Overhead and Guidelines
Session 7: Practical Considerations
-
Dealing with Write Failure
-
Unavailable Nodes and Node Failure
-
Requirements for Write Operations
-
Key and Row Caches
-
Cache Overview
-
Usage Guidelines
-
Multi-Data Center Support
-
Overview
-
Replication Factor Configuration
-
Additional Consistency Levels - LOCAL/EACH QUORUM
-
Deletes
-
CQL for Deletion
-
Tombstones
-
Usage Guidelines
Session 7: The Java Client API
-
API Overview
-
Introduction
-
Architecture and Features
-
Connecting to a Cluster
-
Cluster and Cluster.Builder
-
Contact Points, Connecting to a Cluster
-
Session Overview and API
-
Working with Sessions
-
The Query API
-
Overview
-
Dynamic Queries, Statement, SimpleStatement
-
Processing Query Results, ResultSet, Row
-
PreparedStatement, BoundStatement
-
Binding Values and Querying with PreparedStatements
-
CQL to Java Type Mapping
-
Working with UUIDs
-
Working with Time/Date Values
-
Working with Batches of SimpleStatement and PreparedStatement
-
Dynamic Queries and QueryBuilder
-
QueryBuilder Overview and API
-
Building SELECT, DELETE, INSERT, and UPDATE Queries
-
Creating WHERE Clauses
-
Other Query Examples
-
Configuring Query Behavior
-
Setting LIMIT and TTL
-
Working with Consistency
-
Using LWT
-
Working with Driver Policies
-
Load Balancing Policies - RoundRobinPolicy, DCAwareRoundRobinPolicy
-
Retry Policies - DefaultRetryPolicy, DowngradingConsistencyRetryPolicy, Other Policies
-
Reconnection Policies
-
Asynchronous Querying Overview
-
Synchronous vs. Asynchronous Querying
-
Executing Asynchronous Queries
-
java.util.concurrent.Future
-
Cassandra ResultSetFuture
-
Future Result Processing
|