See all blog posts

ScyllaDB University and Training Updates

It’s been a while since my last update. We’ve been busy improving the existing ScyllaDB training material and adding new lessons and labs.

In this post, I’ll survey the latest developments and update you on the live training event taking place later this month.

You can discuss these topics (and more!) on the community forum. Say hello here.

ScyllaDB University LIVE Training

In addition to the self-paced online courses you can take on ScyllaDB University (see below), we host online live training events. These events are a great opportunity to improve your NoSQL and ScyllaDB skills, get hands-on practice, and get your questions answered by our team of experts. The next event is ScyllaDB University LIVE, which will occur 29th of January 29. As usual, we’re planning on having two tracks, an Essentials, and an Advanced track. However, this time we’ll change the format and make each track a complete learning path. Stay tuned for more details, and I hope to see you there.

Save your spot at ScyllaDB University LIVE

ScyllaDB University Content Updates

ScyllaDB University is our online learning platform where you can learn about NoSQL and about ScyllaDB and get some hands-on experience. It includes many different self-paced lessons, meaning you can study whenever you have some free time and continue where you left off. The material is free and all you have to do is create a user account.

We recently added new lessons and updated many existing ones. All of the following topics were added to the course S201: Data Modeling and Application Development.

Start learning

New in the How To Write Better Apps Lesson

General Data Modeling Guidelines

This lesson discusses key principles of NoSQL data modeling, emphasizing a query-driven design approach to ensuring efficient data distribution and balanced workloads. It highlights the importance of selecting high-cardinality primary keys, avoiding bad access patterns, and using ScyllaDB Monitoring to identify and resolve issues such as Hot Partitions and Large Partitions. Neglecting these practices can lead to slow performance, bottlenecks, and potentially unreadable data – underscoring the need for using best practices when creating your data model.

To learn more, you can explore the complete lesson here.

Large Partitions and Collections

This lesson provides insights into common pitfalls in NoSQL data modeling, focusing on issues like large partitions, collections, and improper use of ScyllaDB features. It emphasizes avoiding large partitions due to the impact on performance and demonstrates this with real-world examples and Monitoring data. Collections should generally remain small to prevent high latency. The schema used depends on the use case and on the performance requirements. Practical advice and tools are offered for testing and monitoring.

You can learn more in the complete lesson here.

Hot Partitions, Cardinality and Tombstones

This lesson explores common challenges in NoSQL databases, focusing on hot partitions, low cardinality keys, and tombstones. Hot partitions cause uneven load and bottlenecks, often due to misconfigurations or retry storms. Having many tombstones can degrade read performance due to read amplification. Best practices include avoiding retry storms, using efficient full-table scans over low cardinality views and preferring partition-level deletes to minimize tombstone buildup. Monitoring tools and thoughtful schema design are emphasized for efficient database performance.

You can find the complete lesson here.

Diagnosis and Prevention

This lesson covers strategies to diagnose and prevent common database issues in ScyllaDB, such as large partitions, hot partitions, and tombstone-related inefficiencies. Tools like the nodetool toppartitions command help identify hot partition problems, while features like per-partition rate limits and shard concurrency limits manage load and prevent contention. Properly configuring timeout settings avoids retry storms that exacerbate hot partition problems. For tombstones, using efficient delete patterns helps maintain performance and prevent timeouts during reads. Proactive monitoring and adjustments are emphasized throughout.

You can see the complete lesson here.

New in the Basic Data Modeling Lesson

CQL and the CQL Shell

The lesson introduces the Cassandra Query Language (CQL), its similarities to SQL, and its use in ScyllaDB for data definition and manipulation commands. It highlights the interactive CQL shell (CQLSH) for testing and interaction, alongside a high level overview of drivers. Common data types and collections like Sets, Lists, Maps, and User-Defined Types in ScyllaDB are briefly mentioned. The “Pet Care IoT” lab example is presented, where sensors on pet collars record data like heart rate or temperature at intervals. This demonstrates how CQL is applied in database operations for IoT use cases. This example is used in labs later on.

You can watch the video and complete lesson here.

Data Modeling Overview and Basic Concepts

The new video introduces the basics of data modeling in ScyllaDB, contrasting NoSQL and relational approaches. It emphasizes starting with application requirements, including queries, performance, and consistency, to design models. Key concepts such as clusters, nodes, keyspaces, tables, and replication factors are explained, highlighting their role in distributed data systems. Examples illustrate how tables and primary keys (partition keys) determine data distribution across nodes using consistent hashing. The lesson demonstrates creating keyspaces and tables, showing how replication factors ensure data redundancy and how ScyllaDB maps partition keys to replica nodes for efficient reads and writes.

You can find the complete lesson here.

Primary Key, Partition Key, Clustering Key

This lesson explains the structure and importance of primary keys in ScyllaDB, detailing their two components: the mandatory partition key and the optional clustering key. The partition key determines the data’s location across nodes, ensuring efficient querying, while the clustering key organizes rows within a partition. For queries to be efficient, the partition key must be specified to avoid full table scans. An example using pet data illustrates how rows are sorted within partitions by the clustering key (e.g., time), enabling precise and optimized data retrieval.

Find the complete lesson here.

Importance of Key Selection

This video emphasizes the importance of choosing partition and clustering keys in ScyllaDB for optimal performance and data distribution. Partition keys should have high cardinality to ensure even data distribution across nodes and avoid issues like large or hot partitions. Examples of good keys include unique identifiers like user IDs, while low-cardinality keys like states or ages can lead to uneven load and inefficiency. Clustering keys should align with query patterns, considering the order of rows and prioritizing efficient retrieval, such as fetching recent data for time-sensitive applications. Strategic key selection prevents resource bottlenecks and enhances scalability.

Learn more in the complete lesson.

Data Modeling Lab Walkthrough (three parts)

The new three-part video lesson focuses on key aspects of data modeling in ScyllaDB, emphasizing the design and use of primary keys. It demonstrates creating a cluster and tables using the CQL shell, highlighting how partition keys determine data location and efficient querying while showcasing different queries. Some tables use a Clustering key, which organizes data within partitions, enabling efficient range queries. It explains compound primary keys to enhance query flexibility. Next, an example of a different clustering key order (ascending or descending) is given. This enables query optimization and efficient retrieval of data. Throughout the lab walkthrough, different challenges are presented, as well as data modeling solutions to optimize performance, scalability, and resource utilization.

You can watch the walkthrough here and also take the lab yourself.

New in the Advanced Data Modeling Lesson

Collections and Drivers

The new lesson discusses advanced data modeling in ScyllaDB, focusing on collections (Sets, Lists, Maps, and User-defined types) to simplify models with multi-value fields like phone numbers or emails. It introduces token-aware and shard-aware drivers as optimizations to enhance query efficiency. Token-aware drivers allow clients to send requests directly to replica nodes, bypassing extra hops through coordinator nodes, while shard-aware clients target specific shards within replica nodes for improved performance. ScyllaDB supports drivers in multiple languages like Java, Python, and Go, along with compatibility with Cassandra drivers. An entire course on Drivers is also available.

You can learn more in the complete lesson here.

New in the ScyllaDB Operations Course

Replica level Write/Read Path

The lesson explains ScyllaDB’s read and write paths, focusing on how data is written to Memtables persisted as immutable SSTables. Because the SSTables are immutable, they are compacted periodically. Writes, including updates and deletes, are stored in a commit log before being flushed to SSTables. This ensures data consistency. For reads, a cache is used to optimize performance (also using bloom filters). Compaction merges SSTables to remove outdated data, maintain efficiency, and save storage. ScyllaDB offers different compaction strategies and you can choose the most suitable one based on your use case.

Learn more in the full lesson.

Tracing Demo

The lesson provides a practical demonstration of ScyllaDB’s tracing using a three-node cluster. The tracing tool is showcased as a debugging aid to track request flows and replica responses. The demo highlights how data consistency levels influence when responses are sent back to clients and demonstrates high availability by successfully handling writes even when a node is down, provided the consistency requirements are met.

You can find the complete lesson here.

About Guy Shtub

Head of Training: Guy is experienced in creating products that people love. Previously he co-founded two start-ups. Outside of the office, you can find him climbing, juggling and generally getting off the beaten path. Guy holds a B.SC. degree in Software Engineering from Ben Gurion University.

Blog Subscribe Mascots in Paper Airplane

Subscribe to the ScyllaDB Blog

For Engineers Only. Subscribe to the ScyllaDB Blog. Receive notifications about database-related technology articles and developer how-tos.