Apache Cassandra — Streams and Memory
summary
An exploration of Apache Cassandra internals from a Java developer perspective, focusing on threading and memory. Covers how Cassandra organizes thread management and thread pools, monitoring options, whether it uses Disruptor, and the concurrency problems it addresses; and examines where data lives in memory (heap vs off-heap), the data structures used, memory consumption, and how to monitor it — based on Apache Cassandra 4.0.
AI-written summary · about
chapters (30)
- 0:00Introduction
- 1:11Apache Cassandra 4.0 overview
- 2:35Monitoring streams in Cassandra
- 4:04Virtual tables and metrics
- 5:08Task queues and execution
- 6:11Periodic tasks and exceptions
- 7:18Timers and timeouts in Cassandra
- 10:12Binary heap for tasks
- 11:39Timing wheel for scheduling
- 13:50Hierarchical timing wheel
- 14:54Task prioritization
- 17:03Stream priority issues
- 19:56Stream affinity
- 20:38Stream overhead
- 23:49Executor optimizations
- 24:11Cassandra threads
- 26:42PipeCall for buffers
- 29:15PipeCall implementations compared
- 30:41Handling OutOfMemoryError
- 33:12OutOfMemoryError and DirectBuffer
- 34:13Measuring memory usage
- 36:18Data structures and memory
- 38:05Schema-level memory optimization
- 39:10Memtable to SSTable replacement
- 40:36Thread coordination on flush
- 42:23GC issues and Bloom Filters
- 44:10GC issues and MemTable
- 45:55GC relevance
- 46:18Why study Cassandra
- 47:30Summary and Q&A
related talks
46mCassandra Memory Explained. Cassandra memory footprint
53mApache Cassandra. Inception - all you need to know
46mApache Cassandra: 8 years in production
40mApache Cassandra in High-Performance Systems Development
29mCassandra - an introduction
47mPatterns for Persistence and Streaming in Cloud Architectures
42mData in Motion: Streaming Static Data Efficiently in Akka Persistence
31mApache Cassandra Analytics: A Recipe to Move Petabytes of Data
