SlideShare ist ein Scribd-Unternehmen logo
1 von 62
Downloaden Sie, um offline zu lesen
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
Database Architectures
Kenny Gryp
MySQL Product Manager
1 / 28
2 / 282 / 28
 
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.
3 / 28
Past, Present & Future
4 / 28
Past, Present & Future
In The Past - MANUAL
Setting up Replication topology was done manually, taking many steps
including user management, restoring backups, configuring replication...
MySQL offered the technical pieces, leaving it up to the user to setup an (always customized) architecture
This requires technical components ... bringing lot's of work for DBA's and experts, who spent their time automating
4 / 28
Past, Present & Future
In The Past - MANUAL
Setting up Replication topology was done manually, taking many steps
including user management, restoring backups, configuring replication...
MySQL offered the technical pieces, leaving it up to the user to setup an (always customized) architecture
This requires technical components ... bringing lot's of work for DBA's and experts, who spent their time automating
2016-2019 - MySQL InnoDB Cluster
Group Replication: Automatic membership changes, network partition handling, consistency...
Shell to provide a powerful interface that helps in automating an integrating all components
InnoDB CLONE to automatically provision members, fully integrated in InnoDB
4 / 28
Past, Present & Future
In The Past - MANUAL
Setting up Replication topology was done manually, taking many steps
including user management, restoring backups, configuring replication...
MySQL offered the technical pieces, leaving it up to the user to setup an (always customized) architecture
This requires technical components ... bringing lot's of work for DBA's and experts, who spent their time automating
2016-2019 - MySQL InnoDB Cluster
Group Replication: Automatic membership changes, network partition handling, consistency...
Shell to provide a powerful interface that helps in automating an integrating all components
InnoDB CLONE to automatically provision members, fully integrated in InnoDB
2020 - MySQL InnoDB Replicaset
'classic', 'asynchronous' Replication based Solution, fully integrated
4 / 28
MySQL InnoDB Cluster
"A single product — MySQL — with high availability and scaling features baked in;
providing an integrated end-to-end solution that is easy to use."
5 / 28
MySQL InnoDB Cluster
"A single product — MySQL — with high availability and scaling features baked in;
providing an integrated end-to-end solution that is easy to use."
5 / 28
Components:
MySQL Server
MySQL Group Replication
MySQL Shell
MySQL Router
MySQL InnoDB Cluster
"A single product — MySQL — with high availability and scaling features baked in;
providing an integrated end-to-end solution that is easy to use."
5 / 28
One Product: MySQL
All components developed together
Integration of all components
Full stack testing
MySQL InnoDB Cluster - Goals
6 / 28
One Product: MySQL
All components developed together
Integration of all components
Full stack testing
Easy to Use
One client: MySQL Shell
Integrated orchestration
Homogenous servers
MySQL InnoDB Cluster - Goals
6 / 28
MySQL Group Replication
7 / 28
High Available Distributed MySQL DB
Fault tolerance
Automatic failover
Active/Active update anywhere (limits apply)
Automatic membership management
Adding/removing members
Network partitions, failures
Conflict detection and resolution
Prevents data loss
MySQL Group Replication
7 / 28
MySQL Group Replication
Implementation of Replicated Database State Machine
Total Order - Writes
XCOM - Paxos implementation
Configurable Consistency Guarantees
eventual consistency
8.0+: per session & global read/write consistency
Using MySQL replication framework by design
binary logs
relay logs
GTIDs: Global Transaction IDs
Generally Available since MySQL 5.7
Supported on all platforms: linux, windows, solaris, macosx, freebsd
8 / 28
Recovery Time Objective (RTO)
How fast should the service recover from a failure
Recovery Point Objective (RPO)
How much data loss can the service lose from a failure
Business Requirements
9 / 28
Recovery Time Objective (RTO)
How fast should the service recover from a failure
Recovery Point Objective (RPO)
How much data loss can the service lose from a failure
Types of Failures
High Availability: Single Server Failure, Network Partition
Disaster Recovery: Full Region/Network Failure
Human Error: Little Bobby Tables
How Much
None
few seconds
minutes
hours
day
...
Business Requirements
9 / 28
Consistency: No Data Loss (RPO=0)
in event of failure of (primary) member
Split brain prevention (Quorum)
MySQL Group Replication - Use Cases
10 / 28
Consistency: No Data Loss (RPO=0)
in event of failure of (primary) member
Split brain prevention (Quorum)
Highly Available: Automatic Failover
Primary members are automatically elected
Automatic Network Partition handling
MySQL Group Replication - Use Cases
10 / 28
Consistency: No Data Loss (RPO=0)
in event of failure of (primary) member
Split brain prevention (Quorum)
Highly Available: Automatic Failover
Primary members are automatically elected
Automatic Network Partition handling
Read Scaleout
Add/Remove members as needed
Replication Lag handling with Flow Control
Configurable Consistency Levels
Eventual
Full Consistency -- no stale reads
MySQL Group Replication - Use Cases
10 / 28
Consistency: No Data Loss (RPO=0)
in event of failure of (primary) member
Split brain prevention (Quorum)
Highly Available: Automatic Failover
Primary members are automatically elected
Automatic Network Partition handling
Read Scaleout
Add/Remove members as needed
Replication Lag handling with Flow Control
Configurable Consistency Levels
Eventual
Full Consistency -- no stale reads
Active/Active environments
Write to many members at the same time
ordered writes within the group (XCOM)
guaranteed consistency
Good write performance
due to Optimistic Locking
(workload dependent)
MySQL Group Replication - Use Cases
10 / 28
MySQL Router
11 / 28
Transparent Access to Database Arch.
"provide transparent routing between your application and
back-end MySQL Servers"
Transparent client connection routing
Load balancing
Application connection failover
Little to no configuration needed
Stateless design offers easy HA client routing
Router as part of the application stack
Integration into InnoDB Cluster & InnoDB ReplicaSet
Understands Group Replication & Replication
topology
Currently TCP Port each for PRIMARY and NON-PRIMARY
traffic
MySQL Router
11 / 28
MySQL Shell
12 / 28
Database Administration Interface
"MySQL Shell provides the developer and DBA with a single
intuitive, flexible, and powerful interface for all MySQL
related tasks!"
Multi-Language: JavaScript, Python, and SQL
Naturally scriptable
Supports Document and Relational models
Exposes full Development and Admin API
Classic MySQL protocol and X protocol
MySQL Shell
12 / 28
MySQL Shell - Easy to Use
13 / 28
MySQL InnoDB Cluster
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
MySQL Shell - Easy to Use
13 / 28
MySQL InnoDB Cluster
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
Configure server to add later:
mysql-js> dba.con gureInstance('admin@mysql2')
MySQL Shell - Easy to Use
13 / 28
MySQL InnoDB Cluster
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
Configure server to add later:
mysql-js> dba.con gureInstance('admin@mysql2')
Add server to the Cluster:
mysql-js> cluster.addInstance('admin@mysql2')
MySQL Shell - Easy to Use
13 / 28
MySQL InnoDB Cluster
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
Configure server to add later:
mysql-js> dba.con gureInstance('admin@mysql2')
Add server to the Cluster:
mysql-js> cluster.addInstance('admin@mysql2')
Bootstrap MySQL Router
$ sudo mysqlrouter --user=mysqlrouter --bootstrap
$ sudo systemctl start mysqlrouter
MySQL Shell - Easy to Use
13 / 28
mysql-js> cluster.status()
{
"clusterName": "cluster",
"defaultReplicaSet": {
"name": "default",
"primary": "mysql1:3306",
"ssl": "REQUIRED",
"status": "OK",
"statusText": "Cluster is ONLINE and can
tolerate up to ONE failure.",
"topology": {
"mysql1:3306": {
"address": "mysql1:3306",
"mode": "R/W",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
},
"mysql2:3306": {
"address": "mysql2:3306",
"mode": "R/O",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
},
"mysql3:3306": {
"address": "mysql3:3306",
"mode": "R/O",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
}
}
}
MySQL Shell - Easy to Use
Check the Cluster status:
14 / 28
MySQL InnoDB Cluster - Evolving
15 / 28
Many of our customers have adopted InnoDB Cluster!
Fully integrated MySQL Router
Automatic Routing
Ease of use with MySQL Shell
Configuring, Adding, Removing members
Group Replication Architecture
Providing Consistency
Automatic Failover
Network Partition Handling
No data loss in case of failure
Automatic Member Provisioning (CLONE)
MySQL InnoDB Cluster - Adoption
16 / 28
Introducing MySQL InnoDB ReplicaSet!
8.0.19 Feature!
Fully integrated MySQL Router
Automatic Routing
Ease of use with MySQL Shell
Configuring, Adding, Removing members
Automatic Member Provisioning (CLONE)
Replication Architecture:
(manual) Switchover & Failover
(asynchronous) Read Scaleout
'Simple' Replication architecture:
no network/hardware requirements
Providing Availability on PRIMARY when
issues with secondaries or network
MySQL InnoDB Replicaset
17 / 28
Past MySQL InnoDB ReplicaSet
Restore a backup to provision a member Automatically provisioning new members:
InnoDB CLONE
MySQL InnoDB ReplicaSet - Features
18 / 28
Past MySQL InnoDB ReplicaSet
Restore a backup to provision a member Automatically provisioning new members:
InnoDB CLONE
Configure Replication Users
Configure Replication
MySQL Shell Automatically configures users &
replication
MySQL InnoDB ReplicaSet - Features
18 / 28
Past MySQL InnoDB ReplicaSet
Restore a backup to provision a member Automatically provisioning new members:
InnoDB CLONE
Configure Replication Users
Configure Replication
MySQL Shell Automatically configures users &
replication
Manually configuring, adding removing servers in
Application, MySQL Router (or other proxy)
Integrated MySQL Router load balancing
Only need to bootstrap Router
Router is stateless, adapts to topology changes
MySQL InnoDB ReplicaSet - Features
18 / 28
Past MySQL InnoDB ReplicaSet
Restore a backup to provision a member Automatically provisioning new members:
InnoDB CLONE
Configure Replication Users
Configure Replication
MySQL Shell Automatically configures users &
replication
Manually configuring, adding removing servers in
Application, MySQL Router (or other proxy)
Integrated MySQL Router load balancing
Only need to bootstrap Router
Router is stateless, adapts to topology changes
Manually or relying on external tools to make topology
changes
Easy to use manual switchover/failover
MySQL InnoDB ReplicaSet - Features
18 / 28
Past MySQL InnoDB ReplicaSet
Restore a backup to provision a member Automatically provisioning new members:
InnoDB CLONE
Configure Replication Users
Configure Replication
MySQL Shell Automatically configures users &
replication
Manually configuring, adding removing servers in
Application, MySQL Router (or other proxy)
Integrated MySQL Router load balancing
Only need to bootstrap Router
Router is stateless, adapts to topology changes
Manually or relying on external tools to make topology
changes
Easy to use manual switchover/failover
Use additional monitoring tool log in on all machines to
check topology status
See status of the topology through MySQL Shell
status()
MySQL InnoDB ReplicaSet - Features
18 / 28
Past MySQL InnoDB ReplicaSet
MySQL InnoDB ReplicaSet - Features
19 / 28
Past MySQL InnoDB ReplicaSet
complexity: user is responsible for the full configuration
of every component and it's settings
Shell configures Server, Router, Replication in a
standardized best practice setup, prevents mistakes
MySQL InnoDB ReplicaSet - Features
19 / 28
Past MySQL InnoDB ReplicaSet
complexity: user is responsible for the full configuration
of every component and it's settings
Shell configures Server, Router, Replication in a
standardized best practice setup, prevents mistakes
every setup is a customized setup Standard Solution -- Supported & QA'ed by Oracle
MySQL InnoDB ReplicaSet - Features
19 / 28
Past MySQL InnoDB ReplicaSet
complexity: user is responsible for the full configuration
of every component and it's settings
Shell configures Server, Router, Replication in a
standardized best practice setup, prevents mistakes
every setup is a customized setup Standard Solution -- Supported & QA'ed by Oracle
A lot of manual steps and additional software required,
always customized and often overengineered by MySQL
DBA's
Easy to use, even for MySQL beginner
MySQL InnoDB ReplicaSet - Features
19 / 28
MySQL InnoDB ReplicaSet - Requirements & Limitations
Requirements:
MySQL 8 (SET PERSIST!)
GTID
Limitations:
Manual failover
No multi-primary as such topology cannot guarantee data consistency
All secondary members replicate from primary
20 / 28
MySQL InnoDB ReplicaSet - Demo
00:00
21 / 28
MySQL InnoDB ReplicaSet - MySQL Router Integration
--bootstrap to automatically configure
Metadata schema contains Replication Topology
Health checks are performed to all members
Switchover to new primary (setPrimaryInstance()):
Shell performs topology change, configures super_read_only and updates view_id in metadata
Router automatically sees higher view_id
and will redirect primary traffic to new primary
When the Primary is lost: forcePrimaryInstance()
Shell performs topology change, updates view_id in metadata and invalidates lost primary
Router will notice topology change by higher view_id in metadata (if network allows)
and automatically connect to new Primary
22 / 28
MySQL Shell - Easy to Use
23 / 28
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
mysql-js> c admin@mysql1
mysql-js> rs = dba.createReplicaSet('replicaset')
MySQL Shell - Easy to Use
23 / 28
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
mysql-js> c admin@mysql1
mysql-js> rs = dba.createReplicaSet('replicaset')
Configure server to add later
mysql-js> dba.con gureInstance('admin@mysql2') mysql-js> dba.con gureReplicaSetInstance('admin@mysql2')
MySQL Shell - Easy to Use
23 / 28
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
mysql-js> c admin@mysql1
mysql-js> rs = dba.createReplicaSet('replicaset')
Configure server to add later
mysql-js> dba.con gureInstance('admin@mysql2') mysql-js> dba.con gureReplicaSetInstance('admin@mysql2')
Add server to the Cluster
mysql-js> cluster.addInstance('admin@mysql2') mysql-js> rs.addInstance('admin@mysql2')
MySQL Shell - Easy to Use
23 / 28
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
mysql-js> c admin@mysql1
mysql-js> rs = dba.createReplicaSet('replicaset')
Configure server to add later
mysql-js> dba.con gureInstance('admin@mysql2') mysql-js> dba.con gureReplicaSetInstance('admin@mysql2')
Add server to the Cluster
mysql-js> cluster.addInstance('admin@mysql2') mysql-js> rs.addInstance('admin@mysql2')
Bootstrap MySQL Router
$ sudo mysqlrouter --user=mysqlrouter --bootstrap
$ sudo systemctl start mysqlrouter
$ sudo mysqlrouter --user=mysqlrouter --bootstrap
$ sudo systemctl start mysqlrouter
MySQL Shell - Easy to Use
Demo: https://mysqlserverteam.com/introducing-mysql-innodb-replicaset
23 / 28
By design chosen to be Manual failover
Having external monitoring processes decide failover can
cause a lot of false positives.
External tool decides, if the tool has issues: even
bigger issues.
Split brain issues
Majority of production deployments are configured
with Manual Failover, which increases Uptime!
When automatic failover is needed:
use MySQL InnoDB Cluster instead of Semi-Sync
MySQL InnoDB ReplicaSet - Manual Failover
24 / 28
Example:
1 Primary, 2 Secondaries, 2 Proxy hosts (App servers)
1 Management server: monitoring and making Topology
changes automatically
Problem: Management server & replica server is partitioned
from all other servers
What will happen?
MySQL InnoDB ReplicaSet - Manual Failover
25 / 28
Example:
1 Primary, 2 Secondaries, 2 Proxy hosts (App servers)
1 Management server: monitoring and making Topology
changes automatically
Problem: Management server & replica server is partitioned
from all other servers
What will happen?
The management host might promote the secondary
causing split brain
use MySQL InnoDB Cluster over Semi-Sync
With semi-sync, all members have to ack (prevent split
brain), causing downtime with every small glitch
MySQL InnoDB ReplicaSet - Manual Failover
26 / 28
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
Which Solution fits me?
27 / 28
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
Single Primary, multiple Secondaries
Multi Primary mode (write to all)
Single Primary, multiple Secondaries
Which Solution fits me?
27 / 28
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
Single Primary, multiple Secondaries
Multi Primary mode (write to all)
Single Primary, multiple Secondaries
Read Scaleout with configurable consistent reads Read Scaleout with stale reads
Which Solution fits me?
27 / 28
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
Single Primary, multiple Secondaries
Multi Primary mode (write to all)
Single Primary, multiple Secondaries
Read Scaleout with configurable consistent reads Read Scaleout with stale reads
All members partake in consensus
(write performance is as fast as it's slowest node)
Secondary members only get stream of changes (binlog),
does not impact Primary
Which Solution fits me?
27 / 28
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
Single Primary, multiple Secondaries
Multi Primary mode (write to all)
Single Primary, multiple Secondaries
Read Scaleout with configurable consistent reads Read Scaleout with stale reads
All members partake in consensus
(write performance is as fast as it's slowest node)
Secondary members only get stream of changes (binlog),
does not impact Primary
Stable network is required:
Network glitches cause stalls/membership changes
Uneven amount of members (3-5)
No network requirements:
glitches in network do not impact availability
2 or more members
Which Solution fits me?
27 / 28
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
Single Primary, multiple Secondaries
Multi Primary mode (write to all)
Single Primary, multiple Secondaries
Read Scaleout with configurable consistent reads Read Scaleout with stale reads
All members partake in consensus
(write performance is as fast as it's slowest node)
Secondary members only get stream of changes (binlog),
does not impact Primary
Stable network is required:
Network glitches cause stalls/membership changes
Uneven amount of members (3-5)
No network requirements:
glitches in network do not impact availability
2 or more members
No data loss in case of member failure
(Recovery Point Objective = 0 (RPO))
Consistency
During planned switchover: No data loss, split brain is
handled
During manual Unplanned failover: up to user
Which Solution fits me?
27 / 28
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
Single Primary, multiple Secondaries
Multi Primary mode (write to all)
Single Primary, multiple Secondaries
Read Scaleout with configurable consistent reads Read Scaleout with stale reads
All members partake in consensus
(write performance is as fast as it's slowest node)
Secondary members only get stream of changes (binlog),
does not impact Primary
Stable network is required:
Network glitches cause stalls/membership changes
Uneven amount of members (3-5)
No network requirements:
glitches in network do not impact availability
2 or more members
No data loss in case of member failure
(Recovery Point Objective = 0 (RPO))
Consistency
During planned switchover: No data loss, split brain is
handled
During manual Unplanned failover: up to user
Automatic Failover in case of failure
(Easier to achieve a lower Recovery Time Objective
(RTO) with stable network/servers)
Manual switchover/failover only
Which Solution fits me?
27 / 28
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
Database Solutions
http://www.mysql.com
http://dev.mysql.com/doc
http://www.mysqlhighavailability.com
http://www.mysqlserverteam.com
Kenny Gryp
MySQL Product Manager
28 / 28

Weitere ähnliche Inhalte

Was ist angesagt?

MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability SolutionsMydbops
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10Kenny Gryp
 
ProxySQL High Availability (Clustering)
ProxySQL High Availability (Clustering)ProxySQL High Availability (Clustering)
ProxySQL High Availability (Clustering)Mydbops
 
MySQL InnoDB Cluster HA Overview & Demo
MySQL InnoDB Cluster HA Overview & DemoMySQL InnoDB Cluster HA Overview & Demo
MySQL InnoDB Cluster HA Overview & DemoKeith Hollman
 
ProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management OverviewProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management OverviewRené Cannaò
 
Running MariaDB in multiple data centers
Running MariaDB in multiple data centersRunning MariaDB in multiple data centers
Running MariaDB in multiple data centersMariaDB plc
 
MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)Colin Charles
 
MySQL Advanced Administrator 2021 - 네오클로바
MySQL Advanced Administrator 2021 - 네오클로바MySQL Advanced Administrator 2021 - 네오클로바
MySQL Advanced Administrator 2021 - 네오클로바NeoClova
 
My sql failover test using orchestrator
My sql failover test  using orchestratorMy sql failover test  using orchestrator
My sql failover test using orchestratorYoungHeon (Roy) Kim
 
Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0Olivier DASINI
 
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
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxNeoClova
 
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMiguel Araújo
 
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorAlmost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorJean-François Gagné
 
MariaDB MaxScale monitor 매뉴얼
MariaDB MaxScale monitor 매뉴얼MariaDB MaxScale monitor 매뉴얼
MariaDB MaxScale monitor 매뉴얼NeoClova
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
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 tutorialFrederic Descamps
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability Mydbops
 
MMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and OrchestratorMMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and OrchestratorSimon J Mudd
 
MySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationMySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationNuno Carvalho
 

Was ist angesagt? (20)

MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability Solutions
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10
 
ProxySQL High Availability (Clustering)
ProxySQL High Availability (Clustering)ProxySQL High Availability (Clustering)
ProxySQL High Availability (Clustering)
 
MySQL InnoDB Cluster HA Overview & Demo
MySQL InnoDB Cluster HA Overview & DemoMySQL InnoDB Cluster HA Overview & Demo
MySQL InnoDB Cluster HA Overview & Demo
 
ProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management OverviewProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management Overview
 
Running MariaDB in multiple data centers
Running MariaDB in multiple data centersRunning MariaDB in multiple data centers
Running MariaDB in multiple data centers
 
MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)
 
MySQL Advanced Administrator 2021 - 네오클로바
MySQL Advanced Administrator 2021 - 네오클로바MySQL Advanced Administrator 2021 - 네오클로바
MySQL Advanced Administrator 2021 - 네오클로바
 
My sql failover test using orchestrator
My sql failover test  using orchestratorMy sql failover test  using orchestrator
My sql failover test using orchestrator
 
Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0
 
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)
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docx
 
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
 
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorAlmost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
 
MariaDB MaxScale monitor 매뉴얼
MariaDB MaxScale monitor 매뉴얼MariaDB MaxScale monitor 매뉴얼
MariaDB MaxScale monitor 매뉴얼
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
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
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability
 
MMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and OrchestratorMMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and Orchestrator
 
MySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationMySQL High Availability with Group Replication
MySQL High Availability with Group Replication
 

Ähnlich wie MySQL Database Architectures - InnoDB ReplicaSet & Cluster

MySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialMySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialMiguel Araújo
 
MySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialMySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialKenny Gryp
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deploymentIvan Ma
 
MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08Kenny Gryp
 
MySQL Operator for Kubernetes
MySQL Operator for KubernetesMySQL Operator for Kubernetes
MySQL Operator for KubernetesKenny Gryp
 
Megha_Osi my sql productroadmap
Megha_Osi my sql productroadmapMegha_Osi my sql productroadmap
Megha_Osi my sql productroadmapOpenSourceIndia
 
MySQL InnoDB Cluster: High Availability Made Easy!
MySQL InnoDB Cluster: High Availability Made Easy!MySQL InnoDB Cluster: High Availability Made Easy!
MySQL InnoDB Cluster: High Availability Made Easy!Vittorio Cioe
 
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 '15Dave Stokes
 
MySQL Database Architectures - High Availability and Disaster Recovery Solution
MySQL Database Architectures - High Availability and Disaster Recovery SolutionMySQL Database Architectures - High Availability and Disaster Recovery Solution
MySQL Database Architectures - High Availability and Disaster Recovery SolutionMiguel Araújo
 
MySQL High Availability Solutions - Avoid loss of service by reducing the r...
MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...
MySQL High Availability Solutions - Avoid loss of service by reducing the r...Olivier DASINI
 
My sql crashcourse_intro_kdl
My sql crashcourse_intro_kdlMy sql crashcourse_intro_kdl
My sql crashcourse_intro_kdlsqlhjalp
 
MySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMatt Lord
 
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 ClusterOlivier DASINI
 
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfDeep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfMiguel Araújo
 
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 ParisOlivier DASINI
 
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 SupportMysql 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 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
 

Ähnlich wie MySQL Database Architectures - InnoDB ReplicaSet & Cluster (20)

MySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialMySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - Tutorial
 
MySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialMySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - Tutorial
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deployment
 
MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08
 
MySQL Operator for Kubernetes
MySQL Operator for KubernetesMySQL Operator for Kubernetes
MySQL Operator for Kubernetes
 
Megha_Osi my sql productroadmap
Megha_Osi my sql productroadmapMegha_Osi my sql productroadmap
Megha_Osi my sql productroadmap
 
MySQL InnoDB Cluster: High Availability Made Easy!
MySQL InnoDB Cluster: High Availability Made Easy!MySQL InnoDB Cluster: High Availability Made Easy!
MySQL InnoDB Cluster: High Availability Made Easy!
 
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 Database Architectures - High Availability and Disaster Recovery Solution
MySQL Database Architectures - High Availability and Disaster Recovery SolutionMySQL Database Architectures - High Availability and Disaster Recovery Solution
MySQL Database Architectures - High Availability and Disaster Recovery Solution
 
MySQL High Availability Solutions - Avoid loss of service by reducing the r...
MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...
MySQL High Availability Solutions - Avoid loss of service by reducing the r...
 
My sql crashcourse_intro_kdl
My sql crashcourse_intro_kdlMy sql crashcourse_intro_kdl
My sql crashcourse_intro_kdl
 
MySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB Clusters
 
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
 
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfDeep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
 
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 on Docker and Kubernetes
MySQL on Docker and KubernetesMySQL on Docker and Kubernetes
MySQL on Docker and Kubernetes
 
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
 
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 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...
 

Mehr von Kenny Gryp

MySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVMySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVKenny Gryp
 
Reducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQLReducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQLKenny Gryp
 
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 ReplicationKenny Gryp
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group ReplicationKenny Gryp
 
Multi Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ VerisureMulti Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ VerisureKenny Gryp
 
MySQL Group Replication - HandsOn Tutorial
MySQL Group Replication - HandsOn TutorialMySQL Group Replication - HandsOn Tutorial
MySQL Group Replication - HandsOn TutorialKenny Gryp
 
Online MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackupOnline MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackupKenny Gryp
 
Advanced Percona XtraDB Cluster in a nutshell... la suite
Advanced Percona XtraDB Cluster in a nutshell... la suiteAdvanced Percona XtraDB Cluster in a nutshell... la suite
Advanced Percona XtraDB Cluster in a nutshell... la suiteKenny Gryp
 
Java MySQL Connector & Connection Pool Features & Optimization
Java MySQL Connector & Connection Pool Features & OptimizationJava MySQL Connector & Connection Pool Features & Optimization
Java MySQL Connector & Connection Pool Features & OptimizationKenny Gryp
 
Percona XtraDB Cluster
Percona XtraDB ClusterPercona XtraDB Cluster
Percona XtraDB ClusterKenny Gryp
 

Mehr von Kenny Gryp (10)

MySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVMySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRV
 
Reducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQLReducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQL
 
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
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
 
Multi Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ VerisureMulti Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ Verisure
 
MySQL Group Replication - HandsOn Tutorial
MySQL Group Replication - HandsOn TutorialMySQL Group Replication - HandsOn Tutorial
MySQL Group Replication - HandsOn Tutorial
 
Online MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackupOnline MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackup
 
Advanced Percona XtraDB Cluster in a nutshell... la suite
Advanced Percona XtraDB Cluster in a nutshell... la suiteAdvanced Percona XtraDB Cluster in a nutshell... la suite
Advanced Percona XtraDB Cluster in a nutshell... la suite
 
Java MySQL Connector & Connection Pool Features & Optimization
Java MySQL Connector & Connection Pool Features & OptimizationJava MySQL Connector & Connection Pool Features & Optimization
Java MySQL Connector & Connection Pool Features & Optimization
 
Percona XtraDB Cluster
Percona XtraDB ClusterPercona XtraDB Cluster
Percona XtraDB Cluster
 

Kürzlich hochgeladen

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 

Kürzlich hochgeladen (20)

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 

MySQL Database Architectures - InnoDB ReplicaSet & Cluster

  • 1. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet Database Architectures Kenny Gryp MySQL Product Manager 1 / 28
  • 2. 2 / 282 / 28
  • 3.   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. 3 / 28
  • 4. Past, Present & Future 4 / 28
  • 5. Past, Present & Future In The Past - MANUAL Setting up Replication topology was done manually, taking many steps including user management, restoring backups, configuring replication... MySQL offered the technical pieces, leaving it up to the user to setup an (always customized) architecture This requires technical components ... bringing lot's of work for DBA's and experts, who spent their time automating 4 / 28
  • 6. Past, Present & Future In The Past - MANUAL Setting up Replication topology was done manually, taking many steps including user management, restoring backups, configuring replication... MySQL offered the technical pieces, leaving it up to the user to setup an (always customized) architecture This requires technical components ... bringing lot's of work for DBA's and experts, who spent their time automating 2016-2019 - MySQL InnoDB Cluster Group Replication: Automatic membership changes, network partition handling, consistency... Shell to provide a powerful interface that helps in automating an integrating all components InnoDB CLONE to automatically provision members, fully integrated in InnoDB 4 / 28
  • 7. Past, Present & Future In The Past - MANUAL Setting up Replication topology was done manually, taking many steps including user management, restoring backups, configuring replication... MySQL offered the technical pieces, leaving it up to the user to setup an (always customized) architecture This requires technical components ... bringing lot's of work for DBA's and experts, who spent their time automating 2016-2019 - MySQL InnoDB Cluster Group Replication: Automatic membership changes, network partition handling, consistency... Shell to provide a powerful interface that helps in automating an integrating all components InnoDB CLONE to automatically provision members, fully integrated in InnoDB 2020 - MySQL InnoDB Replicaset 'classic', 'asynchronous' Replication based Solution, fully integrated 4 / 28
  • 8. MySQL InnoDB Cluster "A single product — MySQL — with high availability and scaling features baked in; providing an integrated end-to-end solution that is easy to use." 5 / 28
  • 9. MySQL InnoDB Cluster "A single product — MySQL — with high availability and scaling features baked in; providing an integrated end-to-end solution that is easy to use." 5 / 28
  • 10. Components: MySQL Server MySQL Group Replication MySQL Shell MySQL Router MySQL InnoDB Cluster "A single product — MySQL — with high availability and scaling features baked in; providing an integrated end-to-end solution that is easy to use." 5 / 28
  • 11. One Product: MySQL All components developed together Integration of all components Full stack testing MySQL InnoDB Cluster - Goals 6 / 28
  • 12. One Product: MySQL All components developed together Integration of all components Full stack testing Easy to Use One client: MySQL Shell Integrated orchestration Homogenous servers MySQL InnoDB Cluster - Goals 6 / 28
  • 14. High Available Distributed MySQL DB Fault tolerance Automatic failover Active/Active update anywhere (limits apply) Automatic membership management Adding/removing members Network partitions, failures Conflict detection and resolution Prevents data loss MySQL Group Replication 7 / 28
  • 15. MySQL Group Replication Implementation of Replicated Database State Machine Total Order - Writes XCOM - Paxos implementation Configurable Consistency Guarantees eventual consistency 8.0+: per session & global read/write consistency Using MySQL replication framework by design binary logs relay logs GTIDs: Global Transaction IDs Generally Available since MySQL 5.7 Supported on all platforms: linux, windows, solaris, macosx, freebsd 8 / 28
  • 16. Recovery Time Objective (RTO) How fast should the service recover from a failure Recovery Point Objective (RPO) How much data loss can the service lose from a failure Business Requirements 9 / 28
  • 17. Recovery Time Objective (RTO) How fast should the service recover from a failure Recovery Point Objective (RPO) How much data loss can the service lose from a failure Types of Failures High Availability: Single Server Failure, Network Partition Disaster Recovery: Full Region/Network Failure Human Error: Little Bobby Tables How Much None few seconds minutes hours day ... Business Requirements 9 / 28
  • 18. Consistency: No Data Loss (RPO=0) in event of failure of (primary) member Split brain prevention (Quorum) MySQL Group Replication - Use Cases 10 / 28
  • 19. Consistency: No Data Loss (RPO=0) in event of failure of (primary) member Split brain prevention (Quorum) Highly Available: Automatic Failover Primary members are automatically elected Automatic Network Partition handling MySQL Group Replication - Use Cases 10 / 28
  • 20. Consistency: No Data Loss (RPO=0) in event of failure of (primary) member Split brain prevention (Quorum) Highly Available: Automatic Failover Primary members are automatically elected Automatic Network Partition handling Read Scaleout Add/Remove members as needed Replication Lag handling with Flow Control Configurable Consistency Levels Eventual Full Consistency -- no stale reads MySQL Group Replication - Use Cases 10 / 28
  • 21. Consistency: No Data Loss (RPO=0) in event of failure of (primary) member Split brain prevention (Quorum) Highly Available: Automatic Failover Primary members are automatically elected Automatic Network Partition handling Read Scaleout Add/Remove members as needed Replication Lag handling with Flow Control Configurable Consistency Levels Eventual Full Consistency -- no stale reads Active/Active environments Write to many members at the same time ordered writes within the group (XCOM) guaranteed consistency Good write performance due to Optimistic Locking (workload dependent) MySQL Group Replication - Use Cases 10 / 28
  • 23. Transparent Access to Database Arch. "provide transparent routing between your application and back-end MySQL Servers" Transparent client connection routing Load balancing Application connection failover Little to no configuration needed Stateless design offers easy HA client routing Router as part of the application stack Integration into InnoDB Cluster & InnoDB ReplicaSet Understands Group Replication & Replication topology Currently TCP Port each for PRIMARY and NON-PRIMARY traffic MySQL Router 11 / 28
  • 25. Database Administration Interface "MySQL Shell provides the developer and DBA with a single intuitive, flexible, and powerful interface for all MySQL related tasks!" Multi-Language: JavaScript, Python, and SQL Naturally scriptable Supports Document and Relational models Exposes full Development and Admin API Classic MySQL protocol and X protocol MySQL Shell 12 / 28
  • 26. MySQL Shell - Easy to Use 13 / 28
  • 27. MySQL InnoDB Cluster mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') MySQL Shell - Easy to Use 13 / 28
  • 28. MySQL InnoDB Cluster mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') Configure server to add later: mysql-js> dba.con gureInstance('admin@mysql2') MySQL Shell - Easy to Use 13 / 28
  • 29. MySQL InnoDB Cluster mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') Configure server to add later: mysql-js> dba.con gureInstance('admin@mysql2') Add server to the Cluster: mysql-js> cluster.addInstance('admin@mysql2') MySQL Shell - Easy to Use 13 / 28
  • 30. MySQL InnoDB Cluster mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') Configure server to add later: mysql-js> dba.con gureInstance('admin@mysql2') Add server to the Cluster: mysql-js> cluster.addInstance('admin@mysql2') Bootstrap MySQL Router $ sudo mysqlrouter --user=mysqlrouter --bootstrap $ sudo systemctl start mysqlrouter MySQL Shell - Easy to Use 13 / 28
  • 31. mysql-js> cluster.status() { "clusterName": "cluster", "defaultReplicaSet": { "name": "default", "primary": "mysql1:3306", "ssl": "REQUIRED", "status": "OK", "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.", "topology": { "mysql1:3306": { "address": "mysql1:3306", "mode": "R/W", "readReplicas": {}, "role": "HA", "status": "ONLINE" }, "mysql2:3306": { "address": "mysql2:3306", "mode": "R/O", "readReplicas": {}, "role": "HA", "status": "ONLINE" }, "mysql3:3306": { "address": "mysql3:3306", "mode": "R/O", "readReplicas": {}, "role": "HA", "status": "ONLINE" } } } MySQL Shell - Easy to Use Check the Cluster status: 14 / 28
  • 32. MySQL InnoDB Cluster - Evolving 15 / 28
  • 33. Many of our customers have adopted InnoDB Cluster! Fully integrated MySQL Router Automatic Routing Ease of use with MySQL Shell Configuring, Adding, Removing members Group Replication Architecture Providing Consistency Automatic Failover Network Partition Handling No data loss in case of failure Automatic Member Provisioning (CLONE) MySQL InnoDB Cluster - Adoption 16 / 28
  • 34. Introducing MySQL InnoDB ReplicaSet! 8.0.19 Feature! Fully integrated MySQL Router Automatic Routing Ease of use with MySQL Shell Configuring, Adding, Removing members Automatic Member Provisioning (CLONE) Replication Architecture: (manual) Switchover & Failover (asynchronous) Read Scaleout 'Simple' Replication architecture: no network/hardware requirements Providing Availability on PRIMARY when issues with secondaries or network MySQL InnoDB Replicaset 17 / 28
  • 35. Past MySQL InnoDB ReplicaSet Restore a backup to provision a member Automatically provisioning new members: InnoDB CLONE MySQL InnoDB ReplicaSet - Features 18 / 28
  • 36. Past MySQL InnoDB ReplicaSet Restore a backup to provision a member Automatically provisioning new members: InnoDB CLONE Configure Replication Users Configure Replication MySQL Shell Automatically configures users & replication MySQL InnoDB ReplicaSet - Features 18 / 28
  • 37. Past MySQL InnoDB ReplicaSet Restore a backup to provision a member Automatically provisioning new members: InnoDB CLONE Configure Replication Users Configure Replication MySQL Shell Automatically configures users & replication Manually configuring, adding removing servers in Application, MySQL Router (or other proxy) Integrated MySQL Router load balancing Only need to bootstrap Router Router is stateless, adapts to topology changes MySQL InnoDB ReplicaSet - Features 18 / 28
  • 38. Past MySQL InnoDB ReplicaSet Restore a backup to provision a member Automatically provisioning new members: InnoDB CLONE Configure Replication Users Configure Replication MySQL Shell Automatically configures users & replication Manually configuring, adding removing servers in Application, MySQL Router (or other proxy) Integrated MySQL Router load balancing Only need to bootstrap Router Router is stateless, adapts to topology changes Manually or relying on external tools to make topology changes Easy to use manual switchover/failover MySQL InnoDB ReplicaSet - Features 18 / 28
  • 39. Past MySQL InnoDB ReplicaSet Restore a backup to provision a member Automatically provisioning new members: InnoDB CLONE Configure Replication Users Configure Replication MySQL Shell Automatically configures users & replication Manually configuring, adding removing servers in Application, MySQL Router (or other proxy) Integrated MySQL Router load balancing Only need to bootstrap Router Router is stateless, adapts to topology changes Manually or relying on external tools to make topology changes Easy to use manual switchover/failover Use additional monitoring tool log in on all machines to check topology status See status of the topology through MySQL Shell status() MySQL InnoDB ReplicaSet - Features 18 / 28
  • 40. Past MySQL InnoDB ReplicaSet MySQL InnoDB ReplicaSet - Features 19 / 28
  • 41. Past MySQL InnoDB ReplicaSet complexity: user is responsible for the full configuration of every component and it's settings Shell configures Server, Router, Replication in a standardized best practice setup, prevents mistakes MySQL InnoDB ReplicaSet - Features 19 / 28
  • 42. Past MySQL InnoDB ReplicaSet complexity: user is responsible for the full configuration of every component and it's settings Shell configures Server, Router, Replication in a standardized best practice setup, prevents mistakes every setup is a customized setup Standard Solution -- Supported & QA'ed by Oracle MySQL InnoDB ReplicaSet - Features 19 / 28
  • 43. Past MySQL InnoDB ReplicaSet complexity: user is responsible for the full configuration of every component and it's settings Shell configures Server, Router, Replication in a standardized best practice setup, prevents mistakes every setup is a customized setup Standard Solution -- Supported & QA'ed by Oracle A lot of manual steps and additional software required, always customized and often overengineered by MySQL DBA's Easy to use, even for MySQL beginner MySQL InnoDB ReplicaSet - Features 19 / 28
  • 44. MySQL InnoDB ReplicaSet - Requirements & Limitations Requirements: MySQL 8 (SET PERSIST!) GTID Limitations: Manual failover No multi-primary as such topology cannot guarantee data consistency All secondary members replicate from primary 20 / 28
  • 45. MySQL InnoDB ReplicaSet - Demo 00:00 21 / 28
  • 46. MySQL InnoDB ReplicaSet - MySQL Router Integration --bootstrap to automatically configure Metadata schema contains Replication Topology Health checks are performed to all members Switchover to new primary (setPrimaryInstance()): Shell performs topology change, configures super_read_only and updates view_id in metadata Router automatically sees higher view_id and will redirect primary traffic to new primary When the Primary is lost: forcePrimaryInstance() Shell performs topology change, updates view_id in metadata and invalidates lost primary Router will notice topology change by higher view_id in metadata (if network allows) and automatically connect to new Primary 22 / 28
  • 47. MySQL Shell - Easy to Use 23 / 28
  • 48. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') mysql-js> c admin@mysql1 mysql-js> rs = dba.createReplicaSet('replicaset') MySQL Shell - Easy to Use 23 / 28
  • 49. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') mysql-js> c admin@mysql1 mysql-js> rs = dba.createReplicaSet('replicaset') Configure server to add later mysql-js> dba.con gureInstance('admin@mysql2') mysql-js> dba.con gureReplicaSetInstance('admin@mysql2') MySQL Shell - Easy to Use 23 / 28
  • 50. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') mysql-js> c admin@mysql1 mysql-js> rs = dba.createReplicaSet('replicaset') Configure server to add later mysql-js> dba.con gureInstance('admin@mysql2') mysql-js> dba.con gureReplicaSetInstance('admin@mysql2') Add server to the Cluster mysql-js> cluster.addInstance('admin@mysql2') mysql-js> rs.addInstance('admin@mysql2') MySQL Shell - Easy to Use 23 / 28
  • 51. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') mysql-js> c admin@mysql1 mysql-js> rs = dba.createReplicaSet('replicaset') Configure server to add later mysql-js> dba.con gureInstance('admin@mysql2') mysql-js> dba.con gureReplicaSetInstance('admin@mysql2') Add server to the Cluster mysql-js> cluster.addInstance('admin@mysql2') mysql-js> rs.addInstance('admin@mysql2') Bootstrap MySQL Router $ sudo mysqlrouter --user=mysqlrouter --bootstrap $ sudo systemctl start mysqlrouter $ sudo mysqlrouter --user=mysqlrouter --bootstrap $ sudo systemctl start mysqlrouter MySQL Shell - Easy to Use Demo: https://mysqlserverteam.com/introducing-mysql-innodb-replicaset 23 / 28
  • 52. By design chosen to be Manual failover Having external monitoring processes decide failover can cause a lot of false positives. External tool decides, if the tool has issues: even bigger issues. Split brain issues Majority of production deployments are configured with Manual Failover, which increases Uptime! When automatic failover is needed: use MySQL InnoDB Cluster instead of Semi-Sync MySQL InnoDB ReplicaSet - Manual Failover 24 / 28
  • 53. Example: 1 Primary, 2 Secondaries, 2 Proxy hosts (App servers) 1 Management server: monitoring and making Topology changes automatically Problem: Management server & replica server is partitioned from all other servers What will happen? MySQL InnoDB ReplicaSet - Manual Failover 25 / 28
  • 54. Example: 1 Primary, 2 Secondaries, 2 Proxy hosts (App servers) 1 Management server: monitoring and making Topology changes automatically Problem: Management server & replica server is partitioned from all other servers What will happen? The management host might promote the secondary causing split brain use MySQL InnoDB Cluster over Semi-Sync With semi-sync, all members have to ack (prevent split brain), causing downtime with every small glitch MySQL InnoDB ReplicaSet - Manual Failover 26 / 28
  • 55. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet Which Solution fits me? 27 / 28
  • 56. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet Single Primary, multiple Secondaries Multi Primary mode (write to all) Single Primary, multiple Secondaries Which Solution fits me? 27 / 28
  • 57. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet Single Primary, multiple Secondaries Multi Primary mode (write to all) Single Primary, multiple Secondaries Read Scaleout with configurable consistent reads Read Scaleout with stale reads Which Solution fits me? 27 / 28
  • 58. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet Single Primary, multiple Secondaries Multi Primary mode (write to all) Single Primary, multiple Secondaries Read Scaleout with configurable consistent reads Read Scaleout with stale reads All members partake in consensus (write performance is as fast as it's slowest node) Secondary members only get stream of changes (binlog), does not impact Primary Which Solution fits me? 27 / 28
  • 59. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet Single Primary, multiple Secondaries Multi Primary mode (write to all) Single Primary, multiple Secondaries Read Scaleout with configurable consistent reads Read Scaleout with stale reads All members partake in consensus (write performance is as fast as it's slowest node) Secondary members only get stream of changes (binlog), does not impact Primary Stable network is required: Network glitches cause stalls/membership changes Uneven amount of members (3-5) No network requirements: glitches in network do not impact availability 2 or more members Which Solution fits me? 27 / 28
  • 60. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet Single Primary, multiple Secondaries Multi Primary mode (write to all) Single Primary, multiple Secondaries Read Scaleout with configurable consistent reads Read Scaleout with stale reads All members partake in consensus (write performance is as fast as it's slowest node) Secondary members only get stream of changes (binlog), does not impact Primary Stable network is required: Network glitches cause stalls/membership changes Uneven amount of members (3-5) No network requirements: glitches in network do not impact availability 2 or more members No data loss in case of member failure (Recovery Point Objective = 0 (RPO)) Consistency During planned switchover: No data loss, split brain is handled During manual Unplanned failover: up to user Which Solution fits me? 27 / 28
  • 61. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet Single Primary, multiple Secondaries Multi Primary mode (write to all) Single Primary, multiple Secondaries Read Scaleout with configurable consistent reads Read Scaleout with stale reads All members partake in consensus (write performance is as fast as it's slowest node) Secondary members only get stream of changes (binlog), does not impact Primary Stable network is required: Network glitches cause stalls/membership changes Uneven amount of members (3-5) No network requirements: glitches in network do not impact availability 2 or more members No data loss in case of member failure (Recovery Point Objective = 0 (RPO)) Consistency During planned switchover: No data loss, split brain is handled During manual Unplanned failover: up to user Automatic Failover in case of failure (Easier to achieve a lower Recovery Time Objective (RTO) with stable network/servers) Manual switchover/failover only Which Solution fits me? 27 / 28
  • 62. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet Database Solutions http://www.mysql.com http://dev.mysql.com/doc http://www.mysqlhighavailability.com http://www.mysqlserverteam.com Kenny Gryp MySQL Product Manager 28 / 28