MySQL Group Replication in a nutshell

Similar documents
Introduction to MySQL InnoDB Cluster

MySQL Group Replication in a nutshell

Everything You Need to Know About MySQL Group Replication

MySQL Group Replication. Bogdan Kecman MySQL Principal Technical Engineer

MySQL HA Solutions Selecting the best approach to protect access to your data

MySQL InnoDB Cluster. MySQL HA Made Easy! Miguel Araújo Senior Software Developer MySQL Middleware and Clients. FOSDEM 18 - February 04, 2018

State of the Dolphin Developing new Apps in MySQL 8

MySQL High Availability

Percona XtraDB Cluster

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 8

High Availability Using MySQL Group Replication

MySQL Replication: What's New In MySQL 5.7 and MySQL 8. Luís Soares Software Development Director MySQL Replication

MySQL Group Replication & MySQL InnoDB Cluster

State of MySQL Group Replication

MySQL InnoDB Cluster & Group Replication in a Nutshell: Hands-On Tutorial

MySQL High Availability

MySQL Replication Update

Mix n Match Async and Group Replication for Advanced Replication Setups. Pedro Gomes Software Engineer

G a l e r a C l u s t e r Schema Upgrades

#MySQL #oow16. MySQL Server 8.0. Geir Høydalsvik

MySQL Point-in-Time Recovery like a Rockstar

MySQL Replication: Latest Developments

MySQL High Availability Solutions. Alex Poritskiy Percona

CO MySQL for Database Administrators

Percona XtraDB Cluster ProxySQL. For your high availability and clustering needs

Welcome to Virtual Developer Day MySQL!

MySQL as a Document Store. Ted Wennmark

MySQL Replication. Rick Golba and Stephane Combaudon April 15, 2015

3 / 120. MySQL 8.0. Frédéric Descamps - MySQL Community Manager - Oracle

HA solution with PXC-5.7 with ProxySQL. Ramesh Sivaraman Krunal Bauskar

MySQL Document Store. How to replace a NoSQL database by MySQL without effort but with a lot of gains?

Copyright 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12

MySQL 8.0: Atomic DDLs Implementation and Impact

ITS. MySQL for Database Administrators (40 Hours) (Exam code 1z0-883) (OCP My SQL DBA)

MySQL InnoDB Cluster & Group Replication in a Nutshell: Hands-On Tutorial

Choosing a MySQL HA Solution Today. Choosing the best solution among a myriad of options

Upgrading to MySQL 8.0+: a More Automated Upgrade Experience. Dmitry Lenev, Software Developer Oracle/MySQL, November 2018

MySQL for Database Administrators Ed 3.1

The New Replication Features in MySQL 8. Luís Soares Principal Software Engineer, MySQL Replication Lead

NoSQL + SQL = MySQL Get the Best of Both Worlds

What s new in Percona Xtradb Cluster 5.6. Jay Janssen Lead Consultant February 5th, 2014

MySQL Replication : advanced features in all flavours. Giuseppe Maxia Quality Assurance Architect at

replic8 The Eighth Generation of MySQL Replication Sven Sandberg MySQL Replication Core Team Lead

Consistent Reads Using ProxySQL and GTID. Santa Clara, California April 23th 25th, 2018

MySQL InnoDB Cluster. New Feature in MySQL >= Sergej Kurakin

Database Migration with MySQL Workbench. Alfredo Kojima, Team Lead MySQL Workbench Mike Frank, Product Manager

MySQL Database Administrator Training NIIT, Gurgaon India 31 August-10 September 2015

MySQL & NoSQL: The Best of Both Worlds

Building Highly Available and Scalable Real- Time Services with MySQL Cluster

High availability with MariaDB TX: The definitive guide

Choosing a MySQL HA Solution Today

InnoDB: Status, Architecture, and Latest Enhancements

How do we build TiDB. a Distributed, Consistent, Scalable, SQL Database

Connecting your Microservices and Cloud Services with Oracle Integration CON7348

Choosing a MySQL High Availability Solution. Marcos Albe, Percona Inc. Live Webinar June 2017

Percona XtraDB Cluster MySQL Scaling and High Availability with PXC 5.7 Tibor Korocz

MySQL Cluster Web Scalability, % Availability. Andrew

What s New in MySQL 5.7 Geir Høydalsvik, Sr. Director, MySQL Engineering. Copyright 2015, Oracle and/or its affiliates. All rights reserved.

Power your cloud infrastructure with Oracle VM and Cisco!

Using the MySQL Document Store

MariaDB 10.3 vs MySQL 8.0. Tyler Duzan, Product Manager Percona

The Exciting MySQL 5.7 Replication Enhancements

A Brief Introduction of TiDB. Dongxu (Edward) Huang CTO, PingCAP

Develop Python Applications with MySQL Connector/Python DEV5957

Oracle Exam 1z0-883 MySQL 5.6 Database Administrator Version: 8.0 [ Total Questions: 100 ]

MySQL High Availability. Michael Messina Senior Managing Consultant, Rolta-AdvizeX /

Safe Harbor Statement

Kenny Gryp. Ramesh Sivaraman. MySQL Practice Manager. QA Engineer 2 / 60

MySQL High available by design

<Insert Picture Here> Upcoming Changes in MySQL 5.7 Morgan Tocker, MySQL Community Manager

ProxySQL - GTID Consistent Reads. Adaptive query routing based on GTID tracking

Group Replication: A Journey to the Group Communication Core. Alfranio Correia Principal Software Engineer

MySQL Schema Review 101

Which technology to choose in AWS?

How we build TiDB. Max Liu PingCAP Amsterdam, Netherlands October 5, 2016

Workshop tecnico: MySQL Group Replication in action

MySQL Schema Best Practices

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Building Real-time Data in Web Applications with Node.js

MySQL Architecture Design Patterns for Performance, Scalability, and Availability

Migrating to Aurora MySQL and Monitoring with PMM. Percona Technical Webinars August 1, 2018

Design Patterns for Large- Scale Data Management. Robert Hodges OSCON 2013

Copyright 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12

<Insert Picture Here> Boosting performance with MySQL partitions

Understanding Percona XtraDB Cluster 5.7 Operation and Key Algorithms. Krunal Bauskar PXC Product Lead (Percona Inc.)

<Insert Picture Here>

NoSQL + SQL = MySQL. Nicolas De Rico Principal Solutions Architect

High Availability for Enterprise Clouds: Oracle Solaris Cluster and OpenStack

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Modern Development With MySQL

High Noon at AWS. ~ Amazon MySQL RDS versus Tungsten Clustering running MySQL on AWS EC2

MySQL Replication Advanced Features In 20 minutes

Testing and Verifying your MySQL Backup Strategy

Transformation-free Data Pipelines by combining the Power of Apache Kafka and the Flexibility of the ESB's

Galera in MariaDB 10.4 State of the Art and Plans

Oracle NoSQL Database at OOW 2017

Common MySQL Scalability Mistakes AUTHOR

MySQL Enterprise Security

MySQL 5.6: Advantages in a Nutshell. Peter Zaitsev, CEO, Percona Percona Technical Webinars March 6, 2013

The Hazards of Multi-writing in a Dual-Master Setup

Transcription:

1 / 126

2 / 126 MySQL Group Replication in a nutshell the core of MySQL InnoDB Cluster Oracle Open World September 19th 2016 Frédéric Descamps MySQL Community Manager

3 / 126 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purpose 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 up in making purchasing decisions. The development, release and timing of any features or functionality described for Oracle's product remains at the sole discretion of Oracle.

4 / 126 MySQL Community Reception @ Oracle OpenWorld Celebrate, Have Fun and Mingle with Oracle s MySQL Engineers & Your Peers Tuesday, September 20, 7.00 pm Jillian s at Metreon: 175 Fourth Street, San Francisco At the corner of Howard and 4th st.; only 2-min walk from Moscone Center (same place as last year) Join us!

5 / 126 about.me/lefred Who am I?

6 / 126 Frédéric Descamps @lefred MySQL Evangelist Managing MySQL since 3.23 devops believer

7 / 126 get more at the conference MySQL Group Replication

8 / 126 Other sessions CON2907 - MySQL High Availability Matt Lord CON4669 - MySQL High Availability with Group Replication Nuno Gomes CON3373 - The State of the Art of MySQL Replication Luis Soares HOL2912 - Building a Highly Available MySQL Database Service with Group Replication Matt Lord

9 / 126 Agenda Group Replication concepts

10 / 126 Agenda Group Replication concepts Using new & cool tools

11 / 126 Agenda Group Replication concepts Using new & cool tools Application interaction

12 / 126 the magic explained Group Replication Concept

13 / 126 Group Replication : what is it?

14 / 126 Group Replication : what is it? MySQL is one of the major components of MySQL InnoDB Cluster

15 / 126 Group Replication : what is it? MySQL is one of the major components of MySQL InnoDB Cluster

16 / 126

17 / 126

18 / 126 Group replication is a plugin!

19 / 126 Group replication is a plugin! GR is a plugin for MySQL, made by MySQL and packaged with MySQL

20 / 126 Group replication is a plugin! GR is a plugin for MySQL, made by MySQL and packaged with MySQL GR is an implementation of Replicated Database State Machine theory MySQL Group Communication System (GCS) is based on Paxos

21 / 126 Group replication is a plugin! GR is a plugin for MySQL, made by MySQL and packaged with MySQL GR is an implementation of Replicated Database State Machine theory MySQL Group Communication System (GCS) is based on Paxos Provides virtually synchronous replication for MySQL 5.7+

22 / 126 Group replication is a plugin! GR is a plugin for MySQL, made by MySQL and packaged with MySQL GR is an implementation of Replicated Database State Machine theory MySQL Group Communication System (GCS) is based on Paxos Provides virtually synchronous replication for MySQL 5.7+ Supported on all MySQL platforms!! Linux, Windows, Solaris, OSX, FreeBSD

23 / 126 Multi-master update anywhere replication plugin for MySQL with built-in conflict detection and resolution, automatic distributed recovery, and group membership.

24 / 126 Group Replication : how does it work?

25 / 126 Group Replication : how does it work? A node (member of the group) send the changes (binlog events) made by a transaction to the group through the GCS.

26 / 126 Group Replication : how does it work? A node (member of the group) send the changes (binlog events) made by a transaction to the group through the GCS. All members consume the writeset and certify it

27 / 126 Group Replication : how does it work? A node (member of the group) send the changes (binlog events) made by a transaction to the group through the GCS. All members consume the writeset and certify it If passed it is applied, if failed, transaction is rolled back on originating server and discarded at other servers.

28 / 126 OK... but how does it work?!

29 / 126 OK... but how does it work?! It's just magic!

30 / 126 OK... but how does it work?! It's just magic!... no, in fact the writesets replication is synchronous and then certification and apply of the changes are local to each nodes and asynchronous.

31 / 126 OK... but how does it work?! It's just magic!... no, in fact the writesets replication is synchronous and then certification and apply of the changes are local to each nodes and asynchronous. not that easy to understand... right? Let's illustrate this...

32 / 126 MySQL Group Replication (autocommit)

33 / 126 MySQL Group Replication (autocommit)

34 / 126 MySQL Group Replication (autocommit)

35 / 126 MySQL Group Replication (autocommit)

36 / 126 MySQL Group Replication (autocommit)

37 / 126 MySQL Group Replication (autocommit)

38 / 126 MySQL Group Replication (autocommit)

39 / 126 MySQL Group Replication (full transaction)

40 / 126 MySQL Group Replication (full transaction)

41 / 126 MySQL Group Replication (full transaction)

42 / 126 MySQL Group Replication (full transaction)

43 / 126 MySQL Group Replication (full transaction)

44 / 126 MySQL Group Replication (full transaction)

45 / 126 MySQL Group Replication (full transaction)

46 / 126 MySQL Group Replication (full transaction)

47 / 126 MySQL Group Replication (full transaction)

48 / 126 Group Replication : Optimistic Locking With GR we use what we call optimistic locking, it means we consider a resource free and this will be confirmed or not during certification. Let's first have a look at the traditional locking to compare.

49 / 126 Traditional locking

50 / 126 Traditional locking

51 / 126 Traditional locking

52 / 126 Traditional locking

53 / 126 Traditional locking

54 / 126 Traditional locking

55 / 126 Optimistic Locking

56 / 126 Optimistic Locking

57 / 126 Optimistic Locking

58 / 126 Optimistic Locking

59 / 126 Optimistic Locking

60 / 126 Optimistic Locking

61 / 126 Optimistic Locking The system returns error 149 as certification failed: ERROR 1180 (HY000): Got error 149 during COMMIT

62 / 126 Group Replication : requirements exclusively use of InnoDB tables only

63 / 126 Group Replication : requirements exclusively use of InnoDB tables only every tables must have a PK defined

64 / 126 Group Replication : requirements exclusively use of InnoDB tables only every tables must have a PK defined only IPV4 is supported

65 / 126 Group Replication : requirements exclusively use of InnoDB tables only every tables must have a PK defined only IPV4 is supported a good network with low latency is important

66 / 126 Group Replication : requirements exclusively use of InnoDB tables only every tables must have a PK defined only IPV4 is supported a good network with low latency is important maximum of 9 members per group

67 / 126 Group Replication : requirements exclusively use of InnoDB tables only every tables must have a PK defined only IPV4 is supported a good network with low latency is important maximum of 9 members per group log-binmust be enabled and only ROW format is supported

68 / 126 Group Replication : requirements (2) enable GTIDs

69 / 126 Group Replication : requirements (2) enable GTIDs replication meta-data must be stored on system tables --master-info-repository=table --relay-log-info-repository=table

70 / 126 Group Replication : requirements (2) enable GTIDs replication meta-data must be stored on system tables --master-info-repository=table --relay-log-info-repository=table writesets extraction must be enabled --transaction-write-set-extraction=xxhash64

71 / 126 Group Replication : requirements (2) enable GTIDs replication meta-data must be stored on system tables --master-info-repository=table --relay-log-info-repository=table writesets extraction must be enabled --transaction-write-set-extraction=xxhash64 log-slave-updatesmust be enabled

72 / 126 Group Replication : limitations There are also some technical limitations:

73 / 126 Group Replication : limitations There are also some technical limitations: binlog checksum is not supported --binlog-checksum=none

74 / 126 Group Replication : limitations There are also some technical limitations: binlog checksum is not supported --binlog-checksum=none Savepoints are not supported

75 / 126 Group Replication : limitations There are also some technical limitations: binlog checksum is not supported --binlog-checksum=none Savepoints are not supported SERIALIZABLE is not supported as transaction isolation level

76 / 126 Group Replication : limitations There are also some technical limitations: binlog checksum is not supported --binlog-checksum=none Savepoints are not supported SERIALIZABLE is not supported as transaction isolation level an object cannot be changed concurrently at different servers by two operations, where one of them is a DDL and the other is either a DML or DDL.

77 / 126 are we compatible? Pre-study

78 / 126 Is my workload ready for Group Replication? Large transactions are more vulnerable because:

79 / 126 Is my workload ready for Group Replication? Large transactions are more vulnerable because: Large write set may increase the likelihood of certification conflicts

80 / 126 Is my workload ready for Group Replication? Large transactions are more vulnerable because: Large write set may increase the likelihood of certification conflicts Transaction taking longer to execute may be more vulnerable to be aborted by a certified transaction.

81 / 126 Is my workload ready for Group Replication? Large transactions are more vulnerable because: Large write set may increase the likelihood of certification conflicts Transaction taking longer to execute may be more vulnerable to be aborted by a certified transaction. Small transactions changing a very small set of data (hotspots):

82 / 126 Is my workload ready for Group Replication? Large transactions are more vulnerable because: Large write set may increase the likelihood of certification conflicts Transaction taking longer to execute may be more vulnerable to be aborted by a certified transaction. Small transactions changing a very small set of data (hotspots): Concurrently executing them at different sites will trade-off contention with roll backs due to the optimistic execution

83 / 126 Therefore, when using Group Replication, we should pay attention to these points: PK is mandatory (and a good one is better) avoid large transactions avoid hotspot

84 / 126 Scheme verification We will see now a list a queries that allows us to analyze our scheme. We will look for: non InnoDB tables tables without PK tables with a bad PK

85 / 126 Non InnoDB tables SELECT table_schema, table_name, engine, table_rows, (index_length+data_length)/1024/1024 AS sizemb FROM information_schema.tables WHERE engine!= 'innodb' AND table_schema NOT IN ('information_schema', 'mysql', 'performance_schema');

86 / 126 Tables Without Primary Key select tables.table_schema, tables.table_name, tables.engine, tables.table_rows from information_schema.tables left join ( select table_schema, table_name from information_schema.statistics group by table_schema, table_name, index_name having sum( case when non_unique = 0 and nullable!= 'YES' then 1 else 0 end ) = count(*) ) puks on tables.table_schema = puks.table_schema and tables.table_name = puks.table_name where puks.table_name is null and tables.table_type = 'BASE TABLE' and engine='innodb';

87 / 126 Tables with bad primarky keys set SQL_MODE=""; select a.table_schema,a.table_name, b.engine, a.column_name, a.data_type, a.column_type, a.column_key, b.table_rows from information_schema.columns as a join information_schema.tables as b on b.table_name=a.table_name and b.table_schema=a.table_schema where COLUMN_KEY='PRI' and ENGINE="InnoDB" and DATA_TYPE not like '%int' and DATA_TYPE not like 'enum%' and DATA_TYPE not like 'date%' and DATA_TYPE not like 'time%' and a.table_schema not in ('mysql','sys') group by table_schema, table_name;

88 / 126 Workload analysis Now it's time to play with Performance_Schema to analyze our workload. The goal is to identify: transactions with most statements (and most writes in particular) transactions with most rows affected largest statements by row affected queries updating most the same PK and therefore having to wait more)

89 / 126 Setup Performance_Schema We need to enable some consumers and instruments: update performance_schema.setup_consumers set enabled = 'yes' where name like 'events_statement%' or name like 'events_transaction%'; update performance_schema.setup_instruments set enabled = 'yes', timed = 'yes' where name = 'transaction';

90 / 126 Find the transactions with most statements select t.thread_id, t.event_id, count(*) statement_count, sum(s.rows_affected) rows_affected, length(replace(group_concat( case when s.event_name = "statement/sql/update" then 1 when s.event_name = "statement/sql/insert" then 1 when s.event_name = "statement/sql/delete" then 1 else null end),',','')) as "# write statements" from performance_schema.events_transactions_history_long t join performance_schema.events_statements_history_long s on t.thread_id = s.thread_id and t.event_id = s.nesting_event_id group by t.thread_id, t.event_id order by rows_affected desc limit 10;

91 / 126 Find the transactions with most statements It's possible to see what are all these statements in one transaction: set group_concat_max_len = 1000000; select t.thread_id, t.event_id, count(*) statement_count, sum(s.rows_affected) rows_affected, group_concat(sql_text order by s.event_id separator '\n') statements from performance_schema.events_transactions_history_long t join performance_schema.events_statements_history_long s on t.thread_id = s.thread_id and t.event_id = s.nesting_event_id group by t.thread_id, t.event_id order by statement_count desc limit 1\G

92 / 126 Find the transactions with most rows affected select t.thread_id, t.event_id, count(*) statement_count, sum(s.rows_affected) rows_affected, length(replace(group_concat( case when s.event_name = "statement/sql/update" then 1 when s.event_name = "statement/sql/insert" then 1 when s.event_name = "statement/sql/delete" then 1 else null end),',','')) as "# write statements" from performance_schema.events_transactions_history_long t join performance_schema.events_statements_history_long s on t.thread_id = s.thread_id and t.event_id = s.nesting_event_id group by t.thread_id, t.event_id order by rows_affected desc limit 10;

93 / 126 Find the transactions with most rows affected It's again possible the see what are the statements: select t.thread_id, t.event_id, count(*) statement_count, sum(s.rows_affected) rows_affected, group_concat(sql_text order by s.event_id separator '\n') statements from performance_schema.events_transactions_history_long t join performance_schema.events_statements_history_long s on t.thread_id = s.thread_id and t.event_id = s.nesting_event_id group by t.thread_id, t.event_id order by rows_affected desc limit 1\G

94 / 126 Find the transactions with most rows affected It's again possible the see what are the statements: select t.thread_id, t.event_id, count(*) statement_count, sum(s.rows_affected) rows_affected, group_concat(sql_text order by s.event_id separator '\n') statements from performance_schema.events_transactions_history_long t join performance_schema.events_statements_history_long s on t.thread_id = s.thread_id and t.event_id = s.nesting_event_id group by t.thread_id, t.event_id order by rows_affected desc limit 1\G Don't forget to verify the auto_commit ones are they are not returned with the query above.

95 / 126 Find largest statements by row affected select query, db, rows_affected, rows_affected_avg from sys.statement_analysis order by rows_affected_avg desc limit 10;

96 / 126 Find queries that write the most. Looking for lots of updates/timer_wait to the same PKs. select * from performance_schema.events_statements_history_long where rows_affected > 1 order by timer_wait desc limit 20\G

97 / 126 help me to configure my InnoDB Cluster Using new cool tools

98 / 126 MySQL Shell The MySQL Team extended MySQL Shell to use the new Admin API. Now MySQL Shell is a single unified client for all adminstrative and operatons tasks. Multi-Language:

99 / 126 MySQL Shell The MySQL Team extended MySQL Shell to use the new Admin API. Now MySQL Shell is a single unified client for all adminstrative and operatons tasks. Multi-Language: JavaScript

100 / 126 MySQL Shell The MySQL Team extended MySQL Shell to use the new Admin API. Now MySQL Shell is a single unified client for all adminstrative and operatons tasks. Multi-Language: JavaScript Python

101 / 126 MySQL Shell The MySQL Team extended MySQL Shell to use the new Admin API. Now MySQL Shell is a single unified client for all adminstrative and operatons tasks. Multi-Language: JavaScript Python SQL

102 / 126 MySQL Shell The MySQL Team extended MySQL Shell to use the new Admin API. Now MySQL Shell is a single unified client for all adminstrative and operatons tasks. Multi-Language: JavaScript Python SQL Supports both Document and Relational models

103 / 126 MySQL Shell The MySQL Team extended MySQL Shell to use the new Admin API. Now MySQL Shell is a single unified client for all adminstrative and operatons tasks. Multi-Language: JavaScript Python SQL Supports both Document and Relational models Exposes full Development and Admin API

104 / 126 MySQL Shell: Admin API mysql-js>dba.help()

105 / 126 MySQL Shell: Admin API mysql-js>dba.help() the global variable dba is used to access the MySQL API

106 / 126 MySQL Shell: Admin API mysql-js>dba.help() the global variable dba is used to access the MySQL API perform DBA operations to manage MySQL InnoDB Cluster:

107 / 126 MySQL Shell: Admin API mysql-js>dba.help() the global variable dba is used to access the MySQL API perform DBA operations to manage MySQL InnoDB Cluster: create cluster

108 / 126 MySQL Shell: Admin API mysql-js>dba.help() the global variable dba is used to access the MySQL API perform DBA operations to manage MySQL InnoDB Cluster: create cluster deploy MySQL instances (in sandbox only for the moment)

109 / 126 MySQL Shell: Admin API mysql-js>dba.help() the global variable dba is used to access the MySQL API perform DBA operations to manage MySQL InnoDB Cluster: create cluster deploy MySQL instances (in sandbox only for the moment) get cluster info

110 / 126 MySQL Shell: Admin API mysql-js>dba.help() the global variable dba is used to access the MySQL API perform DBA operations to manage MySQL InnoDB Cluster: create cluster deploy MySQL instances (in sandbox only for the moment) get cluster info start/stop MySQL instances

111 / 126 MySQL Shell: Admin API mysql-js>dba.help() the global variable dba is used to access the MySQL API perform DBA operations to manage MySQL InnoDB Cluster: create cluster deploy MySQL instances (in sandbox only for the moment) get cluster info start/stop MySQL instances validate MySQL instances

112 / 126 mysqlprovision The mysqlprovision utility is designed to facilitate the management of MySQL Group Replication, allowing users to start a replica set (a new replication group), to add/remove members to/from an existing group. It can also check if an instance meets all the requirements to successfully create a new group or to be added to an existing group. This utility is also capable of modifying MySQL option files of existing instances in order for them to meet the requirements of Group Replication.

113 / 126 let's create our first MySQL InnoDB Cluster Demo time!

114 / 126 MySQL InnoDB Cluster demo

115 / 126 full HA? Application interaction

116 / 126 MySQL InnoDB Cluster So MySQL InnoDB Cluster is composed by: MySQL Router MySQL Shell MySQL Group Replication MySQL Server

117 / 126 MySQL InnoDB Cluster So MySQL InnoDB Cluster is composed by: MySQL Router MySQL Shell MySQL Group Replication MySQL Server CON2907 - MySQL High Availability - Matt Lord - Wed 12:15

118 / 126 MySQL Router Transparent client connection routing (TCP level 4) load balancing connection failover Native support for InnoDB Clusters understands Group Replication topology utilizes metadata schema stored on each members bootstrap and auto-config supports multi-master and single primary modes

119 / 126 MySQL Router & Group Replication Quick demo!

120 / 126 MySQL Router & Group Replication demo

121 / 126 Any other alternatives?

122 / 126 Any other alternatives? It's possible to use MySQL Group Replication with other proxies/load-balancers

123 / 126 Any other alternatives? It's possible to use MySQL Group Replication with other proxies/load-balancers HAProxy : http://lefred.be/content/mysql-group-replication-as-ha-solution/

124 / 126 ProxySQL : http://lefred.be/content/ha-with-mysql-group-replication-and-proxysql/

125 / 126 Thank you! Questions?

126 / 126 MySQL Community Reception @ Oracle OpenWorld Tuesday, September 20, 7.00 pm Jillian s at Metreon: 175 Fourth Street, San Francisco At the corner of Howard and 4th st.; only 2-min walk from Moscone Center (same place as last year) Join us! Register: http://tinyurl.com/mysqloow16