Top Banner
Percona XtraDB Cluster powered by Galera Vadim Tkachenko Percona Inc, co-founder, CTO www.percona.com www.mysqlperformanceblog.com
93

Percona XtraDB 集群

May 06, 2015

Download

Technology

YUCHENG HU

Percona XtraDB 集群

http://www.ossez.com/forum.php?mod=viewthread&tid=26861&fromuid=426
(出处: OSSEZ)
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: Percona XtraDB 集群

Percona XtraDB Clusterpowered by Galera

Vadim TkachenkoPercona Inc, co-founder, CTO

www.percona.comwww.mysqlperformanceblog.com

Page 2: Percona XtraDB 集群

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

Page 3: Percona XtraDB 集群

This talk

Percona XtraDB Cluster

Page 4: Percona XtraDB 集群

What is HA

Percona XtraDB Cluster

Page 5: Percona XtraDB 集群

Availability by redundancy

Percona XtraDB Cluster

Page 6: Percona XtraDB 集群

Duplicate resources

Percona XtraDB Cluster

Page 7: Percona XtraDB 集群

Failover

Percona XtraDB Cluster

Page 8: Percona XtraDB 集群

Percona XtraDB Cluster

Page 9: Percona XtraDB 集群

Probability of failure

Percona XtraDB Cluster

Page 10: Percona XtraDB 集群

Easy ?Not if we deal with databases

Percona XtraDB Cluster

Page 11: Percona XtraDB 集群

Database

Percona XtraDB Cluster

Page 12: Percona XtraDB 集群

Redundancy ?

Percona XtraDB Cluster

Page 13: Percona XtraDB 集群

Database availability is hard

Percona XtraDB Cluster

Page 14: Percona XtraDB 集群

Replication

Percona XtraDB Cluster

Page 15: Percona XtraDB 集群

Percona XtraDB Cluster

Page 16: Percona XtraDB 集群
Page 17: Percona XtraDB 集群

What is wrong with MySQL replication ?

Percona XtraDB Cluster

Page 18: Percona XtraDB 集群

What is wrong with MySQL replication ?

Percona XtraDB Cluster

Page 19: Percona XtraDB 集群

What is wrong with MySQL replication ?

Percona XtraDB Cluster

Page 20: Percona XtraDB 集群

Async

Percona XtraDB Cluster

Page 21: Percona XtraDB 集群

Async

Percona XtraDB Cluster

Page 22: Percona XtraDB 集群

sync

Percona XtraDB Cluster

Page 23: Percona XtraDB 集群

Didn’t we just reinvent DRBD ?

Percona XtraDB Cluster

Page 24: Percona XtraDB 集群

DRBD

Percona XtraDB Cluster

Page 25: Percona XtraDB 集群

Clustering

Percona XtraDB Cluster

Page 26: Percona XtraDB 集群

Percona XtraDB ClusterFree and Open Source

Percona XtraDB Cluster

Page 27: Percona XtraDB 集群

Percona XtraDB Cluster

Percona XtraDB Cluster

Page 28: Percona XtraDB 集群

Virtually synchronoushttp://en.wikipedia.org/wiki/Virtual_synchrony

Percona XtraDB Cluster

Page 29: Percona XtraDB 集群

Virtually synchronous

Percona XtraDB Cluster

Page 30: Percona XtraDB 集群

Percona XtraDB Cluster

Page 31: Percona XtraDB 集群

Percona XtraDB Cluster

Page 32: Percona XtraDB 集群

Multi-master: MySQL

Percona XtraDB Cluster

Page 33: Percona XtraDB 集群

Multi-master: XtraDB Cluster

Percona XtraDB Cluster

Page 34: Percona XtraDB 集群

Percona XtraDB Cluster

Page 35: Percona XtraDB 集群

Parallel apply: MySQL

Percona XtraDB Cluster

Page 36: Percona XtraDB 集群

Parallel apply: XtraDB Cluster

Percona XtraDB Cluster

Page 37: Percona XtraDB 集群

Percona XtraDB Cluster

Page 38: Percona XtraDB 集群

XtraDB Cluster data consistency

Percona XtraDB Cluster

Page 39: Percona XtraDB 集群

Percona XtraDB Cluster

Page 40: Percona XtraDB 集群

Node provisioning

Percona XtraDB Cluster

Page 41: Percona XtraDB 集群

CAP theoremhttp://en.wikipedia.org/wiki/CAP_theorem

Percona XtraDB Cluster

Page 42: Percona XtraDB 集群

Pick only TWO

Percona XtraDB Cluster

Page 43: Percona XtraDB 集群

Network failure

Percona XtraDB Cluster

Page 44: Percona XtraDB 集群

MySQL Replication

Percona XtraDB Cluster

Access to all systems - YES

Data consistency - NO

Page 45: Percona XtraDB 集群

XtraDB Cluster

Percona XtraDB Cluster

Access to all systems - NO

Data consistency - YES

Page 46: Percona XtraDB 集群

3 nodes is the minimal recommended configuration

Percona XtraDB Cluster

Page 47: Percona XtraDB 集群

Split brain

Percona XtraDB Cluster

Which system to make available ?

Page 48: Percona XtraDB 集群

Split brain

Percona XtraDB Cluster

But you deal with consequencesYou still can have this setup

Page 49: Percona XtraDB 集群

Choice

Percona XtraDB Cluster

MySQL Replication:Access to all systems

Data consistency XtraDB Cluster:

Page 50: Percona XtraDB 集群

Percona XtraDB Cluster

Page 51: Percona XtraDB 集群

Percona XtraDB Cluster details

Percona XtraDB Cluster

Page 52: Percona XtraDB 集群

Percona XtraDB Cluster

Page 53: Percona XtraDB 集群

Percona XtraDB Cluster

Page 54: Percona XtraDB 集群

Percona XtraDB Cluster

Page 55: Percona XtraDB 集群

Percona XtraDB Cluster

Page 56: Percona XtraDB 集群

So, is this a perfect solution?

Percona XtraDB Cluster

Page 57: Percona XtraDB 集群

Limitationssome will be solved later

Percona XtraDB Cluster

Page 58: Percona XtraDB 集群

Only InnoDB tables are supported

Percona XtraDB Cluster

Page 59: Percona XtraDB 集群

OPTIMISTIC locking for transactions on different servershttp://en.wikipedia.org/wiki/Optimistic_concurrency_control

Percona XtraDB Cluster

Page 60: Percona XtraDB 集群

Traditional locking

Percona XtraDB Cluster

Page 61: Percona XtraDB 集群

Optimistic locking

Percona XtraDB Cluster

Page 62: Percona XtraDB 集群

The write performance is limited by weakest node

Percona XtraDB Cluster

Page 63: Percona XtraDB 集群

Write performance

Percona XtraDB Cluster

Page 64: Percona XtraDB 集群

For write intensive applications there could be datasize limit per nodeNot physical but logical

Percona XtraDB Cluster

Page 65: Percona XtraDB 集群

Join process. Step 1

Percona XtraDB Cluster

Page 66: Percona XtraDB 集群

Join process. Step 2

Percona XtraDB Cluster

Page 67: Percona XtraDB 集群

Join process: step 3

Percona XtraDB Cluster

Page 68: Percona XtraDB 集群

This is software + hardware solution

Percona XtraDB Cluster

Page 69: Percona XtraDB 集群

InnoDB write performance

Percona XtraDB Cluster

Page 70: Percona XtraDB 集群

InnoDB performance + ACID

Percona XtraDB Cluster

Page 71: Percona XtraDB 集群

Cluster performance

Percona XtraDB Cluster

Page 72: Percona XtraDB 集群

Join process

Percona XtraDB Cluster

Page 73: Percona XtraDB 集群

State Transfer

Percona XtraDB Cluster

Page 74: Percona XtraDB 集群

Snapshot State Transfer

Percona XtraDB Cluster

Page 75: Percona XtraDB 集群

Incremental State Transfer

Percona XtraDB Cluster

Page 76: Percona XtraDB 集群

Scaleability

Percona XtraDB Cluster

Page 77: Percona XtraDB 集群

Percona XtraDB Cluster

Page 78: Percona XtraDB 集群

Scaleability is similar to availability

Percona XtraDB Cluster

Page 79: Percona XtraDB 集群

XtraDB Cluster: Reads scalability is easy

Percona XtraDB Cluster

Page 80: Percona XtraDB 集群

Write scalability is complicated

Percona XtraDB Cluster

Page 81: Percona XtraDB 集群

N servers scale to :

Percona XtraDB Cluster

Page 82: Percona XtraDB 集群

10 servers scale to :

Percona XtraDB Cluster

Page 83: Percona XtraDB 集群

FAQQuestions I am asked

Percona XtraDB Cluster

Page 84: Percona XtraDB 集群

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

Page 85: Percona XtraDB 集群

How fast is it?Reasonably fast.

Percona XtraDB Cluster

Page 86: Percona XtraDB 集群

Can I replicate XtraDB Cluster to MySQL Replication?Yes

Percona XtraDB Cluster

Page 87: Percona XtraDB 集群

Percona XtraDB Cluster

Async MySQL Replication

Page 88: Percona XtraDB 集群

Would I install it on a production system?Yes. I am going to upgrade MySQLPerformanceBlog.com to use XtraDB Cluster

Percona XtraDB Cluster

Page 89: Percona XtraDB 集群

How it is compared to MySQL Cluster?It is different

Percona XtraDB Cluster

Page 90: Percona XtraDB 集群

XtraDB Cluster

MySQL Cluster

Easy to migrate Easy to use Cloud / EC2 Changes in an application Write scaling 99.999%

Percona XtraDB Cluster

Page 91: Percona XtraDB 集群

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

Page 92: Percona XtraDB 集群

Credits• WSREP patches and Galera library is developed by Codership

Oy

Percona XtraDB Cluster

Page 93: Percona XtraDB 集群

Thank you!

Percona XtraDB Cluster