Presentation: Hell is ... other nodes!
Key Takeaways
- Learn about epidemic dissemination as an architectural principle.
- Discuss motivations for Cassandra membership and gossip protocol.
- Understand details, trade-offs, and direction of Cassandra’s gossip subsystems.
Abstract
This talk will cover the in-flight progress of the new and improved membership and gossip subsystems in Apache Cassandra. We'll discuss the motivations for the changes, the overall design and architecture of the new subsystems, as well as digging into some of the implementation details and trade-offs.
Interview with Jason Brown
QCon: What makes Cassandra different than other NoSQL databases?
Jason: The reason I've found Cassandra interesting is it’s ability to scale to thousands of nodes, and how it can scale across multiple data center seamlessly. I mean none of these are completely free or cheap, in any system. There are certain tradeoffs, but Cassandra is a good step in the right direction when trying to tackle the problems of converging replicated data across datacenters.
QCon: What is membership and the gossip subsystem?
Jason: Membership is basically what nodes are in the cluster. It also states which nodes own what part of the overall data range, because each node can’t own the entire thing. (If a node could hold the entire data range, then you don’t need a distributed database.)
Gossip is a distributed systems technique to propagate information across a network of nodes. In cassandra, it is specifically used for communicating about membership and other known metadata throughout the entire cluster. This notion of epidemic dissemination much like a medical epidemics. When one person is infected, that person can share that infection with another person. That person spreads to another and so on until everybody keeps spreading this infection. Obviously, in health epidemics (like disease outbreaks) that's a really bad thing. However, in computer science this is actually a good thing.
QCon: Your title is "Hell is other nodes". What does that mean?
Jason: Excellent question. There is a play written by the 20th century French existentialist Jean-Paul Sartre called by "No Exit". In the play, 3 people die, and they go to hell. Hell is basically a locked room from which they cannot ever leave. So Hell is being with each other for eternity. Essentially how each person views the others, and how they choose to interact is really the notion behind the famous quote, “hell is other people”.
A few years ago I jokingly said "hell is other nodes", when talking about distributive systems. I thought it was kind of a cute paraphrase, and now I've finally found a chance to use it. The system I am discussing is really how nodes talk about each other and what they know about each other. Further, it’s not only how they communicate to the other nodes, but also what they communicate about the other nodes. So they can be seen as trapped in a room with each other much like the characters in the hell of "No Exit".
QCon: Why should someone come to your talk?
Jason: If you are someone either running or interested in running distributed systems, you can see what other systems have run into in this talk. You can see how we are choosing to resolve those issues.
Similar Talks
Tracks
Covering innovative topics
Monday Nov 16
-
Architectures You've Always Wondered About
Silicon Valley to Beijing: Exploring some of the world's most intrigiuing architectures
-
Applied Machine Learning
How to start using machine learning and data science in your environment today. Latest and greatest best practices.
-
Browser as a platform (Realizing HTML5)
Exciting new standards like Service Workers, Push Notifications, and WebRTC are making the browser a formidable platform.
-
Modern Languages in Practice
The rise of 21st century languages: Go, Rust, Swift
-
Org Hacking
Our most innovative companies reimagining the org structure
-
Design Thinking
Level up your approach to problem solving and leave everything better than you found it.
Tuesday Nov 17
-
Containers in Practice
Build resilient, reactive systems one service at a time.
-
Architecting for Failure
Your system will fail. Take control before it takes you with it.
-
Modern CS in the Real World
Real-world Industry adoption of modern CS ideas
-
The Amazing Potential of .NET Open Source
From language design in the open to Rx.NET, there is amazing potential in an Open Source .NET
-
Optimizing You
Keeping life in balance is always a challenge. Learning lifehacks
-
Unlearning Performance Myths
Lessons on the reality of performance, scale, and security
Wednesday Nov 18
-
Streaming Data @ Scale
Real-time insights at Cloud Scale & the technologies that make them happen!
-
Taking Java to the Next Level
Modern, lean Java. Focuses on topics that push Java beyond how you currently think about it.
-
The Dark Side of Security
Lessons from your enemies
-
Taming Distributed Architecture
Reactive architectures, CAP, CRDTs, consensus systems in practice
-
JavaScript Everywhere!
Javascript is Everywhere. Learn why
-
Culture Reimagined
Lessons on building highly effective organizations