Percona XtraDB Cluster SF Meetup
-
Upload
vadim-tkachenko -
Category
Technology
-
view
2.556 -
download
1
Transcript of Percona XtraDB Cluster SF Meetup
Percona XtraDB Clusterpowered by Galera
Vadim TkachenkoPercona Inc, co-founder, CTO
www.percona.comwww.mysqlperformanceblog.com
Percona XtraDB Cluster
This talk online• PowerPoint• http://bit.ly/PXC-meetup
• PDF• http://bit.ly/PXC-meetup-pdf
• Google Docs• http://bit.ly/PXC-meetup-gdocs
Percona XtraDB Cluster
This talk
High Availability
Replication
Cluster
Percona XtraDB Cluster
What is HA
Availability
Avail ~ Ability
Ability to Avail
Percona XtraDB Cluster
Availability by redundancy
Percona XtraDB Cluster
Duplicate resources
Percona XtraDB Cluster
Failover
Percona XtraDB Cluster
Probability of failure
Single server: P
Two servers:
P/2
X servers: P/X
Percona XtraDB Cluster
Probability of failure
1 2 3 4 5 6 7 8 9 10
N of servers
Pro
bab
ilit
y o
f fa
ilu
re
Easy ?Not if we deal with databases
Percona XtraDB Cluster
Percona XtraDB Cluster
Database
Percona XtraDB Cluster
Redundancy ?
Percona XtraDB Cluster
Database availability is hard
Service availabili
ty
Data availabili
ty
Percona XtraDB Cluster
Replication
MySQL Replication
Percona XtraDB Cluster
If your HA is based on MySQL Replication –You are doing it wrong
Percona XtraDB Cluster
What is wrong with MySQL replication ?
“a”
Percona XtraDB Cluster
What is wrong with MySQL replication ?
“a” in async
Percona XtraDB Cluster
What is wrong with MySQL replication ?
“async”
vs
“sync”
Percona XtraDB Cluster
Async
Percona XtraDB Cluster
Async
Percona XtraDB Cluster
sync
Percona XtraDB Cluster
Didn’t we just reinvent DRBD ?
Percona XtraDB Cluster
DRBD
Percona XtraDB Cluster
Clustering
Percona XtraDB Cluster
Percona XtraDB ClusterFree and Open Source
Percona XtraDB Cluster
Percona XtraDB Cluster
Percona XtraDB Cluster
Virtually synchronoushttp://en.wikipedia.org/wiki/Virtual_synchrony
Percona XtraDB Cluster
Virtually synchronous
Percona XtraDB Cluster
synchronous
replication
multi-master
replication
parallel applying on slaves
data consistenc
y
automatic node
provisioning
Percona XtraDB Cluster
synchronous
replication
multi-master
replication
parallel applying on slaves
data consistenc
y
automatic node
provisioning
Percona XtraDB Cluster
Multi-master: MySQL
Percona XtraDB Cluster
Multi-master: XtraDB Cluster
Percona XtraDB Cluster
synchronous
replication
multi-master
replication
parallel applying on slaves
data consistenc
y
automatic node
provisioning
Percona XtraDB Cluster
Parallel apply: MySQL
Percona XtraDB Cluster
Parallel apply: XtraDB Cluster
Percona XtraDB Cluster
synchronous
replication
multi-master
replication
parallel applying on slaves
data consistenc
y
automatic node
provisioning
Percona XtraDB Cluster
XtraDB Cluster data consistency
Percona XtraDB Cluster
synchronous
replication
multi-master
replication
parallel applying on slaves
data consistenc
y
automatic node
provisioning
Percona XtraDB Cluster
Node provisioning
Percona XtraDB Cluster
CAP theoremhttp://en.wikipedia.org/wiki/CAP_theorem
Percona XtraDB Cluster
Pick only TWO
Consistency
Node availabilit
y
Partition Tolerance
Percona XtraDB Cluster
Network failure
Percona XtraDB Cluster
MySQL Replication
Access to all systems - YES
Data consistency - NO
Percona XtraDB Cluster
XtraDB Cluster
Access to all systems - NO
Data consistency - YES
Percona XtraDB Cluster
3 nodes is the minimal recommended configuration
Percona XtraDB Cluster
Split brain
Which system to make available ?
Percona XtraDB Cluster
Split brain
But you deal with consequences
You still can have this setup
Percona XtraDB Cluster
Choice
MySQL Replication:Access to all systems
Data consistency XtraDB Cluster:
Percona XtraDB Cluster
MySQL replication
based
MMM
MHA
Flipper
PRM
Percona XtraDB Cluster
Percona XtraDB Cluster details
Percona XtraDB Cluster
PerconaXtraDB Cluster
Percona Server
WSREP patches
Galera library
Percona XtraDB Cluster
Full compatibil
ity with existing systems
Percona XtraDB Cluster
Minimal efforts to migrate
Percona XtraDB Cluster
Minimal efforts to
return back to MySQL
Percona XtraDB Cluster
So, is this a perfect solution?
Percona XtraDB Cluster
Limitationssome will be solved later
Percona XtraDB Cluster
Only InnoDB tables are supported
Percona XtraDB Cluster
OPTIMISTIC locking for transactions on different servershttp://en.wikipedia.org/wiki/Optimistic_concurrency_control
Percona XtraDB Cluster
Traditional locking
Percona XtraDB Cluster
Optimistic locking
Percona XtraDB Cluster
The write performance is limited by weakest node
Percona XtraDB Cluster
Write performance
Percona XtraDB Cluster
For write intensive applications there could be datasize limit per nodeNot physical but logical
Percona XtraDB Cluster
Join process. Step 1
Percona XtraDB Cluster
Join process. Step 2
Percona XtraDB Cluster
Join process: step 3
Percona XtraDB Cluster
This is software + hardware solution
Percona XtraDB Cluster
InnoDB write performance
Percona XtraDB Cluster
InnoDB performance + ACID
Percona XtraDB Cluster
Cluster performance
•10 GigE •Infiniband
Network
•SSD•PCI-e Flash
Storage
Percona XtraDB Cluster
Join process
Percona XtraDB Cluster
State Transfer
Full data SST
New node
Node long time
disconnected
Incremental IST
Node disconnect
ed short time
Percona XtraDB Cluster
Snapshot State Transfer
Mysqldump
Small databases
Rsync
Donor disconnected for copy
time
faster
XtraBackup
Donor disconnect
ed for short time
slower
Percona XtraDB Cluster
Incremental State TransferNode was in cluster
Disconnected for
maintenance
Node Crashed (work in
progress)
Percona XtraDB Cluster
Scaleability
Percona XtraDB Cluster
Scaleability
Scale ~ Ability
Ability to Scale
Percona XtraDB Cluster
Scaleability is similar to availability
Percona XtraDB Cluster
XtraDB Cluster: Reads scalability is easy
Percona XtraDB Cluster
Write scalability is complicated
Percona XtraDB Cluster
N servers scale to :
•N factor100% reads
•……
•N/2 factor50/50
•……
•1 or const100% writes
Percona XtraDB Cluster
10 servers scale to :
• 1 server: 100 q/s• 10 servers: 1000
q/s
100% reads
• 1 server: 100 q/s• 10 servers: 500
q/s50/50
• 1 server: 100 q/s• 10 servers: 100
q/s (can be more)
100% writes
Percona XtraDB Cluster
FAQQuestions I am asked
Percona XtraDB Cluster
It looks so easy. Why did not you implement it earlier?It is not easy.Computer science of group communication and distributed transactions.Credits to Codership Oy
Percona XtraDB Cluster
How fast is it?Reasonably fast.
Percona XtraDB Cluster
Can I replicate XtraDB Cluster to MySQL Replication?Yes
Percona XtraDB Cluster
Async MySQL Replication
Percona XtraDB Cluster
Would I install it on a production system?Yes. I am going to upgrade MySQLPerformanceBlog.com to use XtraDB Cluster
Percona XtraDB Cluster
How it is compared to MySQL Cluster?It is different
Percona XtraDB Cluster
XtraDB Cluster
MySQL Cluster
Easy to migrate Easy to use Cloud / EC2 Changes in an application
Write scaling 99.999%
Percona XtraDB Cluster
Resources• http://www.percona.com/software/percona-xtradb-cluster/• http://www.codership.com/wiki/doku.php• Virtual synchrony• http://en.wikipedia.org/wiki/Virtual_synchrony
• CAP Theorem• http://en.wikipedia.org/wiki/CAP_theorem
• Optimistic locking• http://en.wikipedia.org/wiki/Optimistic_concurrency_control
Percona XtraDB Cluster
Credits• WSREP patches and Galera library is developed by Codership Oy
Percona XtraDB Cluster
Thank you!
Questions ?
You can try Percona XtraDB Cluster today!