Episode 179: Cassandra with Jonathan Ellis

Topics covered
Popular Clips
Episode Highlights
Schema Flexibility
Cassandra's data modeling offers flexibility through static and dynamic schemas, allowing developers to adapt their applications without altering the database structure. explains that static schemas maintain consistent columns across rows, while dynamic schemas enable adding new columns as needed, such as including an SMS number alongside an email address 1. This adaptability is crucial for performance, as it avoids costly joins by allowing millions of columns in a single row, thus enhancing query efficiency in distributed systems 2.
We really want to emphasize avoiding joins. And having the ability to put millions or billions of columns in a single row lets us denormalize your query result set and precompute it into one of these rows.
---
This approach ensures that applications can scale effectively, leveraging Cassandra's strengths in handling large datasets.
Model Comparison
Cassandra's approach to data modeling contrasts sharply with traditional relational databases, focusing on denormalization to optimize performance. illustrates this with Twissandra, a Twitter clone, where data is stored in a way that precomputes queries, eliminating the need for joins 3. This method involves creating separate column families for each query type, allowing for efficient data retrieval without the overhead of relational joins.
In the relational model, the idea you normalize everything, every piece of data is in one place. You can always find the data you want if you're willing to do enough joins.
---
Ellis emphasizes that Cassandra's model is better suited for applications requiring scalability and high query volumes, as it avoids the limitations of single-machine databases 4.
Related Episodes


Episode 413: Spencer Kimball on CockroachDB
Answers 383 questions

SE-Radio Episode 243: RethinkDB with Slava Akhmechet
Answers 383 questions

Episode 194: Michael Hunger on Graph Databases
Answers 383 questions

Episode 209: Josiah Carlson on Redis
Answers 383 questions

Episode 393: Jay Kreps on Enterprise Integration Architecture with a Kafka Event Log
Answers 383 questions

Episode 189: Eric Lubow on Polyglot Persistence
Answers 383 questions
Episode 417: Alex Petrov on Database Storage Engines
Answers 383 questions

Episode 44: Interview Brian Goetz and David Holmes
Answers 383 questions
SE Radio 560: Sugu Sougoumarane on Distributed SQL Databases
Answers 383 questionsEpisode 29: Concurrency Pt.3
Answers 383 questions

Episode 34: Enterprise Architecture
Answers 383 questions

Episode 171: Scala Update with Martin Odersky
Answers 383 questions

Episode 133: Continuous Integration with Chris Read
Answers 383 questions

364: Peter Zaitsev on Choosing the Right Open Source Database
Answers 383 questions

Episode 22: Feedback
Answers 383 questions














