Top Banner
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US High Availability Using MySQL Group Replication Luís Soares ([email protected]) Principal Software Engineer 1
58

High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Jul 24, 2020

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: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

High Availability Using MySQL Group Replication

Luís Soares ([email protected])Principal Software Engineer

1

Page 2: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights 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 Oracle’s products remains at the sole discretion of Oracle.

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US 2

Page 3: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Program Agenda

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 4: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Program Agenda

Background

MySQL Group Replication

Architecture

Big Picture

Conclusion

1

2

3

4

5

4Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 5: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Background1

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 6: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

M S

S

S

S

M

write clients read clientsread clients

write clients

Morereads?More

slaves!

Read scale-out

Background: What is Replication Used For?

6Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 7: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

C

B

A

C

B

ACrash

C

B

A

B is thenew master

Uh Oh! Whew!

Redundancy as a major building block for high availability: If master crashes, promoteslave to master

Background: What is Replication Used For?

7Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 8: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

MySQL Group Replication

• What is MySQL Group Replication?

“Update everywhere replication plugin for MySQL with built-in automatic distributed recovery, conflict handling, group membership and distributed agreement.”

• 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.

– Automatic distributed coordination (protects against split-brain and message loss).

– Less admin overhead, means more fun time!

8Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 9: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

MySQL Group Replication

9

M M M M M

Replication Group

Clients

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 10: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Some Theory Behind It...

• Implementation based in Replicated Database State Machines

– Group Communication Primitives resemble properties of Databases.

• Deferred update replication: propagate atomically, check conflicts, eventually apply

– Distributed state machine requires agreed delivery – implies total order;

– Deterministic certification requires total order delivery.

• Membership Service

–Which servers are participating in the replication group at a given moment in time? (associated with a logical timestamp [ - view identifier]).

10Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 11: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

MySQL Group Replication2

2.1 Multi-Master

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 12: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

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.

12

M M M M M

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

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 13: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

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.

13

M M M M M

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

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 14: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

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.

14

M M M M M

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

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 15: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

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.

15

M M M M M

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

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 16: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

MySQL Group Replication2

2.1

2.2

Multi-Master

Automatic distributed server recovery

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 17: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Automatic distributed server recovery!

• Server that joins the group will automatically synchronize with the others.

17

M M M M M N

I want to play with you

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 18: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Automatic distributed server recovery!

• Server that joins the group will automatically synchronize with the others.

18

M M M M M N

ONLINERECOVERING

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 19: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Automatic distributed server recovery!

• Server that joins the group will automatically synchronize with the others.

19

M M M M M N

ONLINE

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 20: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Automatic distributed server recovery!

• If a server leaves the group, the others will automatically be informed.

20

M M M M M M

My machine needs maintenanceor a system crash happens

Each membership configurationis identified by a logical timestamp,

i.e., view_id

view_id: 4

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 21: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Automatic distributed server recovery!

• If a server leaves the group, the others will automatically be informed.

21

M M M M M

view_id: 5

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 22: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Automatic distributed server recovery!

• Server that (re)joins the group will automatically synchronize with the others.

22

M M M M M M

RECOVERING -> ONLINE

view_id: 6

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 23: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

MySQL Group Replication2

2.1

2.2

2.3

Multi-Master

Automatic distributed server recovery

MySQL/InnoDB look & feel

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 24: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

MySQL/InnoDB look & feel!

• Load the plugin and start replicating.

• Monitor group replication stats though Performance Schema tables.

24

mysql> SET GLOBAL group_replication_group_name= "9eb07c6d-5e24-11e5-854b-34028662c0cd";mysql> START GROUP_REPLICATION;

mysql> SELECT * FROM performance_schema.replication_group_members\G*************************** 1. row ***************************CHANNEL_NAME: group_replication_applierMEMBER_ID: 597dbb72-3e2c-11e4-9d9d-ecf4bb227f3bMEMBER_HOST: nightfuryMEMBER_PORT: 13000MEMBER_STATE: ONLINE*************************** 2. row ***************************...

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 25: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

MySQL/InnoDB look & feel!

• Load the plugin and start replicating.

• Monitor group replication stats though Performance Schema tables.

25

mysql> SELECT * FROM performance_schema.replication_group_member_stats\G*************************** 1. row ***************************CHANNEL_NAME: group_replication_applierVIEW_ID: 1428497631:3MEMBER_ID: e38fdea8-dded-11e4-b211-e8b1fc3848deCOUNT_TRANSACTIONS_IN_QUEUE: 0COUNT_TRANSACTIONS_CHECKED: 12COUNT_CONFLICTS_DETECTED: 5COUNT_TRANSACTIONS_VALIDATING: 6TRANSACTIONS_COMMITTED_ALL_MEMBERS: 8a84f397-aaa4-18df-89ab-c70aa9823561:1-7LAST_CONFLICT_FREE_TRANSACTION: 8a84f397-aaa4-18df-89ab-c70aa9823561:7

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 26: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

MySQL/InnoDB look & feel!

• Load the plugin and start replicating.

• Monitor group replication stats though Performance Schema tables.

26

mysql> SELECT * FROM performance_schema.replication_connection_status\G*************************** 1. row ***************************CHANNEL_NAME: group_replication_applierGROUP_NAME: 8a94f357-aab4-11df-86ab-c80aa9429563SOURCE_UUID: 8a94f357-aab4-11df-86ab-c80aa9429563THREAD_ID: NULLSERVICE_STATE: ON...

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 27: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

MySQL Group Replication2

2.1

2.2

2.3

2.4

Multi-Master

Automatic distributed server recovery

MySQL/InnoDB look & feel

Full GTID support

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 28: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Full GTID support!

• All group members share the same UUID, the group name.

28

M M M M M

INSERT y;Will have GTID: group_name:2

INSERT x;Will have GTID: group_name:1

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 29: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Full GTID support!

• Users can specify the identifier for the transaction.

29

M M M M M

INSERT y;Will have GTID: group_name:1

SET GTID_NEXT= “UUID:50”INSERT x;

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 30: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Full GTID support!

• You can even replicate from a outside server to a group, global identifiers will be preserved.

30

M M M M M

Conflicts will be detected!

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 31: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

MySQL Group Replication2

2.1

2.2

2.3

2.4

2.5

Multi-Master

Automatic distributed server recovery

MySQL/InnoDB look & feel

Auto-increment configuration/handling

Full GTID support

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 32: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Auto-increment configuration/handling

• Group is configured not to generate the same auto-increment value on all members.

32

M M M M M

INSERT y;y: 4

INSERT z;z: 11

INSERT x;x: 1

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 33: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

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

Auto-increment configuration/handling

• By default, the offset is provided by server_id and increment is 7 [1].

33

M M M M M

INSERT y;y: 4

INSERT z;z: 11

INSERT x;x: 1

server_id: 1server_id: 4

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 34: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Auto-increment configuration/handling

• Users can change the increment size to their needs using GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT option.

34

M M M M M

INSERT y;y: 4

INSERT z;z: 11

INSERT x;x: 1

server_id: 1server_id: 4

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 35: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

New distributed agreement and communication engine

MySQL Group Replication2

2.1

2.2

2.3

2.4

2.5

2.6

Multi-Master

Automatic distributed server recovery

MySQL/InnoDB look & feel

Auto-increment configuration/handling

Full GTID support

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 36: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

New Distributed Agreement and Communications Engine

• Multiple OS support.

– Linux, but also Windows, OSX, Solaris, FreeBSD…

• No third-party software required.

• No network multicast support required.

–MySQL Group Replication can now operate on cloud based installations on which multicast is disallowed.

• No message size limit.

• No separate process.–MySQL Group Replication is now self-contained on the same software stack.

36Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 37: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Requirements

New distributed agreement and communication engine

Auto-increment configuration/handling

Full GTID support

MySQL/InnoDB look & feel

Limitations

MySQL Group Replication2

2.3

2.4

2.5

2.6

2.7

2.8

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 38: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Requirements (by design)

• Support for InnoDB only.

• Primary key is required on every table.

• Requires global transaction identifiers turned on.

• Optimistic execution: transactions may abort on COMMIT due to conflicts with concurrent transactions on other members.

38Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 39: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Requirements

New distributed agreement and communication engine

Auto-increment configuration/handling

Full GTID support

MySQL/InnoDB look & feel

Limitations

MySQL Group Replication2

2.3

2.4

2.5

2.6

2.7

2.8

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 40: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Limitations

• Concurrent schema changes are not supported.

40Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 41: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

ArchitectureIntroduction

3

3.1

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 42: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

MySQL Group Replication is

• Built on top of proven technology!

– Shares much of MySQL Replication infrastructure – thence does not feel alien!

–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.

42Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 43: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Major Building Blocks

ArchitectureIntroduction

3

3.1

3.2

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 44: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Major Building Blocks (1)

44

M M M M M

Com. API

ReplicationPlugin

API

MySQLServer

Group Comm.

System (Corosync)Group Com. Engine

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 45: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Major Building Blocks (2)

• Server calls into the plugin through a generic interface

– (Most of server) internals are hidden from the plugin.

– Some of the semi-sync interfaces were reused. Others were deployed.

• Plugin interacts with the server through a generic interface– Replication plugin determines the fate of the commit

operation through a well defined server interface.

– The plugin makes use of the relay log infrastructure to inject changes in the receiving server.

45

Com. API

ReplicationPlugin

API

MySQLServer

Group Comm.

System (Corosync)Group Com. Engine

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 46: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Major Building Blocks (3)

• The plugin is responsible for

–Maintaining distributed execution context.

– Detecting conflicts.

– Handling distributed recovery:• Detect membership changes;

• Donate state if needed;

• Collect state if needed.

– Receiving and handling transactions from other members.

– Deciding the fate of on-going transactions.

46

Com. API

ReplicationPlugin

API

MySQLServer

Group Comm.

System (Corosync)Group Com. Engine

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 47: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Major Building Blocks (4)

• The communication API (and bindings) is responsible for:

– Abstracting the underlaying communication engine from the plugin itself.

–Maping the interface to a specific communication engine.

47

Com. API

ReplicationPlugin

API

MySQLServer

Group Comm.

System (Corosync)Group Com. Engine

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 48: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Major Building Blocks (5)

• The communication engine:

– Variant of Paxos developed at MySQL.

– Building block to provide distributed agreement between servers.

48

Com. API

ReplicationPlugin

API

MySQLServer

Group Comm.

System (Corosync)Group Com. Engine

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 49: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

The Complete Stack

Major Building Blocks

ArchitectureIntroduction

3

3.1

3.2

3.3

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 50: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

The Complete Stack

50

API

ReplicationPlugin

API

MySQLServer

Performance Schema Tables: Monitoring

MySQL

APIs: Lifecycle / Capture / Applier

InnoDB

Replication Protocol

Group Com. API

XCom

Network

Plu

ginCapture Applier

ConflictsHandler

Group Comm.System (Corosync)

Group Com. EngineGroup Com. Binding

Recovery

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 51: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Use casesUse cases

4

4.1

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 52: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

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.

• 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.

• Alternative to Master-Slave replication– It may be that a single master server makes it a single point of contention. Writing to

an entire group may prove more scalable under certain circumstances.

52Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 53: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Use casesUse cases

4

4.1

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

4.2 Big Picture

Page 54: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Dependable and Scalable MySQL Setups

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

M

App

M M

Orchestrate & Manage

MApp M M

Simple Shard Mapping, State and Extra metadata.

Control, Coordinate, Provision

...

Monitoring (MEM)

MySQL Router Group Replication – Shard 1

Group Replication – Shard NC, PHP, Perl, ...

54

MySQL Router

Page 55: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Conclusion5

Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 56: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

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.

56Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 57: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Where to go from here?

• Packages

– http://labs.mysql.com

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

57Monday, April 25, 2016 MySQL Innovation Day 2016 - Redwood Shores, CA, US

Page 58: High Availability Using MySQL Group Replication · 2020-06-19 · MySQL Group Replication •What is MySQL Group Replication? “Update everywhere replication plugin for MySQL with