Вы находитесь на странице: 1из 74

#MySQL #oow16

MySQL High Availability


with Group Replication
Nuno Carvalho (nuno.carvalho@oracle.com)
Principal Software Engineer, MySQL Replication Service Team Lead

Copyright
Copyright2016,
2016,Oracle
Oracleand/or
and/oritsitsaffiliates.
affiliates.All
Allrights
rightsreserved.
reserved.|
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracles products remains at the sole discretion of Oracle.

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 2
Program Agenda

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Program Agenda
1 Background
2 MySQL Group Replication
3 Architecture
4 Use cases
5 Performance
6 Conclusion

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 4
1
Background

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Background: What is Replication Used For?
Read scale-out

More
reads? M S
M S More
slaves!
S

write clients
write clients read clients
read clients

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 6
Background: What is Replication Used For?
Redundancy: If master crashes, promote slave to master

B B B

Uh Oh! Whew!
A A
Crash A

C C C

B is the
new master

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 7
MySQL Group Replication
What is MySQL Group Replication?
Multi-master update everywhere replication plugin for MySQL with built-in automatic
distributed recovery, conflict detection and group membership.

What does the MySQL Group Replication plugin do for the user?
Removes the need for handling server fail-over.
Provides fault tolerance.
Enables update everywhere setups.
Automates group reconfiguration (handling of crashes, failures, re-connects).
Provides a highly available replicated database.

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 8
MySQL Group Replication
Clients

M M M M M

Replication Group

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 9
Timeline - Server GA and GR Releases

MySQL 5.6.10 GR 0.6.0 labs


multi-platform support
GR 0.9.0 labs (RC)
Paxos-based consensus
GR 0.2.0 labs GR 0.5.0 labs multi-threaded applier support
Hello world! auto-inc fields handling single primary mode
GR 0.4.0 labs recovery enhancements
version handling GR 0.8.0 labs (beta)
GR 0.7.0 labs performance enhancements
bug fixes replication stream compression
GR 0.3.0 labs SSL support
support for corosync 2.x MySQL 5.7.9
lifecycle interfaces IP whitelisting
P_S tables for GR read-only mode
Server side changes error log enhancements
split brain handling
Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 10
2
MySQL Group Replication
2.1 Multi-Master

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Multi-Master update everywhere!
Any two transactions on different servers can write to the same tuple.
Conflicts will be detected and dealt with.
First committer wins rule.

UPDATE t1 SET a=3 WHERE a=1 UPDATE t1 SET a=4 WHERE a=2

M M M M M

http://mysqlhighavailability.com/mysql-group-replication-transaction-life-cycle-explained/
Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 12
Multi-Master update everywhere!
Any two transactions on different servers can write to the same tuple.
Conflicts will be detected and dealt with.
First committer wins rule.

OK
UPDATE t1 SET a=3 WHERE a=1
OK
UPDATE t1 SET a=4 WHERE a=2

M M M M M

http://mysqlhighavailability.com/mysql-group-replication-transaction-life-cycle-explained/
Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 13
Multi-Master update everywhere!
Any two transactions on different servers can write to the same tuple.
Conflicts will be detected and dealt with.
First committer wins rule.

UPDATE t1 SET a=3 WHERE a=1 UPDATE t1 SET a=2 WHERE a=1

M M M M M

http://mysqlhighavailability.com/mysql-group-replication-transaction-life-cycle-explained/
Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 14
Multi-Master update everywhere!
Any two transactions on different servers can write to the same tuple.
Conflicts will be detected and dealt with.
First committer wins rule.

UPDATE t1 SET a=3 WHERE a=1 UPDATE t1 SET a=2 WHERE a=1
OK
M M M M M

http://mysqlhighavailability.com/mysql-group-replication-transaction-life-cycle-explained/
Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 15
2
MySQL Group Replication
2.1 Multi-Master
2.2 Automatic distributed server recovery

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Automatic distributed server recovery!
Server that joins the group will automatically synchronize with the others.

I want to play with you

M M M M M N

http://mysqlhighavailability.com/distributed-recovery-behind-the-scenes/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 17
Automatic distributed server recovery!
Server that joins the group will automatically synchronize with the others.

ONLINE
RECOVERING

M M M M M N

http://mysqlhighavailability.com/distributed-recovery-behind-the-scenes/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 18
Automatic distributed server recovery!
Server that joins the group will automatically synchronize with the others.

ONLINE

M M M M M N

http://mysqlhighavailability.com/distributed-recovery-behind-the-scenes/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 19
Automatic distributed server recovery!
If a server leaves the group, the others will automatically be informed.

Each membership configuration My machine needs maintenance


is identified by a view_id or a system crash happens

M M M M M M

view_id: 4
http://mysqlhighavailability.com/distributed-recovery-behind-the-scenes/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 20
Automatic distributed server recovery!
If a server leaves the group, the others will automatically be informed.

M M M M M

http://mysqlhighavailability.com/distributed-recovery-behind-the-scenes/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 21
Automatic distributed server recovery!
Server that (re)joins the group will automatically synchronize with the
others.

RECOVERING -> ONLINE

M M M M M M

view_id: 5
http://mysqlhighavailability.com/distributed-recovery-behind-the-scenes/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 22
2
MySQL Group Replication
2.1 Multi-Master
2.2 Automatic distributed server recovery
2.3 MySQL/InnoDB look & feel

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
MySQL look & feel!
MySQL Plugin
Regular MySQL Plugin. Nothing new.

MySQL InnoDB
Use InnoDB as normally you would. Nothing new.
Transparent optimizations in InnoDB to better support Group Replication.

MySQL Performance Schema


Monitor Group Replication using regular Performance Schema tables. Nothing new.

http://mysqlhighavailability.com/mysql-group-replication-monitoring/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 24
MySQL look & feel!
Outcome
Group Replication is no alien component.
Existing MySQL users feel right at home.
New MySQL users only have to learn MySQL tech, nothing else.

http://mysqlhighavailability.com/mysql-group-replication-monitoring/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 25
Full GTID support!
All group members share the same UUID, the group name.

INSERT x;
Will have GTID: group_name:1
INSERT y;
Will have GTID: group_name:2

M M M M M

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 26
Full GTID support!
Users can specify the identifier for the transaction.

SET GTID_NEXT= UUID:50


INSERT x;
INSERT y;
Will have GTID: group_name:1

M M M M M

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 27
Full GTID support!
You can even replicate from a outside server to a group, global identifiers
will be preserved.

Conflicts will be detected!

M M M M M

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 28
Full GTID support!
You can also replicate from a group to a outside server, global identifiers
will be preserved.

M M M M M

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 29
2
MySQL Group Replication
2.1 Multi-Master
2.2 Automatic distributed server recovery
2.3 MySQL/InnoDB look & feel
2.4 Full GTID support
2.5 Auto-increment configuration/handling

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Auto-increment configuration/handling
Group is configured not to generate the same auto-increment value on all
members.
INSERT y;
INSERT x; y: 4
x: 1
INSERT z;
z: 11

M M M M M

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 31
Auto-increment configuration/handling
By default, the offset is provided by server_id and increment is 7 [1].

INSERT y;
INSERT x; y: 4
x: 1
INSERT z;
z: 11

server_id: 1
server_id: 4
M M M M M

[1]: http://mysqlhighavailability.com/mysql-group-replication-auto-increment-configuration-handling/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 32
Auto-increment configuration/handling
Users can change the increment size to their needs using
GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT option.
INSERT y;
INSERT x; y: 4
x: 1
INSERT z;
z: 11

server_id: 1
server_id: 4
M M M M M

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 33
2
MySQL Group Replication
2.1 Multi-Master
2.2 Automatic distributed server recovery
2.3 MySQL/InnoDB look & feel
2.4 Full GTID support
2.5 Auto-increment configuration/handling
2.6 Plugin version access control

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Plugin Version Access Control
When joining, versions are crucial when determining if a member is
compatible with a group.

Member with different patch


version is allowed to join

5.7.13 5.7.13 5.7.14 5.7.15 5.7.12

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 35
Plugin Version Access Control
When joining, versions are crucial when determining if a member is
compatible with a group.

Member with lower major version


than the major version in
the group is not allowed to join

8.0.0 8.0.0 8.0.0 8.0.0 5.7.15

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 36
Plugin Version Access Control
When joining, versions are crucial when determining if a member is
compatible with a group.

Member with higher major


version is allowed to join but
is not allowed to do writes

5.7.14 5.7.14 5.7.15 5.7.15 8.0.0

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 37
2
MySQL Group Replication
2.1 Multi-Master
2.2 Automatic distributed server recovery
2.3 MySQL/InnoDB look & feel
2.4 Full GTID support
2.5 Auto-increment configuration/handling
2.6 Plugin version access control
2.7 Built-in communication engine

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Built-in Communication Engine
Feature rich new replication plugin based on proven distributed systems
algorithms (Paxos).
Compression, multi-platform, dynamic membership, distributed agreement, quorum
based message passing, SSL, IP whitelisting.
No third-party software required.
No network multicast support required.
MySQL Group Replication can operate on cloud based installations on which multicast
is not allowed.

http://mysqlhighavailability.com/mysql-group-replication-for-mysql-5-7-9/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 39
2
MySQL Group Replication
2.8 Read-only mode

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Read-only mode
When a member joins the group, during distributed recovery, read-only
mode is set automatically.
On a unlikely event of a member failure, read-only mode is set
automatically to prevent inconsistency with the group and member state
changes to ERROR.

M M M M M

http://mysqlhighavailability.com/mysql-group-replication-important-behavior-and-configuration-changes/
Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 41
2
MySQL Group Replication
2.8 Read-only mode
2.9 Full stack secure connections

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Full stack secure connections
Following the industry standards, Group Replication supports secure
connections along the complete stack
Client connections
Distributed recovery connections
Connections between members
IP Whitelisting
Restrict which hosts are allowed to connect to the group
By default it is set to the value AUTOMATIC, which allows connections from private
subnetworks active on the host

http://mysqlhighavailability.com/mysql-group-replication-securing-the-perimeter/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 43
2
MySQL Group Replication
2.8 Read-only mode
2.9 Full stack secure connections
2.10 Parallel applier support

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Parallel applier support
Group Replication now also takes full advantage of parallel binary log
applier infrastructure
Reduces applier lag and improves replication performance considerably
Configured in the same way as in asynchronous replication

--slave_parallel_workers=NUMBER
--slave_parallel_type=logical_clock
--slave_preserve_commit_order=ON

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 45
2
MySQL Group Replication
2.8 Read-only mode
2.9 Full stack secure connections
2.10 Parallel applier support
2.11 Single Primary Mode

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Single Primary Mode
Configuration mode that makes a single member act as a writeable master
(PRIMARY) and the rest of the members act as hot-standbys (SECONDARY).
The group itself coordinates automatically to figure out which is the member that will
act as the PRIMARY, through a leader election mechanism.

Default mode
Closer to classic asynchronous replication setups, simpler to reason about from the
beginning.
Avoids some of the limitations of multi-master mode.

http://mysqlhighavailability.com/mysql-group-replication-for-mysql-5-7-15/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 47
Single Primary Mode
Automatic leader election mechanism
Secundaries are automatically set to read-only

Primary

S S S S P S

http://mysqlhighavailability.com/mysql-group-replication-for-mysql-5-7-15/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 48
Single Primary Mode
Automatic leader election mechanism

Primary

S S S P S

http://mysqlhighavailability.com/mysql-group-replication-for-mysql-5-7-15/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 49
Single Primary Mode
The current primary member UUID can be known by executing the
following SQL statement

mysql> SELECT * FROM performance_schema.global_status WHERE


VARIABLE_NAME='group_replication_primary_member';
VARIABLE_NAME VARIABLE_VALUE
group_replication_primary_member dcd3b36b-79c5-11e6-97b8-00212844d44e

http://mysqlhighavailability.com/mysql-group-replication-for-mysql-5-7-15/

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 50
2
MySQL Group Replication
2.8 Read-only mode
2.9 Full stack secure connections
2.10 Parallel applier support
2.11 Single Primary Mode
2.12 Requirements

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Requirements (by design) Forbidden
Requires InnoDB storage engine Serializable (on multi-master)
Primary key is required on every table Cascading Foreign Keys (on multi-master)
Requires global transaction identifiers Transaction savepoints
turned on
Binary log events checksum
Requires binary log turned on
Requires binary log row format
Optimistic execution: transactions may Warnings
abort on COMMIT due to conflicts
with concurrent transactions on other Concurrent DDL (on multi-master)
members
Up to 9 servers in the group

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 52
3
Architecture
3.1 Introduction

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
MySQL Group Replication is
Built on top of proven technology!
Shares many pieces of MySQL Replication.
Multi-Master approach to replication.
Built on reusable components!
Layered implementation approach.
Interface driven development.
Decoupled from the server core.
The plugin registers as listener to server events.
Reuses the capture procedure from regular replication.
Provides further decoupling from the communication infrasctructure.

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 54
3
Architecture
3.1 Introduction
3.2 Major Building Blocks

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Major Building Blocks (1)

MySQL
Server

API
Replication
Plugin
Com. API
M M M M M
Group Comm.
Group Com. Engine
System (Corosync)

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 56
Major Building Blocks (2)
Server calls into the plugin through a generic
interface
MySQL
Server (Most of server) internals are hidden from the plugin.
Some of the semi-sync interfaces were reused. Others
were created.
API

Replication Plugin interacts with the server through a generic


Plugin
interface
Com. API
Replication plugin determines the fate of the commit
operation through a well defined server interface.
Group Comm.
Group Com. Engine The plugin makes use of the relay log infrastructure to
System (Corosync)
inject changes in the receiving server.

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 57
Major Building Blocks (3)
The plugin is responsible for
MySQL Maintaining distributed execution context.
Server
Detecting conflicts.
API Handling distributed recovery:
Detect membership changes;
Replication Donate state if needed;
Plugin Collect state if needed.
Receiving and handling transactions from other
Com. API
members.
Deciding the fate of on-going transactions.
Group Comm.
Group Com. Engine
System (Corosync)

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 58
Major Building Blocks (4)
The communication API (and bindings) is
MySQL responsible for:
Server
Abstracting the underlaying communication engine
from the plugin itself.
API
Replication Mapping the interface to a specific communication
Plugin engine.

Com. API

Group Comm.
Group Com. Engine
System (Corosync)

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 59
Major Building Blocks (5)
The communication engine:
MySQL Variant of Paxos developed at MySQL.
Server
Building block to provide distributed agreement
API between servers.
Replication
Plugin

Com. API

Group Comm.
Group Com. Engine
System (Corosync)

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 60
3
Architecture
3.1 Introduction
3.2 Major Building Blocks
3.3 The Complete Stack

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
The Complete Stack Performance Schema Tables: Monitoring

MySQL
MySQL
Server
APIs: Lifecycle / Capture / Applier
API
Conflicts
Replication Capture Applier Recovery

Plugin
InnoDB Handler
Plugin
Replication Protocol
API
Group Com. API

Group Com. Binding


Group Comm.
Group Com. Engine
System (Corosync) Group Com. Engine

Network

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 62
4
Use cases

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Use Cases
Elastic Replication
Environments that require a very fluid replication infrastructure, where the number
of servers has to grow or shrink dynamically and with as little pain as possible.

M M M M M

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 64
Use Cases
Highly Available Shards
Sharding is a popular approach to achieve write scale-out. Users can use MySQL
Group Replication to implement highly available shards. Each shard can map into a
Replication Group.

M M M M M M M M M M M M M M M

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 65
Use Cases
Alternative to Master-Slave replication
Single Primary mode provides further automation on such setups
Automatic PRIMARY/SECONDARY roles assignment
Automatic new PRIMARY election on PRIMARY failures
Automatic setup of read/write modes on PRIMARY and SECONDARIES
Global consistent view of which server is the PRIMARY

S S S S P S

Primary
Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 66
5
Performance

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Performance
Group Replication Throughput Peak Throughput
(as perceived by the client application) The number of transactions that
writers can propagate to the group
Single-master Sustained Single-master Peak Multi-master Sustained (per second).
Multi-master Peak Single-server (MySQL 5.7.14) Sustained Throughput
30000 The number of transactions that
25000
can be propagated to the group
without increasing the replication
THROUGHPUT (TPS)

20000 lag on any member (per second).


15000
Servers
10000 9 Dual Xeon E5-2660-v3
5000 Enterprise SSD Storage
10Gbps Ethernet Network
2 3 5 7 9 Client
NUMBER OF SERVERS IN THE GROUP. 1 Dual Xeon E5-2699-v3
Replication Performance blogs at: 10Gbps Ethernet Network
http://mysqlhighavailability.com/category/performance/ Sysbench 0.5 RW workload

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 68
Performance
On a sustained throughput:
Multi-master performance degrades gracefully while going from a group with 2
servers to a group with 9 servers.
Single primary performance degrades marginally when growing the group size.
On a peak throughput:
Multi-master exhibits 1.8X speedup when compared to the single server.
Read load is balanced across the servers in the group.
Write load is lower since execution is balanced across the group, whereas in single primary mode the
primary becomes a bottleneck.
With a single primary there is no lag on the other members.

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 69
6
Conclusion

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US
Summary
Cloud Friendly
Great techonology for deployments where elasticity is a requirement, such as cloud
based infrastructures.
Integrated
With server core through a well defined API.
With GTIDs, row based replication, performance schema tables.
Autonomic and Operations Friendly
It is self-healing: no admin overhead for handling server fail-overs.
Provides fault-tolerance, enables multi-master update everywhere and a dependable
MySQL service.
Lab releases provide a sneak peek at what is coming - a new replication plugin which is
the core for the new MySQL InnoDB Cluster.
Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 71
MySQL InnoDB Cluster: The End Goal
Application Application Application Application
MySQL Connector MySQL Connector MySQL Connector MySQL Connector

MySQL Router MySQL Router MySQL Router MySQL Router

M HA M HA M HA
MySQL Shell
M M M M M M
ReplicaSet 1

ReplicaSet 2

ReplicaSet 3
S1 S2 S3 S4 S S1 S2 S3 S4 S S1 S2 S3 S4

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 72
Where to go from here?
Packages
http://labs.mysql.com

Blogs from the Engineers (news, technical information, and much more)
http://mysqlhighavailability.com

Wednesday, September 21, 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Open World 2016 - San Francisco, California, US 73

Вам также может понравиться