SlideShare a Scribd company logo
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
MySQL InnoDB Cluster:
High Availability
Made Easy!
Vittorio Cioe
MySQL Sr. Sales Consultant
vittorio.cioe@oracle.com
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
2
An Introduction to InnoDB Clusters
The Components
Setup, Monitoring, and Management
What’s Next?
1
2
3
4
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Introduction
…tons of data...
...constantly changing
scenarios!
The future is
now!
Copyright © 2018, Oracle and/or its affiliates. All
rights reserved. |
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Virtually all organizations
require their most critical
systems to be highly
available, secure,
compliant
5
100%
Modern Application Stack: where are my data?
Frontend
Middle Tier
Data Tier
Copyright © 2018, Oracle and/or its affiliates. All
rights reserved. |
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
M S
S
S
S
M
write
clients
read
clients read
clients
write
clients
M o r e
r e a d s ?
M o r e
slaves!
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | MySQL Innovation Day 2016 -
Redwood Shores, CA, US
7
Yesterday: Asyncronous replication
Read scale-out
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
C
B
A
C
B
Crash
C
B
A
B is the
new master
Uh Oh! Whew!
8
Yesterday: Asynchronous Replication
Redundancy as a major building block for high availability: If
master crashes, promote slave to master
Limitations: failover and conflict detection should be handled
manually or handled at application level
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
InnoDB
Cluster
9
App Servers with
MySQL Router
MySQL Group Replication
MySQL Shell
Setup, Manage,
Orchestrate
“A single product — MySQL —
with high availability
and scaling features baked in;
providing an integrated
end-to-end solution
that is easy to use.”
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
The Components
Requirements (by design)
•Requires InnoDB storage engine.
•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.
•No concurrent DDL
•No Transaction Isolation Mode “SERIALIZABLE”
•Restrictions on usage of Foreign Keys
11
Wednesday,
September 21, 2016
Oracle Open World 2016 - San Francisco,
California, US
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL InnoDB Cluster: Internal Architecture
M
M M
MySQL Connector
Application
MySQL Router
MySQL Connector
Application
MySQL Router
MySQL Shell
HA
Group Replication
12
MySQL Router
Copyright © 2017, Oracle and/or its affiliates. All
rights reserved. |
6
6
•MySQL Router is lightweight middleware that provides
transparent routing
between your application and back-end MySQL Servers.
•MySQL Router also provides High Availability and
Scalability by effectively routing database traffic to
appropriate back-end MySQL Servers.
•The pluggable architecture also enables developers to
extend MySQL Router for custom use cases.
MySQL Router
• Native support for MySQL InnoDB
clusters
– Understands Group Replication topology
– Utilizes metadata schema stored on
each member
• Bootstraps itself and sets up client routing for
the GR cluster
• Allows for intelligent client routing into the GR
cluster
• Supports multi-master and single primary
modes
• Core improvements
Logging, Monitoring, Performance,
Security
Copyright © 2017, Oracle and/or its affiliates. All
rights reserved. |
6
7
App Servers with
MySQL Router
MySQL Group Replication
MySQL Shell
Setup, Manage,
Orchestrate
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell 8.0.12+
15
A single unified client for all administrative and operations tasks
•Advanced command-line client and code editor for the MySQL
Server
– Supports development & administration for the MySQL Server
– Can be used to perform data queries/update & administration operations
•Interactive multi-language: JavaScript, Python, and SQL
– Naturally scriptable (with development & administrative APIs)
– Both interactive and batch operations
•Supports both Document (CRUD) and Relational models (SQL)
– Modern fluent API for the MySQL Document Store
– Supports the traditional Table results, as well as JSON or Tab separated output
•Exposes full Development and Admin API
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Admin API
•mysql-js> dba.help()
•The global variable 'dba' is used to
access the MySQL AdminAPI
•Perform DBA operations
– Manage MySQL InnoDB clusters
•Create clusters
•Validate MySQL instances
•Configure MySQL instances
•Get cluster info
•Modify clusters
Database Administration Interface
App Servers with
MySQL Router
MySQL Group Replication
MySQL Shell
Setup, Manage,
Orchestrate
16
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
The core component: 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!
App Servers with
MySQL Router
MySQL Group Replication
MySQL Shell
Setup, Manage,
Orchestrate
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Group Replication:
Architecture
M M M M M
Replication Group
MySQL Router(s)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Group Replication: 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]).
•Any two transactions on different servers can write to the
same tuple.
•Conflicts will be detected and dealt with.
– First committer wins rule (based on db-versions in writesets)
20
M M M M M
UPDATE t1 SET a=2 WHERE a=1UPDATE t1 SET a=3 WHERE a=1
OK
MySQL Group Replication: Multi Master Automatic
Conflict Detection!
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Group Replication: Automatic distributed
recovery!
•Server that (re)joins the group will automatically synchronize
with the others.
•If a server leaves the group, the others will automatically be
informed.
M M M M M N
ONLINE
RECOVERING
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Group Replication: Single Primary Mode
S S S S P S
Primary
S
Configuration mode that makes a single member act as a
writable master (PRIMARY) and the rest of the members act
as hot-standbys (SECONDARY).
- Failover: the group itself coordinates automatically to figure out
which is the member that will act as the PRIMARY, through a leader
election mechanism.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Group Replication: Single Primary Mode
S S S S SP
Primary
Configuration mode that makes a single member act as a
writable master (PRIMARY) and the rest of the members act
as hot-standbys (SECONDARY).
- Failover: the group itself coordinates automatically to figure out
which is the member that will act as the PRIMARY, through a leader
election mechanism.
MySQL Group Replication: Major Building
Blocks (1)
M M M M M
MySQL
Server
API
Replication
Plugin
Com. API
Group Com. Engine
2
4
MySQL Group Replication: 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.
Replication
Plugin
Com. API
API
MySQL
Server
Group
Comm.System
(Corosync)
Group Com. Engine
2
5
MySQL Group Replication: Major Building Blocks (3)
•The replication 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.
Com. API
Replication
Plugin
API
MySQL
Server
Group
Comm.System
(Corosync)
Group Com. Engine
2
6
MySQL Group Replication: 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.
Com. API
API
Replicatio
n Plugin
MySQL
Server
Group
Comm.System
(Corosync)
Group Com. Engine
2
7
•The communication engine:
– Variant of Paxos developed at MySQL.
– Building block to provide distributed
agreement between servers.
MySQL Group
Replication
Full Transaction life cycle
5
6
MySQL Group Replication: Performance
4
6
MySQL Group Replication: Performance Comparison
4
7
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Setup, Monitoring
and Management
InnoDB Cluster Deployment:
Hardware and Infrastructure Notes
•3, 5, 7 or 9 machines per group
– Isolate machine resources as much as possible
– Limit virtualization layers
– Machines configured for dedicated database server role
•Recommended configuration
– 32-64 vCPUs with fast CPU clock (2.5GHz+)
– SSDs (for data and replication logs)
– High quality network connection between each machine
•Low latency, high throughput, reliable
•Limit routers and hubs as much as possible
•Isolated and dedicated network when possible
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
InnoDB Cluster Deployment:
Shared Nothing Cluster – Single Data Center
Application Servers
MySQL Router in Stack
MySQL Database Service
Group Replication
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
InnoDB Cluster Deployment:
Shared Nothing Cluster – Cross Data Center
MySQL Database Service
Group Replication
Data Center 1 Data Center 2
Clients
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
InnoDB Cluster Deployment:
Geographically Redundant Cluster
Async Replication
Active Data Center Backup Data Center
Clients
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
InnoDB Cluster Deployment:
Active/Active Multi-Data Center Setup
Async Replication
Regional Data Center
Regional ClientsRegional Clients
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
InnoDB Cluster Deployment:
Production Deployment Considerations
• Setup: 1 Master (N1), 2 Slaves (N2, N3) → InnoDB Cluster
Method 1 Method 2
- Stop writes on N1
- Wait for N1 and N3 to be in
sync
- Stop and reset replication
setup
- Create InnoDB Cluster
- Clean replication setup
N2 becomes Primary (and
still Slave on different
channel)
- Stop replication on N3 and
add it as secondary of N2
- Stop writes on the Master
(N1)
- Wait for N2 and N3 to be in
sync
- Add N1 to the cluster as
Secondary
MySQL Shell: Configure MySQL Instances
shell> mysqlsh root@localhost
mysql-js> dba.checkInstanceConfiguration(‘localhost:3306’)
mysql-js> dba.configureInstance(‘localhost:3306’)
38
MySQL Shell: Create an InnoDB Cluster
mysql-js> cluster = dba.createCluster(‘NewAppCluster')
mysql-js> cluster.addInstance('root@hanode1:3306')
mysql-js> cluster.addInstance('root@hanode2:3306')
mysql-js> cluster.addInstance('root@hanode3:3306')
# mysql 5.7: to persist the config changes on each machine
shell> mysqlsh root@localhost
mysql-js> dba.configureLocalInstance(‘localhost:3306’)
39
MySQL Shell: Add a MySQL Router
shell> mysqlrouter --bootstrap hanode1:3306
shell> mysqlrouter &
shell> mysqlsh root@localhost:6446
40
MySQL Shell: Check Status
shell> mysqlsh root@localhost:6446
mysql-js> cluster = dba.getCluster()
mysql-js> cluster.status()
41
MySQL Shell: Check Status
mysql-js> cluster.status()
{
"clusterName": "mylabcluster",
"defaultReplicaSet": {
"name": "default",
"status": "OK",
"statusText": "Cluster is ONLINE and can tolerate up to ONE failure.",
"topology": {
"hanode1:3306": {
"address": "hanode1:3306",
"mode": "R/W",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
},
…
42
MySQL Enterprise Monitor
•Native holistic support for Group Replication / InnoDB
clusters
– Topology views
– Detailed metrics and graphs
– Best Practice advice
•Monitoring of MySQL
Routers
43
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Conclusion
5.5
More
Enterprise
Features
5.6
Security,
Performance
5.7
JSON,
InnoDB
Cluster
8.0Document
Store
Takeaways: bringing MySQL
into the future
Making MySQL the foundational
layer of your modern
applications
in your
organization
Copyright © 2018, Oracle and/or its affiliates. All
rights reserved. |
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 46
MySQL InnoDB Cluster: High Availability Made Easy!

More Related Content

What's hot

InnoDb Vs NDB Cluster
InnoDb Vs NDB ClusterInnoDb Vs NDB Cluster
InnoDb Vs NDB Cluster
Mark Swarbrick
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Mydbops
 
MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08
Kenny Gryp
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
Frederic Descamps
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster
Mario Beck
 
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group ReplicationPercona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Kenny Gryp
 
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Severalnines
 
MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)
Kenny Gryp
 
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Frederic Descamps
 
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLMySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
Olivier DASINI
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
Frederic Descamps
 
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
Severalnines
 
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?
Miguel Araújo
 
MySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationMySQL High Availability with Group Replication
MySQL High Availability with Group Replication
Nuno Carvalho
 
MySQL InnoDB Cluster and Group Replication in a Nutshell: hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a Nutshell:  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a Nutshell:  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a Nutshell: hands-on tutorial
Frederic Descamps
 
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
Frederic Descamps
 
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialMySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
Frederic Descamps
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
Frederic Descamps
 
MySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB ClustersMySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB Clusters
Miguel Araújo
 

What's hot (20)

InnoDb Vs NDB Cluster
InnoDb Vs NDB ClusterInnoDb Vs NDB Cluster
InnoDb Vs NDB Cluster
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
 
MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08
 
Mysql-MHA
Mysql-MHAMysql-MHA
Mysql-MHA
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster
 
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group ReplicationPercona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
 
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
 
MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)
 
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
 
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLMySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
 
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
 
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?
 
MySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationMySQL High Availability with Group Replication
MySQL High Availability with Group Replication
 
MySQL InnoDB Cluster and Group Replication in a Nutshell: hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a Nutshell:  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a Nutshell:  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a Nutshell: hands-on tutorial
 
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
 
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialMySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
 
MySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB ClustersMySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB Clusters
 

Similar to MySQL InnoDB Cluster: High Availability Made Easy!

MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
Olivier DASINI
 
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP ParisMySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
Olivier DASINI
 
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
Ivan Ma
 
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterMySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
Olivier DASINI
 
MySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB Clusters
Matt Lord
 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStack
Matt Lord
 
MySQL Options in OpenStack
MySQL Options in OpenStackMySQL Options in OpenStack
MySQL Options in OpenStack
Tesora
 
My sql crashcourse_intro_kdl
My sql crashcourse_intro_kdlMy sql crashcourse_intro_kdl
My sql crashcourse_intro_kdl
sqlhjalp
 
20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharing20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharing
Ivan Ma
 
20191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv120191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv1
Ivan Ma
 
MySQL for Oracle DBA -- Rocky Mountain Oracle User Group Training Days '15
MySQL for Oracle DBA -- Rocky Mountain Oracle User Group Training Days '15MySQL for Oracle DBA -- Rocky Mountain Oracle User Group Training Days '15
MySQL for Oracle DBA -- Rocky Mountain Oracle User Group Training Days '15
Dave Stokes
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesTarique Saleem
 
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp
 
Sunshine php my sql 8.0 v2
Sunshine php my sql 8.0 v2Sunshine php my sql 8.0 v2
Sunshine php my sql 8.0 v2
Kathy Forte (Hassard)
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB ClusterWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Continuent
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
Keith Hollman
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deployment
Ivan Ma
 
My sql8 innodb_cluster
My sql8 innodb_clusterMy sql8 innodb_cluster
My sql8 innodb_cluster
Mysql User Camp
 
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Keith Hollman
 
MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014
Sanjay Manwani
 

Similar to MySQL InnoDB Cluster: High Availability Made Easy! (20)

MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
 
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP ParisMySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
 
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
 
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterMySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
 
MySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB Clusters
 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStack
 
MySQL Options in OpenStack
MySQL Options in OpenStackMySQL Options in OpenStack
MySQL Options in OpenStack
 
My sql crashcourse_intro_kdl
My sql crashcourse_intro_kdlMy sql crashcourse_intro_kdl
My sql crashcourse_intro_kdl
 
20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharing20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharing
 
20191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv120191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv1
 
MySQL for Oracle DBA -- Rocky Mountain Oracle User Group Training Days '15
MySQL for Oracle DBA -- Rocky Mountain Oracle User Group Training Days '15MySQL for Oracle DBA -- Rocky Mountain Oracle User Group Training Days '15
MySQL for Oracle DBA -- Rocky Mountain Oracle User Group Training Days '15
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New Features
 
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 
Sunshine php my sql 8.0 v2
Sunshine php my sql 8.0 v2Sunshine php my sql 8.0 v2
Sunshine php my sql 8.0 v2
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB ClusterWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deployment
 
My sql8 innodb_cluster
My sql8 innodb_clusterMy sql8 innodb_cluster
My sql8 innodb_cluster
 
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
 
MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014
 

More from Vittorio Cioe

MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)
Vittorio Cioe
 
Modern Data Security with MySQL
Modern Data Security with MySQLModern Data Security with MySQL
Modern Data Security with MySQL
Vittorio Cioe
 
MySQL 8.0
MySQL 8.0MySQL 8.0
MySQL 8.0
Vittorio Cioe
 
MySQL Cloud Service
MySQL Cloud ServiceMySQL Cloud Service
MySQL Cloud Service
Vittorio Cioe
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise Monitor
Vittorio Cioe
 
MySQL NDB Cluster
MySQL NDB ClusterMySQL NDB Cluster
MySQL NDB Cluster
Vittorio Cioe
 
MySQL InnoDB Cluster
MySQL InnoDB ClusterMySQL InnoDB Cluster
MySQL InnoDB Cluster
Vittorio Cioe
 
Next Gen Applications
Next Gen ApplicationsNext Gen Applications
Next Gen Applications
Vittorio Cioe
 
Introduction to MySQL Enterprise
Introduction to MySQL EnterpriseIntroduction to MySQL Enterprise
Introduction to MySQL Enterprise
Vittorio Cioe
 
State of the dolphin
State of the dolphinState of the dolphin
State of the dolphin
Vittorio Cioe
 

More from Vittorio Cioe (10)

MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)
 
Modern Data Security with MySQL
Modern Data Security with MySQLModern Data Security with MySQL
Modern Data Security with MySQL
 
MySQL 8.0
MySQL 8.0MySQL 8.0
MySQL 8.0
 
MySQL Cloud Service
MySQL Cloud ServiceMySQL Cloud Service
MySQL Cloud Service
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise Monitor
 
MySQL NDB Cluster
MySQL NDB ClusterMySQL NDB Cluster
MySQL NDB Cluster
 
MySQL InnoDB Cluster
MySQL InnoDB ClusterMySQL InnoDB Cluster
MySQL InnoDB Cluster
 
Next Gen Applications
Next Gen ApplicationsNext Gen Applications
Next Gen Applications
 
Introduction to MySQL Enterprise
Introduction to MySQL EnterpriseIntroduction to MySQL Enterprise
Introduction to MySQL Enterprise
 
State of the dolphin
State of the dolphinState of the dolphin
State of the dolphin
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 

Recently uploaded (20)

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 

MySQL InnoDB Cluster: High Availability Made Easy!

  • 1. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | MySQL InnoDB Cluster: High Availability Made Easy! Vittorio Cioe MySQL Sr. Sales Consultant vittorio.cioe@oracle.com
  • 2. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda 2 An Introduction to InnoDB Clusters The Components Setup, Monitoring, and Management What’s Next? 1 2 3 4
  • 3. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Introduction
  • 4. …tons of data... ...constantly changing scenarios! The future is now! Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
  • 5. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Virtually all organizations require their most critical systems to be highly available, secure, compliant 5 100%
  • 6. Modern Application Stack: where are my data? Frontend Middle Tier Data Tier Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
  • 7. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | M S S S S M write clients read clients read clients write clients M o r e r e a d s ? M o r e slaves! Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | MySQL Innovation Day 2016 - Redwood Shores, CA, US 7 Yesterday: Asyncronous replication Read scale-out
  • 8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | C B A C B Crash C B A B is the new master Uh Oh! Whew! 8 Yesterday: Asynchronous Replication Redundancy as a major building block for high availability: If master crashes, promote slave to master Limitations: failover and conflict detection should be handled manually or handled at application level
  • 9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | InnoDB Cluster 9 App Servers with MySQL Router MySQL Group Replication MySQL Shell Setup, Manage, Orchestrate “A single product — MySQL — with high availability and scaling features baked in; providing an integrated end-to-end solution that is easy to use.”
  • 10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | The Components
  • 11. Requirements (by design) •Requires InnoDB storage engine. •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. •No concurrent DDL •No Transaction Isolation Mode “SERIALIZABLE” •Restrictions on usage of Foreign Keys 11 Wednesday, September 21, 2016 Oracle Open World 2016 - San Francisco, California, US
  • 12. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL InnoDB Cluster: Internal Architecture M M M MySQL Connector Application MySQL Router MySQL Connector Application MySQL Router MySQL Shell HA Group Replication 12
  • 13. MySQL Router Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 6 6 •MySQL Router is lightweight middleware that provides transparent routing between your application and back-end MySQL Servers. •MySQL Router also provides High Availability and Scalability by effectively routing database traffic to appropriate back-end MySQL Servers. •The pluggable architecture also enables developers to extend MySQL Router for custom use cases.
  • 14. MySQL Router • Native support for MySQL InnoDB clusters – Understands Group Replication topology – Utilizes metadata schema stored on each member • Bootstraps itself and sets up client routing for the GR cluster • Allows for intelligent client routing into the GR cluster • Supports multi-master and single primary modes • Core improvements Logging, Monitoring, Performance, Security Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 6 7 App Servers with MySQL Router MySQL Group Replication MySQL Shell Setup, Manage, Orchestrate
  • 15. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Shell 8.0.12+ 15 A single unified client for all administrative and operations tasks •Advanced command-line client and code editor for the MySQL Server – Supports development & administration for the MySQL Server – Can be used to perform data queries/update & administration operations •Interactive multi-language: JavaScript, Python, and SQL – Naturally scriptable (with development & administrative APIs) – Both interactive and batch operations •Supports both Document (CRUD) and Relational models (SQL) – Modern fluent API for the MySQL Document Store – Supports the traditional Table results, as well as JSON or Tab separated output •Exposes full Development and Admin API
  • 16. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Admin API •mysql-js> dba.help() •The global variable 'dba' is used to access the MySQL AdminAPI •Perform DBA operations – Manage MySQL InnoDB clusters •Create clusters •Validate MySQL instances •Configure MySQL instances •Get cluster info •Modify clusters Database Administration Interface App Servers with MySQL Router MySQL Group Replication MySQL Shell Setup, Manage, Orchestrate 16
  • 17. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | The core component: 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! App Servers with MySQL Router MySQL Group Replication MySQL Shell Setup, Manage, Orchestrate
  • 18. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Group Replication: Architecture M M M M M Replication Group MySQL Router(s)
  • 19. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Group Replication: 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]).
  • 20. •Any two transactions on different servers can write to the same tuple. •Conflicts will be detected and dealt with. – First committer wins rule (based on db-versions in writesets) 20 M M M M M UPDATE t1 SET a=2 WHERE a=1UPDATE t1 SET a=3 WHERE a=1 OK MySQL Group Replication: Multi Master Automatic Conflict Detection!
  • 21. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Group Replication: Automatic distributed recovery! •Server that (re)joins the group will automatically synchronize with the others. •If a server leaves the group, the others will automatically be informed. M M M M M N ONLINE RECOVERING
  • 22. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Group Replication: Single Primary Mode S S S S P S Primary S Configuration mode that makes a single member act as a writable master (PRIMARY) and the rest of the members act as hot-standbys (SECONDARY). - Failover: the group itself coordinates automatically to figure out which is the member that will act as the PRIMARY, through a leader election mechanism.
  • 23. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Group Replication: Single Primary Mode S S S S SP Primary Configuration mode that makes a single member act as a writable master (PRIMARY) and the rest of the members act as hot-standbys (SECONDARY). - Failover: the group itself coordinates automatically to figure out which is the member that will act as the PRIMARY, through a leader election mechanism.
  • 24. MySQL Group Replication: Major Building Blocks (1) M M M M M MySQL Server API Replication Plugin Com. API Group Com. Engine 2 4
  • 25. MySQL Group Replication: 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. Replication Plugin Com. API API MySQL Server Group Comm.System (Corosync) Group Com. Engine 2 5
  • 26. MySQL Group Replication: Major Building Blocks (3) •The replication 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. Com. API Replication Plugin API MySQL Server Group Comm.System (Corosync) Group Com. Engine 2 6
  • 27. MySQL Group Replication: 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. Com. API API Replicatio n Plugin MySQL Server Group Comm.System (Corosync) Group Com. Engine 2 7 •The communication engine: – Variant of Paxos developed at MySQL. – Building block to provide distributed agreement between servers.
  • 29. MySQL Group Replication: Performance 4 6
  • 30. MySQL Group Replication: Performance Comparison 4 7
  • 31. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Setup, Monitoring and Management
  • 32. InnoDB Cluster Deployment: Hardware and Infrastructure Notes •3, 5, 7 or 9 machines per group – Isolate machine resources as much as possible – Limit virtualization layers – Machines configured for dedicated database server role •Recommended configuration – 32-64 vCPUs with fast CPU clock (2.5GHz+) – SSDs (for data and replication logs) – High quality network connection between each machine •Low latency, high throughput, reliable •Limit routers and hubs as much as possible •Isolated and dedicated network when possible
  • 33. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | InnoDB Cluster Deployment: Shared Nothing Cluster – Single Data Center Application Servers MySQL Router in Stack MySQL Database Service Group Replication
  • 34. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | InnoDB Cluster Deployment: Shared Nothing Cluster – Cross Data Center MySQL Database Service Group Replication Data Center 1 Data Center 2 Clients
  • 35. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | InnoDB Cluster Deployment: Geographically Redundant Cluster Async Replication Active Data Center Backup Data Center Clients
  • 36. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | InnoDB Cluster Deployment: Active/Active Multi-Data Center Setup Async Replication Regional Data Center Regional ClientsRegional Clients
  • 37. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | InnoDB Cluster Deployment: Production Deployment Considerations • Setup: 1 Master (N1), 2 Slaves (N2, N3) → InnoDB Cluster Method 1 Method 2 - Stop writes on N1 - Wait for N1 and N3 to be in sync - Stop and reset replication setup - Create InnoDB Cluster - Clean replication setup N2 becomes Primary (and still Slave on different channel) - Stop replication on N3 and add it as secondary of N2 - Stop writes on the Master (N1) - Wait for N2 and N3 to be in sync - Add N1 to the cluster as Secondary
  • 38. MySQL Shell: Configure MySQL Instances shell> mysqlsh root@localhost mysql-js> dba.checkInstanceConfiguration(‘localhost:3306’) mysql-js> dba.configureInstance(‘localhost:3306’) 38
  • 39. MySQL Shell: Create an InnoDB Cluster mysql-js> cluster = dba.createCluster(‘NewAppCluster') mysql-js> cluster.addInstance('root@hanode1:3306') mysql-js> cluster.addInstance('root@hanode2:3306') mysql-js> cluster.addInstance('root@hanode3:3306') # mysql 5.7: to persist the config changes on each machine shell> mysqlsh root@localhost mysql-js> dba.configureLocalInstance(‘localhost:3306’) 39
  • 40. MySQL Shell: Add a MySQL Router shell> mysqlrouter --bootstrap hanode1:3306 shell> mysqlrouter & shell> mysqlsh root@localhost:6446 40
  • 41. MySQL Shell: Check Status shell> mysqlsh root@localhost:6446 mysql-js> cluster = dba.getCluster() mysql-js> cluster.status() 41
  • 42. MySQL Shell: Check Status mysql-js> cluster.status() { "clusterName": "mylabcluster", "defaultReplicaSet": { "name": "default", "status": "OK", "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.", "topology": { "hanode1:3306": { "address": "hanode1:3306", "mode": "R/W", "readReplicas": {}, "role": "HA", "status": "ONLINE" }, … 42
  • 43. MySQL Enterprise Monitor •Native holistic support for Group Replication / InnoDB clusters – Topology views – Detailed metrics and graphs – Best Practice advice •Monitoring of MySQL Routers 43
  • 44. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Conclusion
  • 45. 5.5 More Enterprise Features 5.6 Security, Performance 5.7 JSON, InnoDB Cluster 8.0Document Store Takeaways: bringing MySQL into the future Making MySQL the foundational layer of your modern applications in your organization Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
  • 46. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 46