SlideShare a Scribd company logo
1 of 34
Scaling your Database in the Cloud Fall 2010 Presented by: Cory Isaacson, CEO CodeFutures Corporation http://www.dbshards.com
Introduction Who I am Cory Isaacson, CEO of CodeFutures Providers of dbShards Author of Software Pipelines Partnerships: Rightscale The leading Cloud Management Platform myCloudWatcher Provider of cloud monitoring and management services Leaders in scalability, performance, high-availability and database solutions for the cloud… …based on real-world experience with dozens of cloud-based applications …social networking, gaming, data collection, mobile, analytics Objective is to provide useful experience you can apply to scaling (and managing) your database tier… …especially for high volume applications
Challenges of cloud computing Cloud provides highly attractive service environment Flexible, scales with need (up or down) No need for dedicated IT staff, fixed facility costs Pay-as-you-go model Cloud services occasionally fail Partial network outages Server failures… …by their nature cloud servers are “transient” Disk volume issues Cloud-based resources are constrained CPU I/O Rates… …the “Cloud I/O Barrier”
Typical Application Architecture
Scaling in the Cloud Scaling Load Balancers is easy Stateless routing to app server Can add redundant Load Balancers if needed DNS round-robin or intelligent routing for larger sites If one goes down… …failover to another Scaling Application Servers is easy Stateless Add or remove servers as need dictates If one goes down… …failover to another
Scaling in the Cloud Scaling the Database tier is hard “Stateful” by definition (and necessity…) Large, integrated data sets… 10s of GBs to TBs (or more…) Difficult to move, reload I/O dependent… …adversely affected by cloud service failures …and slow cloud I/O If one goes down… …ouch! Databases form the “last mile” of true application scalability Initially simple optimization produces the best result Implement a follow-on scalability strategy for long-term performance goals… …plus a high-availability strategy is a must
All CPUs wait at the same speed… The Cloud I/O Barrier
More Database scalability challenges Databases have many other challenges that limit scalability ACID compliance… …especially Consistency …user contention Operational challenges Failover Planned, unplanned Maintenance Index rebuild Restore Space reclamation Lifecycle Reliable Backup/Restore Monitoring Application Updates Management
Database slowdown is not linear…
Challenges apply to all types of databases Traditional RDBMS (MySQL, Postgres, Oracle…) I/O bound Multi-user, lock contention High-availability Lifecycle management In-memory Databases (NoSQL, Caching, Specialty…) Reliability Limits of a single server …and a single thread Data dumps to disk High-availability Lifecycle Management No matter what the technology, big databases are hard to manage… …elastic scaling is a real challenge …degradation from growth in size and volume is a certainty Application-specific database requirements add to the challenge …database design is key… …balance performance vs. convenience vs. data size
The Laws of Databases Law #1: Small Databases are fast… Law #2: Big Databases are slow… Law #3: Keep databases small
What is the answer? Database sharding is the only effective method for achieving scale, elasticity, reliability and easy management… …regardless of your database technology
What is Database Sharding? “Horizontal partitioning is a database design principle whereby rows of a database table are held separately... Each partition forms part of a shard, which may in turn be located on a separate database server or physical location.” Wikipedia
The key to Database Sharding…
Database Sharding Architecture
Database Sharding Architecture
Database Sharding… the results
Why does Database Sharding work? Maximize CPU/Memory per database instance… …as compared to database size No contention between servers Locking, disk, memory, CPU Allows for intelligent parallel processing… …Go Fish queries across shards Keep CPUs busy and productive
Breaking the Cloud I/O Barrier
Database types Traditional RDBMS Proven SQL language… …although ORM can change that Durable, transactional, dependable… …but inflexible NoSQL Typically in-memory… …the real speed advantage Various flavors… Key/Value Store Document database Hybrid
Black box vs. Application-Aware Sharding Both utilize sharding on a data key… …typically modulus on a value or consistent hash Black box sharding is automatic…  …attempts to evenly shard across all available servers …no developer visibility or control …can work acceptably for simple, non-indexed NoSQL data stores …easily supports single-row/object results Application-Aware sharding is defined by the developer… …selective sharding of large data …explicit developer control and visibility …tunable as the database grows and matures …more efficient for result sets and searchable queries
How Database Sharding works for NoSQL
How Database Sharding works for SQL Primary Shard Table Shard Child Tables Global Tables
How Database Sharding works for SQL
What about Cross-Shard result sets?
More on Cross-Shard result sets… Black Box approach requires “scatter gather” for multi-row/object result set… …common with NoSQL engines …forces use of denormalized lists …must be maintained by developer/application code …Map Reduce processing helps with this (non-realtime) Application-Aware provides access to meaningful result sets of related data… …aggregation, sort easier to perform …logical search operations more natural
What about High-Availability? Can you afford to take your databases offline: …for scheduled maintenance?  …for unplanned failure?  …can you accept some lost transactions? By definition Database Sharding adds failure points to the data tier A proven High-Availability strategy is a must… …system outages…especially in the cloud …planned maintenance…a necessity for all database engines
Traditional asynch replication is inadequate… ,[object Object]
No rapid failover for continuous operation
Maintenance difficult in production environments
Used by many NoSQL engines,[object Object]
…3 active-active instances for in-memory databases
Support for…
…fail-down

More Related Content

More from RightScale

More from RightScale (20)

Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBMComparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
 
How to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale OptimaHow to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale Optima
 
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
 
Using RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider ToolsUsing RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider Tools
 
Best Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceBest Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and Compliance
 
Automating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and MoreAutomating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and More
 
The 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for EnterprisesThe 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for Enterprises
 
9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage Costs9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage Costs
 
Serverless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBMServerless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBM
 
Best Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP SuccessBest Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP Success
 
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMCloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
 
2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud Report2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud Report
 
Got a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP HelpsGot a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP Helps
 
How to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale OptimaHow to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale Optima
 
Top 10 Cloud Trends for 2018 and Actions You Can Take Now
Top 10 Cloud Trends for 2018 and Actions You Can Take NowTop 10 Cloud Trends for 2018 and Actions You Can Take Now
Top 10 Cloud Trends for 2018 and Actions You Can Take Now
 
AWS re:Invent 2017 Recap
AWS re:Invent 2017 RecapAWS re:Invent 2017 Recap
AWS re:Invent 2017 Recap
 
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBM
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBMCloud Instances Price Comparison: AWS vs Azure vs Google vs IBM
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBM
 
Enterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-ThinkEnterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-Think
 
How MSPs Can Be Successful in AWS, Azure, and Google Clouds
How MSPs Can Be Successful in AWS, Azure, and Google CloudsHow MSPs Can Be Successful in AWS, Azure, and Google Clouds
How MSPs Can Be Successful in AWS, Azure, and Google Clouds
 
Orchestrating PaaS and IaaS+ with RightScale
Orchestrating PaaS and IaaS+ with RightScaleOrchestrating PaaS and IaaS+ with RightScale
Orchestrating PaaS and IaaS+ with RightScale
 

Recently uploaded

Recently uploaded (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Scaling SQL and NoSQL Databases in the Cloud

  • 1. Scaling your Database in the Cloud Fall 2010 Presented by: Cory Isaacson, CEO CodeFutures Corporation http://www.dbshards.com
  • 2. Introduction Who I am Cory Isaacson, CEO of CodeFutures Providers of dbShards Author of Software Pipelines Partnerships: Rightscale The leading Cloud Management Platform myCloudWatcher Provider of cloud monitoring and management services Leaders in scalability, performance, high-availability and database solutions for the cloud… …based on real-world experience with dozens of cloud-based applications …social networking, gaming, data collection, mobile, analytics Objective is to provide useful experience you can apply to scaling (and managing) your database tier… …especially for high volume applications
  • 3. Challenges of cloud computing Cloud provides highly attractive service environment Flexible, scales with need (up or down) No need for dedicated IT staff, fixed facility costs Pay-as-you-go model Cloud services occasionally fail Partial network outages Server failures… …by their nature cloud servers are “transient” Disk volume issues Cloud-based resources are constrained CPU I/O Rates… …the “Cloud I/O Barrier”
  • 5. Scaling in the Cloud Scaling Load Balancers is easy Stateless routing to app server Can add redundant Load Balancers if needed DNS round-robin or intelligent routing for larger sites If one goes down… …failover to another Scaling Application Servers is easy Stateless Add or remove servers as need dictates If one goes down… …failover to another
  • 6. Scaling in the Cloud Scaling the Database tier is hard “Stateful” by definition (and necessity…) Large, integrated data sets… 10s of GBs to TBs (or more…) Difficult to move, reload I/O dependent… …adversely affected by cloud service failures …and slow cloud I/O If one goes down… …ouch! Databases form the “last mile” of true application scalability Initially simple optimization produces the best result Implement a follow-on scalability strategy for long-term performance goals… …plus a high-availability strategy is a must
  • 7. All CPUs wait at the same speed… The Cloud I/O Barrier
  • 8. More Database scalability challenges Databases have many other challenges that limit scalability ACID compliance… …especially Consistency …user contention Operational challenges Failover Planned, unplanned Maintenance Index rebuild Restore Space reclamation Lifecycle Reliable Backup/Restore Monitoring Application Updates Management
  • 9. Database slowdown is not linear…
  • 10. Challenges apply to all types of databases Traditional RDBMS (MySQL, Postgres, Oracle…) I/O bound Multi-user, lock contention High-availability Lifecycle management In-memory Databases (NoSQL, Caching, Specialty…) Reliability Limits of a single server …and a single thread Data dumps to disk High-availability Lifecycle Management No matter what the technology, big databases are hard to manage… …elastic scaling is a real challenge …degradation from growth in size and volume is a certainty Application-specific database requirements add to the challenge …database design is key… …balance performance vs. convenience vs. data size
  • 11. The Laws of Databases Law #1: Small Databases are fast… Law #2: Big Databases are slow… Law #3: Keep databases small
  • 12. What is the answer? Database sharding is the only effective method for achieving scale, elasticity, reliability and easy management… …regardless of your database technology
  • 13. What is Database Sharding? “Horizontal partitioning is a database design principle whereby rows of a database table are held separately... Each partition forms part of a shard, which may in turn be located on a separate database server or physical location.” Wikipedia
  • 14. The key to Database Sharding…
  • 18. Why does Database Sharding work? Maximize CPU/Memory per database instance… …as compared to database size No contention between servers Locking, disk, memory, CPU Allows for intelligent parallel processing… …Go Fish queries across shards Keep CPUs busy and productive
  • 19. Breaking the Cloud I/O Barrier
  • 20. Database types Traditional RDBMS Proven SQL language… …although ORM can change that Durable, transactional, dependable… …but inflexible NoSQL Typically in-memory… …the real speed advantage Various flavors… Key/Value Store Document database Hybrid
  • 21. Black box vs. Application-Aware Sharding Both utilize sharding on a data key… …typically modulus on a value or consistent hash Black box sharding is automatic… …attempts to evenly shard across all available servers …no developer visibility or control …can work acceptably for simple, non-indexed NoSQL data stores …easily supports single-row/object results Application-Aware sharding is defined by the developer… …selective sharding of large data …explicit developer control and visibility …tunable as the database grows and matures …more efficient for result sets and searchable queries
  • 22. How Database Sharding works for NoSQL
  • 23. How Database Sharding works for SQL Primary Shard Table Shard Child Tables Global Tables
  • 24. How Database Sharding works for SQL
  • 25. What about Cross-Shard result sets?
  • 26. More on Cross-Shard result sets… Black Box approach requires “scatter gather” for multi-row/object result set… …common with NoSQL engines …forces use of denormalized lists …must be maintained by developer/application code …Map Reduce processing helps with this (non-realtime) Application-Aware provides access to meaningful result sets of related data… …aggregation, sort easier to perform …logical search operations more natural
  • 27. What about High-Availability? Can you afford to take your databases offline: …for scheduled maintenance? …for unplanned failure? …can you accept some lost transactions? By definition Database Sharding adds failure points to the data tier A proven High-Availability strategy is a must… …system outages…especially in the cloud …planned maintenance…a necessity for all database engines
  • 28.
  • 29. No rapid failover for continuous operation
  • 30. Maintenance difficult in production environments
  • 31.
  • 32. …3 active-active instances for in-memory databases
  • 38.
  • 39. Database Sharding…elastic shards Expand the number of shards… …divide a single shard into N new shards Contract the number of shards… …consolidate N shards into a single shard Due to large data sizes, this takes time… …regardless of data architecture Requires High-Availability to ensure no downtime… …perform scaling on live replica
  • 40. Database Sharding…the future Ability to leverage proven database engines… …SQL …NoSQL …Caching Allow developers to select the best database engine for a given set of application requirements… …seamless context-switching within the application …use the API of choice Improved management… …monitoring …configuration “on-the-fly” …dynamic elastic shards based on demand
  • 41. Database Sharding summary Database Sharding is the most effective tool for scaling your database tier in the cloud… …or anywhere Use Database Sharding for any type of engine… …SQL …NoSQL …Cache Use the best engine for a given application requirement… …avoid the “one-size-fits-all” trap …each engine has its strengths to capitalize on Ensure your High-Availability is proven and bulletproof… …especially critical on the cloud …must support failure and maintenance
  • 42. Questions/Answers Cory Isaacson CodeFutures Corporation cory.isaacson@codefutures.com http://www.dbshards.com

Editor's Notes

  1. Writes are linear, reads can be faster – depending on your database architecture.
  2. How did your database perform 6 months or a year ago?
  3. NoSQL is attractive due to simple API, ease of use. But beware, you really need a solid data design for exactly what you want to do. Relationships are not handled by the database, they are handled by the developer.
  4. Difference between Black box sharding/NoSQL and App Aware sharding with an RDBMS – you can get sets of related data from the same shard, otherwise need to retrieve a row at a time and consolidate