SlideShare a Scribd company logo
Luke Tillman
Technical Evangelist at DataStax (@LukeTillman)
• Evangelist with a focus on Developers
• Long-time Developer on RDBMS (lots of .NET)
Who are you?!
2
The Good ol' Relational Database
© 2015. All Rights Reserved. 3
First proposed in 1970
The Relational Database Makes us Feel Good
© 2015. All Rights Reserved. 4
SQL is ubiquitous and allows
flexible querying
Data modeling is well understood
(3NF or higher)
ACID guarantees make us feel good
© 2015. All Rights Reserved. 5
Building and Scaling our Applications
© 2015. All Rights Reserved. 5
Building and Scaling our Applications
© 2015. All Rights Reserved. 5
Building and Scaling our Applications
I'm getting too old for this…
Scaling Up
© 2015. All Rights Reserved. 8
All these JOINs are Killing Us
9
SELECT
array_agg(players),
player_teams
FROM (
SELECT DISTINCT
t1.t1player AS players,
t1.player_teams
FROM (
SELECT
p.playerid AS t1id,
concat(p.playerid, ':', p.playername, ' ') AS t1player,
array_agg (pl.teamid ORDER BY pl.teamid) AS player_teams
FROM player p
LEFT JOIN plays pl
ON p.playerid = pl.playerid
GROUP BY p.playerid, p.playername
) t1
INNER JOIN (
SELECT
p.playerid AS t2id,
array_agg (pl.teamid ORDER BY pl.teamid) AS player_teams
FROM player p
LEFT JOIN plays pl
ON p.playerid = pl.playerid
GROUP BY p.playerid, p.playername
) t2
ON t1.player_teams = t2.player_teams
AND t1.t1id <> t2.t2id
) innerQuery
© 2015. All Rights Reserved.
All these JOINs are Killing Us
9
SELECT * FROM denormalized_view
Let's Denormalize!
© 2015. All Rights Reserved.
All these JOINs are Killing Us
9
But I thought data modeling was 3NF or
higher?! There can be only one!
© 2015. All Rights Reserved.
Read Replication
12
Client
Users Data
Replica 2
Replica 1
Primary
Write Requests
ReadRequests
© 2015. All Rights Reserved.
Replication Lag
Consistent results? Nope, now
eventually consistent
Replication speed is limited by
the speed of light
Sharding
© 2015. All Rights Reserved. 13
Client
Router
A-F G-M N-T U-Z
Users Data
Queries that aren't on the shard key
require scatter-gather
Resharding can be a painful, manual process
Replication for Availability
© 2015. All Rights Reserved. 14
Client
Users Data
Failover
Process
Monitor
Failover
Failover takes time. How long are
you offline while it's happening?
And while you're offline...
© 2015. All Rights Reserved. 15
Putting it All Together
© 2015. All Rights Reserved. 16
Client
Users Data
Putting it All Together
© 2015. All Rights Reserved. 16
Client
Users Data
Sharding
A-F G-M N-T U-Z
Putting it All Together
© 2015. All Rights Reserved. 16
Client
Users Data
Sharding
Router
A-F G-M N-T U-Z
Putting it All Together
© 2015. All Rights Reserved. 16
Client
Users Data
Router
A-F G-M N-T U-Z
Sharding and Replication (and probably Denormalization)
Putting it All Together
© 2015. All Rights Reserved. 16
Client
Users Data
Failover
Process
Router
A-F G-M N-T U-Z
Sharding and Replication (and probably Denormalization)
Putting it All Together
© 2015. All Rights Reserved. 16
Client
Users Data
Failover
Process
Monitor
Failover
Router
A-F G-M N-T U-Z
Sharding and Replication (and probably Denormalization)
Putting it All Together
© 2015. All Rights Reserved. 16
Client
Users Data
Failover
Process
Monitor
Failover
Router
A-F G-M N-T U-Z
Sharding and Replication (and probably Denormalization)
Putting it All Together
© 2015. All Rights Reserved. 16
Client
Users Data
Failover
Process
Monitor
Failover
Router
A-F G-M N-T U-Z
Replication Lag
Sharding and Replication (and probably Denormalization)
Putting it All Together
© 2015. All Rights Reserved. 16
Client
Users Data
Failover
Process
Monitor
Failover
Router
A-F G-M N-T U-Z
Replication Lag
Sharding and Replication (and probably Denormalization)
Putting it All Together
© 2015. All Rights Reserved. 16
Client
Users Data
Failover
Process
Monitor
Failover
Router
A-F G-M N-T U-Z
Replication Lag
Sharding and Replication (and probably Denormalization)
Putting it All Together
© 2015. All Rights Reserved. 16
Client
Users Data
Failover
Process
Monitor
Failover
Router
A-F G-M N-T U-Z
Replication Lag
Sharding and Replication (and probably Denormalization)
What is Cassandra?
© 2015. All Rights Reserved. 27
A linearly scaling and fault tolerant
distributed database
What is Cassandra?
© 2015. All Rights Reserved. 28
A linearly scaling and fault tolerant
distributed database
• Data spread over many nodes
• All nodes participate in a cluster
• All nodes are equal
• No SPOF (shared nothing)
• Run on commodity hardware
What is Cassandra?
© 2015. All Rights Reserved. 29
A linearly scaling and fault tolerant
distributed database
• Have more data? Add more nodes.
• Need more throughput? Add more nodes.
What is Cassandra?
© 2015. All Rights Reserved. 30
A linearly scaling and fault tolerant
distributed database
• Nodes down != Database Down
• Datacenter down != Database Down
• No middle of the night phone calls
Multi Datacenter with Cassandra
© 2015. All Rights Reserved. 31
America Zamunda
Client
Fault Tolerance in Cassandra
© 2015. All Rights Reserved. 32
You have the power to control fault
tolerance in Cassandra
Replication Factor
© 2015. All Rights Reserved. 33
How many copies of the data should exist?
Client
Write Beetlejuice
RF=3
Beetlejuice Beetlejuice
Beetlejuice
Consistency Level
© 2015. All Rights Reserved. 34
How many replicas do we need to hear
from before we acknowledge?
CL=ONE
Copy #1 Copy #2
Copy #3
Client
Consistency Level
© 2015. All Rights Reserved. 35
How many replicas do we need to hear
from before we acknowledge?
CL=QUORUM
Copy #1 Copy #2
Copy #3
Client
Consistency Levels and Speed
© 2015. All Rights Reserved. 36
Use a lower consistency level like ONE to
get faster reads and writes
Consistency Levels and Eventual Consistency
© 2015. All Rights Reserved. 37
Use a higher consistency level like
QUORUM if you don’t want to be surprised
by data from the past (stale data)
Before you get too excited...
© 2015. All Rights Reserved. 38
Cassandra is not...
• A Data Ocean, Lake, or Pond
• An In-Memory Database
• A Queue
• A magical database luck dragon
that will solve all your database
use cases and problems
© 2015. All Rights Reserved. 39
How bad of an idea?
© 2015. All Rights Reserved. 40
Actually a 90's movie Actually a 70's movie
Why Arnold?! Why?
Cassandra is good when...
• Uptime is a top priority
• You have unpredictable or high
scaling requirements
• The workload is transactional (i.e.
OLTP not OLAP)
• You are willing to put the time and
effort into understanding how it
works and how to use it
© 2015. All Rights Reserved. 41
© 2015. All Rights Reserved. 42
Movie References
(in order of appearance)
Leap of Faith (1992)
Patton (1970)
The Aristocats (1970)
When Harry Met Sally (1989)
Beverly Hills Cop (1984)
Lethal Weapon (1987)
Big (1988)
Trading Places (1983)
Highlander (1986)
© 2015. All Rights Reserved. 42
Spaceballs (1987)
Rain Man (1988)
Ghostbusters (1984)
Gremlins (1984)
Star Trek II: The Wrath of Khan (1982)
Star Wars Episode VI: Return of the Jedi (1983)
Weekend at Bernie's (1989)
Coming to America (1988)
Masters of the Universe (1987)
Beetlejuice (1988)
The Goonies (1985)
Top Gun (1986)
© 2015. All Rights Reserved. 42
Back to the Future (1985)
Footloose (1984)
The NeverEnding Story (1984)
Batman and Robin (1997)
Star Wars (1977)
Twins (1988)
The Karate Kid (1984)
Find me on Twitter: @LukeTillman
Thank You

More Related Content

PPTX
Army of arm - NYC downtown tech meetup
PDF
Running Hadoop as Service in AltiScale Platform
PDF
Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
PDF
IMCSummit 2015 - Day 2 Developer Track - Implementing a Highly Scalable In-Me...
PDF
Application architectures with hadoop – big data techcon 2014
PPTX
IMCSummite 2016 Breakout - Nikita Ivanov - Apache Ignite 2.0 Towards a Conver...
PPTX
ODSC West TidalScale Keynote Slides
PPTX
TidalScale Overview
Army of arm - NYC downtown tech meetup
Running Hadoop as Service in AltiScale Platform
Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
IMCSummit 2015 - Day 2 Developer Track - Implementing a Highly Scalable In-Me...
Application architectures with hadoop – big data techcon 2014
IMCSummite 2016 Breakout - Nikita Ivanov - Apache Ignite 2.0 Towards a Conver...
ODSC West TidalScale Keynote Slides
TidalScale Overview

What's hot (15)

PDF
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
PPTX
Expedia Group: Our Migration Journey from Apache Cassandra to ScyllaDB
PPTX
C* Capacity Forecasting (Ajay Upadhyay, Jyoti Shandil, Arun Agrawal, Netflix)...
PDF
2017 DB Trends for Powering Real-Time Systems of Engagement
PPTX
ACID & CAP: Clearing CAP Confusion and Why C In CAP ≠ C in ACID
PPTX
Apache Kudu (Incubating): New Hadoop Storage for Fast Analytics on Fast Data ...
PPTX
DEVNET-1166 Open SDN Controller APIs
PPTX
20150314 sahara intro and the future plan for open stack meetup
PPTX
Webinar: Performance vs. Cost - Solving The HPC Storage Tug-of-War
PPTX
Webinar: The Bifurcation of the Flash Market
PPTX
There are 250 Database products, are you running the right one?
PDF
IMCSummit 2015 - Day 2 Keynote - In-Memory Computing and the Emergence of Tie...
PPTX
Part 2: Cloudera’s Operational Database: Unlocking New Benefits in the Cloud
PDF
HUG_Ireland_Apache_Arrow_Tomer_Shiran
PPTX
Increase Your Mission Critical Application Performance without Breaking the B...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
Expedia Group: Our Migration Journey from Apache Cassandra to ScyllaDB
C* Capacity Forecasting (Ajay Upadhyay, Jyoti Shandil, Arun Agrawal, Netflix)...
2017 DB Trends for Powering Real-Time Systems of Engagement
ACID & CAP: Clearing CAP Confusion and Why C In CAP ≠ C in ACID
Apache Kudu (Incubating): New Hadoop Storage for Fast Analytics on Fast Data ...
DEVNET-1166 Open SDN Controller APIs
20150314 sahara intro and the future plan for open stack meetup
Webinar: Performance vs. Cost - Solving The HPC Storage Tug-of-War
Webinar: The Bifurcation of the Flash Market
There are 250 Database products, are you running the right one?
IMCSummit 2015 - Day 2 Keynote - In-Memory Computing and the Emergence of Tie...
Part 2: Cloudera’s Operational Database: Unlocking New Benefits in the Cloud
HUG_Ireland_Apache_Arrow_Tomer_Shiran
Increase Your Mission Critical Application Performance without Breaking the B...
Ad

Viewers also liked (16)

PDF
From Monolith to Microservices with Cassandra, gRPC, and Falcor (from Cassand...
PDF
Introduction to Data Modeling with Apache Cassandra
PDF
Building your First Application with Cassandra
PDF
Introduction to Apache Cassandra
PDF
Event Sourcing with Cassandra (from Cassandra Japan Meetup in Tokyo March 2016)
PDF
Getting started with DataStax .NET Driver for Cassandra
PDF
Avoiding the Pit of Despair - Event Sourcing with Akka and Cassandra
PDF
A Deep Dive into Apache Cassandra for .NET Developers
PDF
L'automatisation dans les reseaux d'entrerprise
PPTX
HTTP2 and gRPC
PDF
The adventure of enabling API management in a large enterprise (Josh Wang)
PDF
Building High Performance APIs In Go Using gRPC And Protocol Buffers
PDF
Flogo - A Golang-powered Open Source IoT Integration Framework (Gophercon)
PDF
NextGen Server/Client Architecture - gRPC + Unity + C#
PDF
GRPC 101 - DevFest Belgium 2016
PDF
Scale a Swagger based Web API (Guillaume Laforge)
From Monolith to Microservices with Cassandra, gRPC, and Falcor (from Cassand...
Introduction to Data Modeling with Apache Cassandra
Building your First Application with Cassandra
Introduction to Apache Cassandra
Event Sourcing with Cassandra (from Cassandra Japan Meetup in Tokyo March 2016)
Getting started with DataStax .NET Driver for Cassandra
Avoiding the Pit of Despair - Event Sourcing with Akka and Cassandra
A Deep Dive into Apache Cassandra for .NET Developers
L'automatisation dans les reseaux d'entrerprise
HTTP2 and gRPC
The adventure of enabling API management in a large enterprise (Josh Wang)
Building High Performance APIs In Go Using gRPC And Protocol Buffers
Flogo - A Golang-powered Open Source IoT Integration Framework (Gophercon)
NextGen Server/Client Architecture - gRPC + Unity + C#
GRPC 101 - DevFest Belgium 2016
Scale a Swagger based Web API (Guillaume Laforge)
Ad

Similar to Relational Scaling and the Temple of Gloom (from Cassandra Summit 2015) (20)

PDF
Vertafore: Database Evaluation - Selecting Apache Cassandra
PPTX
Two Approaches You Must Consider when Architecting Radar Systems
PPTX
Syncsort, Tableau, & Cloudera present: Break the Barriers to Big Data Insight
PPT
Reporting from the Trenches: Intuit & Cassandra
PPTX
Syncsort, Tableau, & Cloudera present: Break the Barriers to Big Data Insight
PPTX
Syncsort, Tableau, & Cloudera present: Break the Barriers to Big Data Insight
PDF
IMCSummit 2015 - 1 IT Business - The Evolution of Pivotal Gemfire
PDF
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
PDF
Stop the Blame Game with Increased Visibility of your Mobile-to-Mainframe IT ...
PDF
[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...
PDF
The Future of Data Management: The Enterprise Data Hub
ODP
MySQL Cluster
PPTX
IIMB presentation
PDF
Azure + DataStax Enterprise Powers Office 365 Per User Store
PDF
Driving Down Costs of z Systems™ Storage
PDF
Cassandra and IoT
PDF
Unlocking Big Data Insights with MySQL
PDF
Top 10 Tips for an Effective Postgres Deployment
 
PDF
Pros_and_Cons_of_DW_Apps pdf.pdf
PDF
Horses for Courses: Database Roundtable
Vertafore: Database Evaluation - Selecting Apache Cassandra
Two Approaches You Must Consider when Architecting Radar Systems
Syncsort, Tableau, & Cloudera present: Break the Barriers to Big Data Insight
Reporting from the Trenches: Intuit & Cassandra
Syncsort, Tableau, & Cloudera present: Break the Barriers to Big Data Insight
Syncsort, Tableau, & Cloudera present: Break the Barriers to Big Data Insight
IMCSummit 2015 - 1 IT Business - The Evolution of Pivotal Gemfire
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Stop the Blame Game with Increased Visibility of your Mobile-to-Mainframe IT ...
[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...
The Future of Data Management: The Enterprise Data Hub
MySQL Cluster
IIMB presentation
Azure + DataStax Enterprise Powers Office 365 Per User Store
Driving Down Costs of z Systems™ Storage
Cassandra and IoT
Unlocking Big Data Insights with MySQL
Top 10 Tips for an Effective Postgres Deployment
 
Pros_and_Cons_of_DW_Apps pdf.pdf
Horses for Courses: Database Roundtable

Recently uploaded (20)

PPTX
Big Data Technologies - Introduction.pptx
PDF
KodekX | Application Modernization Development
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Cloud computing and distributed systems.
PDF
Empathic Computing: Creating Shared Understanding
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
cuic standard and advanced reporting.pdf
PDF
Approach and Philosophy of On baking technology
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Big Data Technologies - Introduction.pptx
KodekX | Application Modernization Development
Advanced methodologies resolving dimensionality complications for autism neur...
Mobile App Security Testing_ A Comprehensive Guide.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Cloud computing and distributed systems.
Empathic Computing: Creating Shared Understanding
Unlocking AI with Model Context Protocol (MCP)
Network Security Unit 5.pdf for BCA BBA.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Building Integrated photovoltaic BIPV_UPV.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
cuic standard and advanced reporting.pdf
Approach and Philosophy of On baking technology
NewMind AI Weekly Chronicles - August'25 Week I
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Relational Scaling and the Temple of Gloom (from Cassandra Summit 2015)

  • 1. Luke Tillman Technical Evangelist at DataStax (@LukeTillman)
  • 2. • Evangelist with a focus on Developers • Long-time Developer on RDBMS (lots of .NET) Who are you?! 2
  • 3. The Good ol' Relational Database © 2015. All Rights Reserved. 3 First proposed in 1970
  • 4. The Relational Database Makes us Feel Good © 2015. All Rights Reserved. 4 SQL is ubiquitous and allows flexible querying Data modeling is well understood (3NF or higher) ACID guarantees make us feel good
  • 5. © 2015. All Rights Reserved. 5 Building and Scaling our Applications
  • 6. © 2015. All Rights Reserved. 5 Building and Scaling our Applications
  • 7. © 2015. All Rights Reserved. 5 Building and Scaling our Applications I'm getting too old for this…
  • 8. Scaling Up © 2015. All Rights Reserved. 8
  • 9. All these JOINs are Killing Us 9 SELECT array_agg(players), player_teams FROM ( SELECT DISTINCT t1.t1player AS players, t1.player_teams FROM ( SELECT p.playerid AS t1id, concat(p.playerid, ':', p.playername, ' ') AS t1player, array_agg (pl.teamid ORDER BY pl.teamid) AS player_teams FROM player p LEFT JOIN plays pl ON p.playerid = pl.playerid GROUP BY p.playerid, p.playername ) t1 INNER JOIN ( SELECT p.playerid AS t2id, array_agg (pl.teamid ORDER BY pl.teamid) AS player_teams FROM player p LEFT JOIN plays pl ON p.playerid = pl.playerid GROUP BY p.playerid, p.playername ) t2 ON t1.player_teams = t2.player_teams AND t1.t1id <> t2.t2id ) innerQuery © 2015. All Rights Reserved.
  • 10. All these JOINs are Killing Us 9 SELECT * FROM denormalized_view Let's Denormalize! © 2015. All Rights Reserved.
  • 11. All these JOINs are Killing Us 9 But I thought data modeling was 3NF or higher?! There can be only one! © 2015. All Rights Reserved.
  • 12. Read Replication 12 Client Users Data Replica 2 Replica 1 Primary Write Requests ReadRequests © 2015. All Rights Reserved. Replication Lag Consistent results? Nope, now eventually consistent Replication speed is limited by the speed of light
  • 13. Sharding © 2015. All Rights Reserved. 13 Client Router A-F G-M N-T U-Z Users Data Queries that aren't on the shard key require scatter-gather Resharding can be a painful, manual process
  • 14. Replication for Availability © 2015. All Rights Reserved. 14 Client Users Data Failover Process Monitor Failover Failover takes time. How long are you offline while it's happening?
  • 15. And while you're offline... © 2015. All Rights Reserved. 15
  • 16. Putting it All Together © 2015. All Rights Reserved. 16 Client Users Data
  • 17. Putting it All Together © 2015. All Rights Reserved. 16 Client Users Data Sharding A-F G-M N-T U-Z
  • 18. Putting it All Together © 2015. All Rights Reserved. 16 Client Users Data Sharding Router A-F G-M N-T U-Z
  • 19. Putting it All Together © 2015. All Rights Reserved. 16 Client Users Data Router A-F G-M N-T U-Z Sharding and Replication (and probably Denormalization)
  • 20. Putting it All Together © 2015. All Rights Reserved. 16 Client Users Data Failover Process Router A-F G-M N-T U-Z Sharding and Replication (and probably Denormalization)
  • 21. Putting it All Together © 2015. All Rights Reserved. 16 Client Users Data Failover Process Monitor Failover Router A-F G-M N-T U-Z Sharding and Replication (and probably Denormalization)
  • 22. Putting it All Together © 2015. All Rights Reserved. 16 Client Users Data Failover Process Monitor Failover Router A-F G-M N-T U-Z Sharding and Replication (and probably Denormalization)
  • 23. Putting it All Together © 2015. All Rights Reserved. 16 Client Users Data Failover Process Monitor Failover Router A-F G-M N-T U-Z Replication Lag Sharding and Replication (and probably Denormalization)
  • 24. Putting it All Together © 2015. All Rights Reserved. 16 Client Users Data Failover Process Monitor Failover Router A-F G-M N-T U-Z Replication Lag Sharding and Replication (and probably Denormalization)
  • 25. Putting it All Together © 2015. All Rights Reserved. 16 Client Users Data Failover Process Monitor Failover Router A-F G-M N-T U-Z Replication Lag Sharding and Replication (and probably Denormalization)
  • 26. Putting it All Together © 2015. All Rights Reserved. 16 Client Users Data Failover Process Monitor Failover Router A-F G-M N-T U-Z Replication Lag Sharding and Replication (and probably Denormalization)
  • 27. What is Cassandra? © 2015. All Rights Reserved. 27 A linearly scaling and fault tolerant distributed database
  • 28. What is Cassandra? © 2015. All Rights Reserved. 28 A linearly scaling and fault tolerant distributed database • Data spread over many nodes • All nodes participate in a cluster • All nodes are equal • No SPOF (shared nothing) • Run on commodity hardware
  • 29. What is Cassandra? © 2015. All Rights Reserved. 29 A linearly scaling and fault tolerant distributed database • Have more data? Add more nodes. • Need more throughput? Add more nodes.
  • 30. What is Cassandra? © 2015. All Rights Reserved. 30 A linearly scaling and fault tolerant distributed database • Nodes down != Database Down • Datacenter down != Database Down • No middle of the night phone calls
  • 31. Multi Datacenter with Cassandra © 2015. All Rights Reserved. 31 America Zamunda Client
  • 32. Fault Tolerance in Cassandra © 2015. All Rights Reserved. 32 You have the power to control fault tolerance in Cassandra
  • 33. Replication Factor © 2015. All Rights Reserved. 33 How many copies of the data should exist? Client Write Beetlejuice RF=3 Beetlejuice Beetlejuice Beetlejuice
  • 34. Consistency Level © 2015. All Rights Reserved. 34 How many replicas do we need to hear from before we acknowledge? CL=ONE Copy #1 Copy #2 Copy #3 Client
  • 35. Consistency Level © 2015. All Rights Reserved. 35 How many replicas do we need to hear from before we acknowledge? CL=QUORUM Copy #1 Copy #2 Copy #3 Client
  • 36. Consistency Levels and Speed © 2015. All Rights Reserved. 36 Use a lower consistency level like ONE to get faster reads and writes
  • 37. Consistency Levels and Eventual Consistency © 2015. All Rights Reserved. 37 Use a higher consistency level like QUORUM if you don’t want to be surprised by data from the past (stale data)
  • 38. Before you get too excited... © 2015. All Rights Reserved. 38
  • 39. Cassandra is not... • A Data Ocean, Lake, or Pond • An In-Memory Database • A Queue • A magical database luck dragon that will solve all your database use cases and problems © 2015. All Rights Reserved. 39
  • 40. How bad of an idea? © 2015. All Rights Reserved. 40 Actually a 90's movie Actually a 70's movie Why Arnold?! Why?
  • 41. Cassandra is good when... • Uptime is a top priority • You have unpredictable or high scaling requirements • The workload is transactional (i.e. OLTP not OLAP) • You are willing to put the time and effort into understanding how it works and how to use it © 2015. All Rights Reserved. 41
  • 42. © 2015. All Rights Reserved. 42 Movie References (in order of appearance) Leap of Faith (1992) Patton (1970) The Aristocats (1970) When Harry Met Sally (1989) Beverly Hills Cop (1984) Lethal Weapon (1987) Big (1988) Trading Places (1983) Highlander (1986)
  • 43. © 2015. All Rights Reserved. 42 Spaceballs (1987) Rain Man (1988) Ghostbusters (1984) Gremlins (1984) Star Trek II: The Wrath of Khan (1982) Star Wars Episode VI: Return of the Jedi (1983) Weekend at Bernie's (1989) Coming to America (1988) Masters of the Universe (1987) Beetlejuice (1988) The Goonies (1985) Top Gun (1986)
  • 44. © 2015. All Rights Reserved. 42 Back to the Future (1985) Footloose (1984) The NeverEnding Story (1984) Batman and Robin (1997) Star Wars (1977) Twins (1988) The Karate Kid (1984) Find me on Twitter: @LukeTillman