Top Banner
/ Robert Treat Database Scalability {Patterns}
40

Database Scalability {Patterns} - O'Reilly Media

Feb 12, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Database Scalability {Patterns} - O'Reilly Media

/ Robert Treat

Database Scalability {Patterns}

Page 2: Database Scalability {Patterns} - O'Reilly Media

robert treatomniti

postgresoracle - mysql

mssql - sqlite - nosql

Page 3: Database Scalability {Patterns} - O'Reilly Media

What are “Database Scalability Patterns?”

Page 4: Database Scalability {Patterns} - O'Reilly Media

Part Design Patterns

Part Application Life-Cycle

Page 5: Database Scalability {Patterns} - O'Reilly Media

Part Design Patterns

Part Application Life-Cycle

Page 6: Database Scalability {Patterns} - O'Reilly Media

Part Design Patterns

Part Application Life-Cycle

Page 7: Database Scalability {Patterns} - O'Reilly Media

Part Design Patterns

Part Application Life-Cycle

Page 8: Database Scalability {Patterns} - O'Reilly Media

MyFirstDatabase

Page 9: Database Scalability {Patterns} - O'Reilly Media

Vertical Partitioning

Page 10: Database Scalability {Patterns} - O'Reilly Media

Vertical Scaling

Page 11: Database Scalability {Patterns} - O'Reilly Media

Vertical Scaling

Page 12: Database Scalability {Patterns} - O'Reilly Media

Vertical Scaling

Page 13: Database Scalability {Patterns} - O'Reilly Media

Horizontal Scaling

Federated Data Storage

“sharding” Horizontal Partitioning

Multi-Master

Read Slaves

Page 14: Database Scalability {Patterns} - O'Reilly Media

Read Slaves / Master - Slave

Scale Read Load

Page 15: Database Scalability {Patterns} - O'Reilly Media

Read Slaves / Master - Slave

Scale Read Load

writes go here!

Page 16: Database Scalability {Patterns} - O'Reilly Media

Read Slaves / Master - Slave

Scale Read Load

writes go here!

reads go here (or here) (or here)

Page 17: Database Scalability {Patterns} - O'Reilly Media

database writes data to slaves

Read Slaves / Master - Slave

Scale Read Load

writes go here!

reads go here (or here) (or here)

slave dbslave db slave db

Page 18: Database Scalability {Patterns} - O'Reilly Media

Read Slaves / Master - Slave

Scale Read Load

writes go here!

reads go here (or here) (or here)

app writes data everywhere

memcachedmemcached memcached

Page 19: Database Scalability {Patterns} - O'Reilly Media

Read Slaves / Master - Slave

Scale Read Load

• Typically• Full Copy of Data On Each Node• Asynchronous

Page 20: Database Scalability {Patterns} - O'Reilly Media

Read Slaves / Master - Slave

Scale Read Load

• Typically• Full Copy of Data On Each Node• Asynchronous

• Consider• Partial Copy• Synchronous• Don’t use a RDBMS?

Page 21: Database Scalability {Patterns} - O'Reilly Media

Read Slaves / Master - Slave

Scale Read Load

• Typically• Full Copy of Data On Each Node• Asynchronous

• Consider• Partial Copy• Synchronous• Don’t use a RDBMS?

“easy”

Requires Application Changes

Page 22: Database Scalability {Patterns} - O'Reilly Media

Scaling Writes

“not easy”

Page 23: Database Scalability {Patterns} - O'Reilly Media

Multi-Master

many different ways to implement this, few that actually work in production

Page 24: Database Scalability {Patterns} - O'Reilly Media

many different ways to implement this, few that actually work in production

write to any node, database syncs data

Multi-Master

Page 25: Database Scalability {Patterns} - O'Reilly Media

many different ways to implement this, few that actually work in production

write to any node, database syncs data

can reduce cpu, doesn’t reduce i/o

Multi-Master

Page 26: Database Scalability {Patterns} - O'Reilly Media

many different ways to implement this, few that actually work in production

write to any node, database syncs data

can reduce cpu, doesn’t reduce i/o

failover solutionnot a scalability solution

Multi-Master

Page 27: Database Scalability {Patterns} - O'Reilly Media

Horizontal Partitioning

“sharding” “SOA”

Page 28: Database Scalability {Patterns} - O'Reilly Media

Horizontal Partitioning

“sharding” “SOA”

Page 29: Database Scalability {Patterns} - O'Reilly Media

• Divide schema by job operations• Move each piece to own server• Duplicate some data as needed

Horizontal Partitioning

Page 30: Database Scalability {Patterns} - O'Reilly Media

users

items

forums

• Divide schema by job operations• Move each piece to own server• Duplicate some data as needed

Horizontal Partitioning

Page 31: Database Scalability {Patterns} - O'Reilly Media

users

items

forums

• Divide schema by job operations• Move each piece to own server• Duplicate some data as needed

• You must separate dependencies in the app code first!

Horizontal Partitioning

Page 32: Database Scalability {Patterns} - O'Reilly Media

users

items

forums

• Divide schema by job operations• Move each piece to own server• Duplicate some data as needed

• You must separate dependencies in the app code first!

Each node is a new instance of vertical scaling

Horizontal Partitioning

Page 33: Database Scalability {Patterns} - O'Reilly Media

• data split across servers based on algorithm • data dropped into buckets (multiple?)

Horizontal Scaling

magic hash algorithm

app

Page 34: Database Scalability {Patterns} - O'Reilly Media

• data split across servers based on algorithm • data dropped into buckets (multiple?)

Horizontal Scaling

magic hash algorithm app

Page 35: Database Scalability {Patterns} - O'Reilly Media

• data split across servers based on algorithm • data dropped into buckets (multiple?)•someone must keep track of data, and provide lookup services

Horizontal Scaling

magic hash algorithm app

Page 36: Database Scalability {Patterns} - O'Reilly Media

Universal Truths of Scaling Databases

Vertical Scalability is Helpful for Every Pattern

Even in a horizontally scaled, fully distributed database, the number of nodes needed is affected by vertical scalability

Page 37: Database Scalability {Patterns} - O'Reilly Media

Universal Truths of Scaling Databases

New Nodes Are Never Free

•Add points of failure•Add management costs•Add complexity to architecture•Add complexity to your app code

Page 38: Database Scalability {Patterns} - O'Reilly Media

MyFirstDBV

Vertical PartitioningV

Vertical ScalingV

Read SlavesV

Horizontal Partitioning

Page 39: Database Scalability {Patterns} - O'Reilly Media

plan for layered data sources

read / write connections in code

use schemas to separate services

tips

Page 40: Database Scalability {Patterns} - O'Reilly Media

THANKS!

more:xzilla.net

@robtreat2

omniti.com/surge(scalability conference)