SlideShare a Scribd company logo
Powerful, Distributed, API Communications
Call-in Number: 513.386.0101Pin 705-705-
141
Expert Q&A: Database Edition
May 31st
, 2013
Welcome
Our Panelists
Joshua Goldbard
Marketing Ninja, 2600hz,
Moderator
Darren Schreiber
Founder, 2600hz
Sam Bisbee
Cloudant
Database:
It’s all good until it isn’t
Some background…
What is Database?
• A Record of things Remembered or Forgotten
• Used to be Unbelievably hard, now it’s just hard
sometimes
• Modern Databases are amazingly resilient
• Failure Mode still requires lots of attention
• In Distributed Environments…
• Database is inexorably linked to the network
• The network is always unreliable if public
Masters and Slaves
• Databases have to Replicate
• Most Databases use a form of Master-Slave
Relationship to manage replication and dedupe
• Masters are where new data is entered
• Then it’s mirrored out to the Slaves for storage
• If you lose access to the original Master, you can
convert a Slave into a Master and restore
operation
Durability
Other Replication Strategies
• Other strategies exist, such as…
• Master-Master (What 2600hz Uses)
• Tokenized Exchange
• Time-delimited
• The most popular methods tend to be Master-
Slave or Master-Master
Each Database has its advantages and tradeoffs. Once
again, there is no Magic Bullet.
Failure and Quorum
• When A Database needs to elect a new master…
• There are many different strategies
• Most involve the concept of quorum (figuring
out where the greatest number of copies
reside)
• Once Quorum is established, a new master is
elected and (hopefully) operation can resume
• Quorum is different in Master-Master (Explain)
Cap Theorem
Databases can have (at most) 2 out of 3 of the following:
•Consistency
•Availability
•Partition Tolerance
Modern Database Management is balancing between
Consistency and Availability because all modern
networks are unreliable
Examples of Databases
What is Important in a Database?
• Reliable Storage of Data?
• Fast Retrieval of Data?
• Fast Saving of Data?
• Resilience during failures?
• <other>
Examples
• Buying tickets from ticketmaster
• What’s important and why?
• Withdrawing money from a bank?
• Storing Call Forwarding Settings?
• Storing a List of Favorite Stocks?
Each Scenario has a different set of requirements and
constraints. There is no silver bullet; if you could
write one database for all these scenarios, you’d
be rich.
Which Database is Better?
• STUPID QUESTION
• But I thought there were no stupid questions?
• This is the only stupid question.
• The fight of which database is better is almost
always silly
• Databases are a tool, to get a job done
• Like the previous examples, each job is different
• Each database stresses different pros/cons
Let’s Get Technical!
Trouble With Databases
• HUGE TOPIC (We’re only going to cover a little)
• Network Partitions
• Layer 1 disasters
• Flapping Internet (Special Class of Network
Partitions)
Network Partitions
• Common in Distributed Databases
• When Databases lose contact with each other they can
partition
• Caused by unreliable or faulty network connections
• Databases can behave very weirdly when in partitions
Arguably, most of what a database admin does is prepare for
network partitions and how to resolve them.
Network without Partitions
Network with Partitions
Split-Brain
• During a partition, some databases will elect N masters, one
for each partition in the network.
• When the partition is fixed, unless there is a pre-defined
restoral procedure, there will be conflicts
• Databases have all kinds of strategies for handling WAN Split-
brain failure, but you should understand them
Key Takeaway: No Database is perfect. Understand the
automation but also understand the manual intervention
procedure.
Layer 1 Failures
Layer 1 Failures
• Rut Roh
• Actual Physical Disaster
• No easy way out except…
• Don’t be in a Datacenter that’s hit by a disaster
OR
• Be Nimble enough to Evade Disaster
Evading Disaster
• We’re not Magicians, we can’t simply predict disasters
• The next best thing is being able to move and move fast
• Kazoo requires one line of code to move
• Kazoo moves fast
• Moving the Database fast is awesome (Thanks BigCouch!)
During Hurricane Sandy, we cut our Datacenters away from
Downtown New York to a Datacenter above the 100 year
flood plain on the East Coast. Result: No Downtime.
No Silver Bullets
• Layer 1 disasters are a humbling experience
• Don’t rely on DataCenters in the Path of a Storm
• Flooding will brick datacenters that have generators below
ground
• To avoid being powerless in a disaster…
• Plan, Test, Analyze, Repeat
• Check out Netflix Simian Army for examples of tests
Flapping
• Is it up? Is it Down? Around and Around it Goes, where it
stops nobody knows…
• Flapping Internet is a special case of network partition or lose
connectivity
• Flapping connections lose contact with other servers and then
appear to come back online before going off
Why is this bad?
Fixing Flapping
• I’m trying to fix a partition
• The Network keeps going up and down
• As I repair my cluster, it keeps starting to repair and failing (by
attempting to reintegrate the unreliable nodes)
Flapping nodes make everything awful
Why is the Network Difficult?
“Detecting network failures is hard. Since our only knowledge of
the other nodes passes through the network, delays are
indistinguishable from failure. This is the fundamental problem of
the network partition: latency high enough to be considered a
failure. When partitions arise, we have no way to
determine what happened on the other nodes: are they alive?
Dead? Did they receive our message? Did they try to respond?
Literally no one knows. When the network finally heals, we'll
have to re-establish the connection and try to work out what
happened–perhaps recovering from an inconsistent state.”
-Kyle Kingsbury, Aphyr.com
Why is the Network Difficult?
“Detecting network failures is hard. Since our only knowledge of
the other nodes passes through the network, delays are
indistinguishable from failure. This is the fundamental problem of
the network partition: latency high enough to be considered a
failure. When partitions arise, we have no way to
determine what happened on the other nodes: are they alive?
Dead? Did they receive our message? Did they try to respond?
Literally no one knows. When the network finally heals, we'll
have to re-establish the connection and try to work out what
happened–perhaps recovering from an inconsistent state.”
-Kyle Kingsbury, Aphyr.com
Why is the Network Difficult?
“Detecting network failures is hard. Since our only knowledge of
the other nodes passes through the network, delays are
indistinguishable from failure. This is the fundamental problem of
the network partition: latency high enough to be considered a
failure. When partitions arise, we have no way to
determine what happened on the other nodes: are they alive?
Dead? Did they receive our message? Did they try to respond?
Literally no one knows. When the network finally heals, we'll
have to re-establish the connection and try to work out what
happened–perhaps recovering from an inconsistent state.”
-Kyle Kingsbury, Aphyr.com
What does 2600hz use?
• Cloudant BigCouch
• NoSQL Database
• Master-Master
• Very sensibly designed for our use case
Why BigCouch?
DEMANDS
1.On the Fly Schema Changes
2.Scale in a distributed fashion
3.Configuration changes will
happen as we grow
4.Has to be equipment
agnostic
5.Accessible Raw Data View
6.Simple to Install and Keep up
7.It can’t fail, ergo Fault-
Tolerance
8.Multi-Master writes
9.Simple (to cluster, to
TRADEOFFS
1.Eventual Consistency is OK
2.Nodes going offline randomly
3.Multi-server only
Why are we ok with these
tradeoffs? They suit our use
case.
Let’s take some time to pontificate about
Database at scale…
What are the first things you think of when
you get errors reported from the Database?
What’s your Thought Process?
• Database is where you put stuff
• You want your Database not to
die
• 2600hz uses BigCouch because
it’s really awesome technology
• Great for our Use Case
• Easy to Administrate
• Resilient and quick-to-restore
Recap
QUESTIONS???

More Related Content

What's hot

Bugs Aren't Random
Bugs Aren't RandomBugs Aren't Random
Bugs Aren't Random
Dan Kaminsky
 
SQLDay2013_ChrisWebb_SSASDesignMistakes
SQLDay2013_ChrisWebb_SSASDesignMistakesSQLDay2013_ChrisWebb_SSASDesignMistakes
SQLDay2013_ChrisWebb_SSASDesignMistakes
Polish SQL Server User Group
 
Distributed systems and consistency
Distributed systems and consistencyDistributed systems and consistency
Distributed systems and consistency
seldo
 
Error in hadoop
Error in hadoopError in hadoop
Error in hadoop
Len Bass
 
Scaling Systems: Architectures that Grow
Scaling Systems: Architectures that GrowScaling Systems: Architectures that Grow
Scaling Systems: Architectures that Grow
Gibraltar Software
 
All you didn't know about the CAP theorem
All you didn't know about the CAP theoremAll you didn't know about the CAP theorem
All you didn't know about the CAP theorem
Kanstantsin Hontarau
 
A Technical Dive into Defensive Trickery
A Technical Dive into Defensive TrickeryA Technical Dive into Defensive Trickery
A Technical Dive into Defensive Trickery
Dan Kaminsky
 
Architecting for the cloud elasticity security
Architecting for the cloud elasticity securityArchitecting for the cloud elasticity security
Architecting for the cloud elasticity security
Len Bass
 
Designing Events-First Microservices For A Cloud Native World
Designing Events-First Microservices For A Cloud Native WorldDesigning Events-First Microservices For A Cloud Native World
Designing Events-First Microservices For A Cloud Native World
Lightbend
 
devops, platforms and devops platforms
devops, platforms and devops platformsdevops, platforms and devops platforms
devops, platforms and devops platforms
Andrew Shafer
 
2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...
2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...
2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...
Eneko Jon Bilbao
 
CAP Theorem
CAP TheoremCAP Theorem
CAP Theorem
Vikash Kodati
 
The CAP Theorem
The CAP Theorem The CAP Theorem
The CAP Theorem
Aleksandar Bradic
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that grow
Gibraltar Software
 
Natural Laws of Software Performance
Natural Laws of Software PerformanceNatural Laws of Software Performance
Natural Laws of Software Performance
Gibraltar Software
 
From Divided to United - Aligning Technical and Business Teams
From Divided to United - Aligning Technical and Business TeamsFrom Divided to United - Aligning Technical and Business Teams
From Divided to United - Aligning Technical and Business Teams
Dominica DeGrandis
 
Without Resilience, Nothing Else Matters
Without Resilience, Nothing Else MattersWithout Resilience, Nothing Else Matters
Without Resilience, Nothing Else Matters
Jonas Bonér
 
Architectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale SystemsArchitectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale Systems
Len Bass
 

What's hot (18)

Bugs Aren't Random
Bugs Aren't RandomBugs Aren't Random
Bugs Aren't Random
 
SQLDay2013_ChrisWebb_SSASDesignMistakes
SQLDay2013_ChrisWebb_SSASDesignMistakesSQLDay2013_ChrisWebb_SSASDesignMistakes
SQLDay2013_ChrisWebb_SSASDesignMistakes
 
Distributed systems and consistency
Distributed systems and consistencyDistributed systems and consistency
Distributed systems and consistency
 
Error in hadoop
Error in hadoopError in hadoop
Error in hadoop
 
Scaling Systems: Architectures that Grow
Scaling Systems: Architectures that GrowScaling Systems: Architectures that Grow
Scaling Systems: Architectures that Grow
 
All you didn't know about the CAP theorem
All you didn't know about the CAP theoremAll you didn't know about the CAP theorem
All you didn't know about the CAP theorem
 
A Technical Dive into Defensive Trickery
A Technical Dive into Defensive TrickeryA Technical Dive into Defensive Trickery
A Technical Dive into Defensive Trickery
 
Architecting for the cloud elasticity security
Architecting for the cloud elasticity securityArchitecting for the cloud elasticity security
Architecting for the cloud elasticity security
 
Designing Events-First Microservices For A Cloud Native World
Designing Events-First Microservices For A Cloud Native WorldDesigning Events-First Microservices For A Cloud Native World
Designing Events-First Microservices For A Cloud Native World
 
devops, platforms and devops platforms
devops, platforms and devops platformsdevops, platforms and devops platforms
devops, platforms and devops platforms
 
2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...
2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...
2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...
 
CAP Theorem
CAP TheoremCAP Theorem
CAP Theorem
 
The CAP Theorem
The CAP Theorem The CAP Theorem
The CAP Theorem
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that grow
 
Natural Laws of Software Performance
Natural Laws of Software PerformanceNatural Laws of Software Performance
Natural Laws of Software Performance
 
From Divided to United - Aligning Technical and Business Teams
From Divided to United - Aligning Technical and Business TeamsFrom Divided to United - Aligning Technical and Business Teams
From Divided to United - Aligning Technical and Business Teams
 
Without Resilience, Nothing Else Matters
Without Resilience, Nothing Else MattersWithout Resilience, Nothing Else Matters
Without Resilience, Nothing Else Matters
 
Architectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale SystemsArchitectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale Systems
 

Similar to Database Expert Q&A from 2600hz and Cloudant

Cassandra Core Concepts - Cassandra Day Toronto
Cassandra Core Concepts - Cassandra Day TorontoCassandra Core Concepts - Cassandra Day Toronto
Cassandra Core Concepts - Cassandra Day Toronto
Jon Haddad
 
Cassandra Core Concepts
Cassandra Core ConceptsCassandra Core Concepts
Cassandra Core Concepts
Jon Haddad
 
Distributed computing for new bloods
Distributed computing for new bloodsDistributed computing for new bloods
Distributed computing for new bloods
Raymond Tay
 
Modern Cloud Fundamentals: Misconceptions and Industry Trends
Modern Cloud Fundamentals: Misconceptions and Industry TrendsModern Cloud Fundamentals: Misconceptions and Industry Trends
Modern Cloud Fundamentals: Misconceptions and Industry Trends
Christopher Bennage
 
What's inside the black box? Using ML to tune and manage Kafka. (Matthew Stum...
What's inside the black box? Using ML to tune and manage Kafka. (Matthew Stum...What's inside the black box? Using ML to tune and manage Kafka. (Matthew Stum...
What's inside the black box? Using ML to tune and manage Kafka. (Matthew Stum...
confluent
 
Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP
120bi
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
Achievers Tech
 
The Power of Determinism in Database Systems
The Power of Determinism in Database SystemsThe Power of Determinism in Database Systems
The Power of Determinism in Database Systems
Daniel Abadi
 
Relational and non relational database 7
Relational and non relational database 7Relational and non relational database 7
Relational and non relational database 7
abdulrahmanhelan
 
Tiger oracle
Tiger oracleTiger oracle
Tiger oracle
d0nn9n
 
Storage Systems For Scalable systems
Storage Systems For Scalable systemsStorage Systems For Scalable systems
Storage Systems For Scalable systems
elliando dias
 
Bridging the Developer and the Datacenter
Bridging the Developer and the DatacenterBridging the Developer and the Datacenter
Bridging the Developer and the Datacenter
lurs83
 
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInJay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
LinkedIn
 
Stig: Social Graphs & Discovery at Scale
Stig: Social Graphs & Discovery at ScaleStig: Social Graphs & Discovery at Scale
Stig: Social Graphs & Discovery at Scale
DATAVERSITY
 
Java in High Frequency Trading
Java in High Frequency TradingJava in High Frequency Trading
Java in High Frequency Trading
Viktor Sovietov
 
Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...
Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...
Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...
DataStax
 
Cassandra Core Concepts
Cassandra Core ConceptsCassandra Core Concepts
Cassandra Core Concepts
DataStax Academy
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
smallerror
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
xlight
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
Roger Xia
 

Similar to Database Expert Q&A from 2600hz and Cloudant (20)

Cassandra Core Concepts - Cassandra Day Toronto
Cassandra Core Concepts - Cassandra Day TorontoCassandra Core Concepts - Cassandra Day Toronto
Cassandra Core Concepts - Cassandra Day Toronto
 
Cassandra Core Concepts
Cassandra Core ConceptsCassandra Core Concepts
Cassandra Core Concepts
 
Distributed computing for new bloods
Distributed computing for new bloodsDistributed computing for new bloods
Distributed computing for new bloods
 
Modern Cloud Fundamentals: Misconceptions and Industry Trends
Modern Cloud Fundamentals: Misconceptions and Industry TrendsModern Cloud Fundamentals: Misconceptions and Industry Trends
Modern Cloud Fundamentals: Misconceptions and Industry Trends
 
What's inside the black box? Using ML to tune and manage Kafka. (Matthew Stum...
What's inside the black box? Using ML to tune and manage Kafka. (Matthew Stum...What's inside the black box? Using ML to tune and manage Kafka. (Matthew Stum...
What's inside the black box? Using ML to tune and manage Kafka. (Matthew Stum...
 
Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
 
The Power of Determinism in Database Systems
The Power of Determinism in Database SystemsThe Power of Determinism in Database Systems
The Power of Determinism in Database Systems
 
Relational and non relational database 7
Relational and non relational database 7Relational and non relational database 7
Relational and non relational database 7
 
Tiger oracle
Tiger oracleTiger oracle
Tiger oracle
 
Storage Systems For Scalable systems
Storage Systems For Scalable systemsStorage Systems For Scalable systems
Storage Systems For Scalable systems
 
Bridging the Developer and the Datacenter
Bridging the Developer and the DatacenterBridging the Developer and the Datacenter
Bridging the Developer and the Datacenter
 
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInJay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
 
Stig: Social Graphs & Discovery at Scale
Stig: Social Graphs & Discovery at ScaleStig: Social Graphs & Discovery at Scale
Stig: Social Graphs & Discovery at Scale
 
Java in High Frequency Trading
Java in High Frequency TradingJava in High Frequency Trading
Java in High Frequency Trading
 
Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...
Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...
Tales From the Field: The Wrong Way of Using Cassandra (Carlos Rolo, Pythian)...
 
Cassandra Core Concepts
Cassandra Core ConceptsCassandra Core Concepts
Cassandra Core Concepts
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
 

Recently uploaded

zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
DianaGray10
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
LizaNolte
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
ScyllaDB
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 

Recently uploaded (20)

zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 

Database Expert Q&A from 2600hz and Cloudant

  • 1. Powerful, Distributed, API Communications Call-in Number: 513.386.0101Pin 705-705- 141 Expert Q&A: Database Edition May 31st , 2013
  • 3. Our Panelists Joshua Goldbard Marketing Ninja, 2600hz, Moderator Darren Schreiber Founder, 2600hz Sam Bisbee Cloudant
  • 4. Database: It’s all good until it isn’t
  • 6. What is Database? • A Record of things Remembered or Forgotten • Used to be Unbelievably hard, now it’s just hard sometimes • Modern Databases are amazingly resilient • Failure Mode still requires lots of attention • In Distributed Environments… • Database is inexorably linked to the network • The network is always unreliable if public
  • 7. Masters and Slaves • Databases have to Replicate • Most Databases use a form of Master-Slave Relationship to manage replication and dedupe • Masters are where new data is entered • Then it’s mirrored out to the Slaves for storage • If you lose access to the original Master, you can convert a Slave into a Master and restore operation Durability
  • 8. Other Replication Strategies • Other strategies exist, such as… • Master-Master (What 2600hz Uses) • Tokenized Exchange • Time-delimited • The most popular methods tend to be Master- Slave or Master-Master Each Database has its advantages and tradeoffs. Once again, there is no Magic Bullet.
  • 9. Failure and Quorum • When A Database needs to elect a new master… • There are many different strategies • Most involve the concept of quorum (figuring out where the greatest number of copies reside) • Once Quorum is established, a new master is elected and (hopefully) operation can resume • Quorum is different in Master-Master (Explain)
  • 10. Cap Theorem Databases can have (at most) 2 out of 3 of the following: •Consistency •Availability •Partition Tolerance Modern Database Management is balancing between Consistency and Availability because all modern networks are unreliable
  • 12. What is Important in a Database? • Reliable Storage of Data? • Fast Retrieval of Data? • Fast Saving of Data? • Resilience during failures? • <other>
  • 13. Examples • Buying tickets from ticketmaster • What’s important and why? • Withdrawing money from a bank? • Storing Call Forwarding Settings? • Storing a List of Favorite Stocks? Each Scenario has a different set of requirements and constraints. There is no silver bullet; if you could write one database for all these scenarios, you’d be rich.
  • 14. Which Database is Better? • STUPID QUESTION • But I thought there were no stupid questions? • This is the only stupid question. • The fight of which database is better is almost always silly • Databases are a tool, to get a job done • Like the previous examples, each job is different • Each database stresses different pros/cons
  • 16. Trouble With Databases • HUGE TOPIC (We’re only going to cover a little) • Network Partitions • Layer 1 disasters • Flapping Internet (Special Class of Network Partitions)
  • 17. Network Partitions • Common in Distributed Databases • When Databases lose contact with each other they can partition • Caused by unreliable or faulty network connections • Databases can behave very weirdly when in partitions Arguably, most of what a database admin does is prepare for network partitions and how to resolve them.
  • 20. Split-Brain • During a partition, some databases will elect N masters, one for each partition in the network. • When the partition is fixed, unless there is a pre-defined restoral procedure, there will be conflicts • Databases have all kinds of strategies for handling WAN Split- brain failure, but you should understand them Key Takeaway: No Database is perfect. Understand the automation but also understand the manual intervention procedure.
  • 22. Layer 1 Failures • Rut Roh • Actual Physical Disaster • No easy way out except… • Don’t be in a Datacenter that’s hit by a disaster OR • Be Nimble enough to Evade Disaster
  • 23. Evading Disaster • We’re not Magicians, we can’t simply predict disasters • The next best thing is being able to move and move fast • Kazoo requires one line of code to move • Kazoo moves fast • Moving the Database fast is awesome (Thanks BigCouch!) During Hurricane Sandy, we cut our Datacenters away from Downtown New York to a Datacenter above the 100 year flood plain on the East Coast. Result: No Downtime.
  • 24. No Silver Bullets • Layer 1 disasters are a humbling experience • Don’t rely on DataCenters in the Path of a Storm • Flooding will brick datacenters that have generators below ground • To avoid being powerless in a disaster… • Plan, Test, Analyze, Repeat • Check out Netflix Simian Army for examples of tests
  • 25. Flapping • Is it up? Is it Down? Around and Around it Goes, where it stops nobody knows… • Flapping Internet is a special case of network partition or lose connectivity • Flapping connections lose contact with other servers and then appear to come back online before going off Why is this bad?
  • 26. Fixing Flapping • I’m trying to fix a partition • The Network keeps going up and down • As I repair my cluster, it keeps starting to repair and failing (by attempting to reintegrate the unreliable nodes) Flapping nodes make everything awful
  • 27. Why is the Network Difficult? “Detecting network failures is hard. Since our only knowledge of the other nodes passes through the network, delays are indistinguishable from failure. This is the fundamental problem of the network partition: latency high enough to be considered a failure. When partitions arise, we have no way to determine what happened on the other nodes: are they alive? Dead? Did they receive our message? Did they try to respond? Literally no one knows. When the network finally heals, we'll have to re-establish the connection and try to work out what happened–perhaps recovering from an inconsistent state.” -Kyle Kingsbury, Aphyr.com
  • 28. Why is the Network Difficult? “Detecting network failures is hard. Since our only knowledge of the other nodes passes through the network, delays are indistinguishable from failure. This is the fundamental problem of the network partition: latency high enough to be considered a failure. When partitions arise, we have no way to determine what happened on the other nodes: are they alive? Dead? Did they receive our message? Did they try to respond? Literally no one knows. When the network finally heals, we'll have to re-establish the connection and try to work out what happened–perhaps recovering from an inconsistent state.” -Kyle Kingsbury, Aphyr.com
  • 29. Why is the Network Difficult? “Detecting network failures is hard. Since our only knowledge of the other nodes passes through the network, delays are indistinguishable from failure. This is the fundamental problem of the network partition: latency high enough to be considered a failure. When partitions arise, we have no way to determine what happened on the other nodes: are they alive? Dead? Did they receive our message? Did they try to respond? Literally no one knows. When the network finally heals, we'll have to re-establish the connection and try to work out what happened–perhaps recovering from an inconsistent state.” -Kyle Kingsbury, Aphyr.com
  • 30. What does 2600hz use? • Cloudant BigCouch • NoSQL Database • Master-Master • Very sensibly designed for our use case
  • 31. Why BigCouch? DEMANDS 1.On the Fly Schema Changes 2.Scale in a distributed fashion 3.Configuration changes will happen as we grow 4.Has to be equipment agnostic 5.Accessible Raw Data View 6.Simple to Install and Keep up 7.It can’t fail, ergo Fault- Tolerance 8.Multi-Master writes 9.Simple (to cluster, to TRADEOFFS 1.Eventual Consistency is OK 2.Nodes going offline randomly 3.Multi-server only Why are we ok with these tradeoffs? They suit our use case.
  • 32. Let’s take some time to pontificate about Database at scale… What are the first things you think of when you get errors reported from the Database? What’s your Thought Process?
  • 33. • Database is where you put stuff • You want your Database not to die • 2600hz uses BigCouch because it’s really awesome technology • Great for our Use Case • Easy to Administrate • Resilient and quick-to-restore Recap

Editor's Notes

  1. When do we come in and provide the support? Possile examples?
  2. Sponsered features?...they have access to current and future features for free.
  3. Sponsered features?...they have access to current and future features for free.
  4. Yealink stuff: make sure you send the right firmware and then the right config file. If you send the wrong config file, or send the file too early, you can brick the phone. 50 handsets is the threshold for DHCP66
  5. Trunks, license fees, connect remote offices
  6. I fell I need more info on this section…realm DNS