young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
Архитектура приложений с использованием MySQL, Петр Зайцев (Percona)
1. Architecture and Design of MySQL
Powered Applications
Peter Zaitsev
CEO, Percona
Highload++ 2014
Moscow, Russia
31 Oct 2014
2. About Percona
Open Source
Software for MySQL
Ecosystem
• Percona Server
• Percona XtraDB
Cluster (PXC)
• Percona Xtrabackup
• Percona Toolkit
Solutions to succeed
with MySQL
• Consulting
• Support
• Managed Services
2
3. About Presentation
What's in your
Toolbox ?
What Questions
you should ask ?
Common MySQL
Architecture
Patterns
3
5. 10 Years ago we see
Load Balancers
FrontEnd vs BackEnd Web Server Separation
MemcacheD (Caching)
Global Database for Shared Data
Read Write Splitting
Sharding “Database Clusters”
5
6. History Lesson
MySQL is quite Mature
Battle tested Architecture Patterns
Most Problems have proven solutions
6
8. Very Powerful Hardware
• 16GB to 512GB
Lots of
Memory
• 1000 IOPS to 100.000 IOPS
• 10ms latency to 0.1ms IO Latency
Very Fast
Storage
• 4 Cores to 32 Cores
Many CPU
Cores
8
19. Basics
Make some Right decisions Early
Your first Architecture will not be perfect
Some poor choices are very expensive to fix
19
20. Consultants are like Lawyers
You can waste a lot of money with
them
Getting right advice on the right topics
will save you a lot of trouble in the end
20
22. Approach to Scaling
Avoid Over-
Engineering
Give yourself
some
runway
Do Some
Capacity
Planning
22
23. High Availability
Real High Availability is Really Expensive
Medium Availability is getting more
affordable
People are often leading cause of
downtime
23
24. Team Experience
Chose Solutions which your Team can Support
Often Developers know little about Databases
Right Development, Operational Process Is a Key
Tools to Support your Process
• Percona Toolkit, Percona Cloud Tools
• Systematically find and review new queries
24
25. Simplicity
• Less complexity lower costs
Use fewer
components when
possible
• Monitor
• Troubleshoot
Each components
needs experience
to
• “Follow the Crowd”
• Unless you have a reason not to
There is safety in
numbers
25
26. World of “Small” Applications
• Really
Majority of
Applications are
Small
• Especially with support of caching
May well run on
single database
instance
• Active intranet site for company with 200K
employees
• Ecommerce site supporting $10M+ in Sales
Such “Small”
Applications can
be significant
26
27. Lets do Some Math
Modern
MySQL
Instance
Handle 100K
QPS
20 Queries
per User
Interaction
5K User
Interactions
Per Second
144M User
Interactions a
Day
(Considering
3x peak to
average)
10M Daily
Active users
(with
Medium
Engagement)
27
30. Simple High Availability
HA with DBaaS (Amazon RDS)
HA with MySQL Replication
HA with Percona XtraDB Cluster
30
31. What do you need to Scale ?
Reads
Writes
Data
Size
31
32. Load Management Tricks
Move the load
In Time (Doing
Batch Processing
at Night)
In Space (Use
Slave for
Reports)
32
33. Queueing
Used by Most high volume architectures
Deal with Load Spikes
Increase Reliability
Scale parts of the system which need to
Many solutions
• RabbitMQ
• Redis
• Gearman
33
35. Scaling Writes
• Using Different Servers for
Different Parts of
Application
Functional
Partitioning
• Horizontal Partitioning over
many servers Sharding
35
36. Scaling Data Size
•Depends on the
Application and
Needs
•10TB good rule of
thumb
How Much
We Can
Practically
Store in
Single
MySQL
Instance
these days
36
37. How Is it Possible
“Online” Schema
Change
MySQL 5.6
Pt-online-schema-change
(Percona
Toolkit)
Fast Backup
Percona
Xtrabackup
MySQL Enterprise
Backup
Modern
Filesystem/Volume
Managers
Fast Network
10Gbps affordable
High
Performance
Storage
Flash/SSD
Compression
Innodb
TokuDB
37
38. Summary
MySQL is Mature. Solutions Available for
Many Problems
Make few choices right in the beginning
Hardware and Software advances allow to go
a long way with simple architectures
38