2. 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, timing and pricing of any features
or functionality described for Oracle´s product may change and remains at the sole
discretion of Oracle Corporation.
Copyright @ 2021 Oracle and/or its affiliates.
2
3. Who am I ?
about.me/lefred
Copyright @ 2021 Oracle and/or its affiliates.
3
9. MySQL is the most popular
database with developers
MySQL Developer Popularity
Stack Over ow Developer Survey 2020
Copyright @ 2021 Oracle and/or its affiliates.
7
11. MySQL Server : GPL
MySQL NDB Cluster : GPL
MySQL Router : GPL
MySQL Shell : GPL
MySQL Clone : GPL
MySQL Workbench : GPL
MySQL Connectors: GPL
Copyright @ 2021 Oracle and/or its affiliates.
9
12. MySQL Server : GPL
MySQL NDB Cluster : GPL
MySQL Router : GPL
MySQL Shell : GPL
MySQL Clone : GPL
MySQL Workbench : GPL
MySQL Connectors: GPL
And we accept contributions !
Copyright @ 2021 Oracle and/or its affiliates.
9
13. What's new since last State of the Dolphin in
October?
Copyright @ 2021 Oracle and/or its affiliates.
10
16. Invisible Columns
Query A ributes
Security
encrypt double write les
more granular privileges for FLUSH
New GIS functions
Optimize Hash Table in Hash Join
MySQL 8.0.23
Copyright @ 2021 Oracle and/or its affiliates.
13
17. Invisible Columns
Query A ributes
Security
encrypt double write les
more granular privileges for FLUSH
New GIS functions
Optimize Hash Table in Hash Join
InnoDB
Faster truncate/drop tablespace
possibilty to set the tablesspace
autoextend size
improve TempTable
Some refactoring:
extend the internal server
infrastructure
converting old atomics to C++11
MySQL 8.0.23
Copyright @ 2021 Oracle and/or its affiliates.
13
22. MySQL 8.0.23
Replication
replace old terms
Allow replication from GTID disabled source to GTID enabled replica
Include MDL and ACL locks in Multi-Threaded Applier deadlock detection infra-
structure
Group Replication
Automatic connection failover for Async Replication Channels
Copyright @ 2021 Oracle and/or its affiliates.
17
23. MySQL 8.0.23
Automatic connection failover for Async Replication Channel:
mysql-replica> SELECT asynchronous_connection_failover_add_managed("async_from_idc",
"GroupReplication", "b2b2b6de-9ad7-11eb-88a0-020017018a7b",
"mysql-node1", 3306, "", 80, 60);
Copyright @ 2021 Oracle and/or its affiliates.
18
24. MySQL 8.0.23
Automatic connection failover for Async Replication Channel:
mysql-replica> SELECT asynchronous_connection_failover_add_managed("async_from_idc",
"GroupReplication", "b2b2b6de-9ad7-11eb-88a0-020017018a7b",
"mysql-node1", 3306, "", 80, 60);
mysql-replica> CHANGE REPLICATION SOURCE TO source_host='mysql-node1',
source_port=3306, source_user='repl', source_password='password',
source_auto_position=1, source_ssl=1, source_retry_count=3,
source_connect_retry=10, source_connection_auto_failover=1
FOR CHANNEL 'async_from_idc';
Copyright @ 2021 Oracle and/or its affiliates.
18
25. MySQL 8.0.23
Automatic connection failover for Async Replication Channel:
mysql-replica> SELECT asynchronous_connection_failover_add_managed("async_from_idc",
"GroupReplication", "b2b2b6de-9ad7-11eb-88a0-020017018a7b",
"mysql-node1", 3306, "", 80, 60);
mysql-replica> CHANGE REPLICATION SOURCE TO source_host='mysql-node1',
source_port=3306, source_user='repl', source_password='password',
source_auto_position=1, source_ssl=1, source_retry_count=3,
source_connect_retry=10, source_connection_auto_failover=1
FOR CHANNEL 'async_from_idc';
mysql-replica> START REPLICA FOR CHANNEL 'async_from_idc';
Copyright @ 2021 Oracle and/or its affiliates.
18
28. MySQL 8.0.23 - Asynchronous Connection Failover
InnoDB Cluster 1
mysql-dc1-3
mysql-dc1-2
mysql-dc1-1
mysql-dc2-1
Async Replica (DR)
router
router
P
Data Center 1 Data Center 2
Asynchronous Replication
Copyright @ 2021 Oracle and/or its affiliates.
20
29. MySQL 8.0.23 - Asynchronous Connection Failover
InnoDB Cluster 1
mysql-dc1-3
mysql-dc1-2
mysql-dc1-1
mysql-dc2-1
Async Replica (DR)
router
router
Data Center 1 Data Center 2
Asynchronous Replication
x
Copyright @ 2021 Oracle and/or its affiliates.
21
30. MySQL 8.0.23 - Asynchronous Connection Failover
InnoDB Cluster 1
mysql-dc1-3
mysql-dc1-2
mysql-dc1-1
mysql-dc2-1
Async Replica (DR)
router
router
Data Center 1 Data Center 2
Asynchronous Replication
P
Copyright @ 2021 Oracle and/or its affiliates.
22
31. MySQL 8.0.23
Shell
Enhancements in Import Table
Enhancements in Admin API
Router
TLS endpoint for routing connections
Copyright @ 2021 Oracle and/or its affiliates.
23
33. Optimizer
Transform correlated scalar subqueries
GIS
cast between geometry types
Again New functions
Instrumentation for Data Dictionary and
Runtime code
MySQL 8.0.24
Copyright @ 2021 Oracle and/or its affiliates.
25
34. Optimizer
Transform correlated scalar subqueries
GIS
cast between geometry types
Again New functions
Instrumentation for Data Dictionary and
Runtime code
InnoDB
Con guration to control clone donor
timeout after network failure
Security
Make password hash rounds
con gurable for caching_sha2
Migrate Keyring APIs to Components
Make the client get a be er error
message on wait_timeout
MySQL 8.0.24
Copyright @ 2021 Oracle and/or its affiliates.
25
35. Replication
skip replication is now a global,
persistable, read-only system variable
Group Replication
Make IP Allowlist modi able while GR is
running
MySQL 8.0.24
Copyright @ 2021 Oracle and/or its affiliates.
26
36. Replication
skip replication is now a global,
persistable, read-only system variable
Group Replication
Make IP Allowlist modi able while GR is
running
Shell
Improved Command Line Integration
Dump & Load Enhancements
Improved Logging
Router
Accept connections only if
destinations are available
MySQL 8.0.24
Copyright @ 2021 Oracle and/or its affiliates.
26
37. MySQL Shell - Dump
Copyright @ 2021 Oracle and/or its affiliates.
27
38. MySQL Shell - Load
Copyright @ 2021 Oracle and/or its affiliates.
28
39. MySQL Shell - Load
Look at the di erence ! And this was 8.0.21... even faster now!!
Copyright @ 2021 Oracle and/or its affiliates.
28
40. MySQL 8.0.24 - Load & Dump
This is so cool !
Copyright @ 2021 Oracle and/or its affiliates.
29
41. MySQL 8.0.24 - Load & Dump
This is so cool !
Something else very cool:
createInvisiblePKs: bool (default taken from dump) - Automatically
create an invisible Primary Key for each table which does not have one.
By default, set to true if dump was created with create_invisible_pks
compatibility option, false otherwise. Requires server 8.0.24 or newer.
Copyright @ 2021 Oracle and/or its affiliates.
29
43. This out-of-cycle release xes a bug related
to prepared, implicitly grouped SELECT
statement in which the WHERE clause was
determined always to be false (Bug #103192)
MySQL 8.0.25
Copyright @ 2021 Oracle and/or its affiliates.
31
49. HeatWave dramatically speeds up MySQL queries
400G, 64 cores
(*)Benchmark queries are derived from TPC-H benchmark, but results are not comparable to published TPC-H benchmark results since they do not comply with TPC-H speci cation.
Copyright @ 2021 Oracle and/or its affiliates.
37
50. HeatWave dramatically speeds up MySQL queries
400G, 64 cores
(*)Benchmark queries are derived from TPC-H benchmark, but results are not comparable to published TPC-H benchmark results since they do not comply with TPC-H speci cation.
Copyright @ 2021 Oracle and/or its affiliates.
37
51. MySQL + HeatWave vs. Amazon Aurora
4TB
(*)Benchmark queries are derived from TPC-H benchmark, but results are not comparable to published TPC-H benchmark results since they do not comply with TPC-H speci cation.
Copyright @ 2021 Oracle and/or its affiliates.
38
52. MySQL + HeatWave vs. Amazon Aurora
4TB
(*)Benchmark queries are derived from TPC-H benchmark, but results are not comparable to published TPC-H benchmark results since they do not comply with TPC-H speci cation.
Copyright @ 2021 Oracle and/or its affiliates.
38
53. MySQL + HeatWave vs. Amazon Redshift's fastest shape
4TB
(*)Benchmark queries are derived from TPC-H benchmark, but results are not comparable to published TPC-H benchmark results since they do not comply with TPC-H speci cation.
Copyright @ 2021 Oracle and/or its affiliates.
39
54. MySQL + HeatWave vs. Amazon Redshift's fastest shape
4TB
(*)Benchmark queries are derived from TPC-H benchmark, but results are not comparable to published TPC-H benchmark results since they do not comply with TPC-H speci cation.
Copyright @ 2021 Oracle and/or its affiliates.
39
55. Want to improve the
performance of slow
queries ?
Sign up for a performance health check
mysql.com/healthcheck
Copyright @ 2021 Oracle and/or its affiliates.
40
57. MDS High Availability - Type of HA
MDS HA can distribute 3 instances:
Copyright @ 2021 Oracle and/or its affiliates.
42
58. MDS High Availability - Type of HA
MDS HA can distribute 3 instances:
across 3 di erent Availability Domains
Copyright @ 2021 Oracle and/or its affiliates.
42
59. MDS High Availability - Type of HA
MDS HA can distribute 3 instances:
across 3 di erent Availability Domains
across 3 di erent Fault Domains
Copyright @ 2021 Oracle and/or its affiliates.
42
60. MDS High Availability - Type of HA
MDS HA can distribute 3 instances:
across 3 di erent Availability Domains
across 3 di erent Fault Domains
MDS HA allows switchover & failover:
Copyright @ 2021 Oracle and/or its affiliates.
42
61. switchover
manual action
planned
MDS High Availability - Type of HA
MDS HA can distribute 3 instances:
across 3 di erent Availability Domains
across 3 di erent Fault Domains
MDS HA allows switchover & failover:
Copyright @ 2021 Oracle and/or its affiliates.
42
62. switchover
manual action
planned
failover
automatic failover
unplanned
MDS High Availability - Type of HA
MDS HA can distribute 3 instances:
across 3 di erent Availability Domains
across 3 di erent Fault Domains
MDS HA allows switchover & failover:
Copyright @ 2021 Oracle and/or its affiliates.
42
65. MDS High Availability - Summary
Fault-tolerant system with automatic failover and zero data loss
Copyright @ 2021 Oracle and/or its affiliates.
45
66. MDS High Availability - Summary
Fault-tolerant system with automatic failover and zero data loss
Single click High Availability
Automatic Failover
Increase Uptime
Reduce Downtime during a failure event (RTO: Minutes)
Zero Data Loss during a failure event (RPO: Zero)
Copyright @ 2021 Oracle and/or its affiliates.
45
68. Solutions Easy to Deploy
Database Architectures
Copyright @ 2021 Oracle and/or its affiliates.
47
69. 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."
Copyright @ 2021 Oracle and/or its affiliates.
48
70. 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."
Copyright @ 2021 Oracle and/or its affiliates.
48
71. High Available Distributed MySQL DB
Fault tolerance
Automatic failover
Active/Active update anywhere (limits apply)
Automatic membership management
Adding/removing members
Network partitions, failures
Con ict detection and resolution
Prevents data loss
GPL
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."
Copyright @ 2021 Oracle and/or its affiliates.
48
72. Introducing MySQL InnoDB ReplicaSet!
8.0.19 Feature!
Fully integrated MySQL Router
Automatic Routing
Ease of use with MySQL Shell
Con guring, Adding, Removing members
Automatic Member Provisioning (CLONE)
MySQL InnoDB Replicaset
Copyright @ 2021 Oracle and/or its affiliates.
49
73. 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
Copyright @ 2021 Oracle and/or its affiliates.
50
74. One Product: MySQL
All components developed together
Integration of all components
Full stack testing
MySQL InnoDB Cluster & ReplicaSet - Goals
Copyright @ 2021 Oracle and/or its affiliates.
51
75. 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 & ReplicaSet - Goals
Copyright @ 2021 Oracle and/or its affiliates.
51
76. 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 & ReplicaSet - Goals
Support DNS-SRV since 8.0.19 with our connectors
Copyright @ 2021 Oracle and/or its affiliates.
51
77. Solutions Easy to Deploy
Copyright @ 2021 Oracle and/or its affiliates.
52
78. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
js> c admin@mysql1
js> cluster = dba.createCluster('cluster')
js> c admin@mysql1
js> rs = dba.createReplicaSet('replicaset')
Solutions Easy to Deploy
Copyright @ 2021 Oracle and/or its affiliates.
52
79. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
js> c admin@mysql1
js> cluster = dba.createCluster('cluster')
js> c admin@mysql1
js> rs = dba.createReplicaSet('replicaset')
Con gure server to add later
js> dba.con gureInstance('admin@mysql2') js> dba.con gureReplicaSetInstance('admin@mysql2')
Solutions Easy to Deploy
Copyright @ 2021 Oracle and/or its affiliates.
52
80. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
js> c admin@mysql1
js> cluster = dba.createCluster('cluster')
js> c admin@mysql1
js> rs = dba.createReplicaSet('replicaset')
Con gure server to add later
js> dba.con gureInstance('admin@mysql2') js> dba.con gureReplicaSetInstance('admin@mysql2')
Add server to the Cluster
js> cluster.addInstance('admin@mysql2') js> rs.addInstance('admin@mysql2')
Solutions Easy to Deploy
Copyright @ 2021 Oracle and/or its affiliates.
52
81. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
js> c admin@mysql1
js> cluster = dba.createCluster('cluster')
js> c admin@mysql1
js> rs = dba.createReplicaSet('replicaset')
Con gure server to add later
js> dba.con gureInstance('admin@mysql2') js> dba.con gureReplicaSetInstance('admin@mysql2')
Add server to the Cluster
js> cluster.addInstance('admin@mysql2') 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
Solutions Easy to Deploy
Copyright @ 2021 Oracle and/or its affiliates.
52
85. Automated deployment and management of MySQL Server
& MySQL Routers
Self-healing
Backup & Restore
Rolling upgrades with minimal downtime
Developed and supported by the MySQL Team
MySQL Kubernetes Operator
Both Kubernetes Operator & MySQL InnoDB Cluster share a common goal to make it easier
to deploy, automate and manage a service.
Copyright @ 2021 Oracle and/or its affiliates.
56
86. Automated deployment and management of MySQL Server
& MySQL Routers
Self-healing
Backup & Restore
Rolling upgrades with minimal downtime
Developed and supported by the MySQL Team
MySQL Kubernetes Operator
Both Kubernetes Operator & MySQL InnoDB Cluster share a common goal to make it easier
to deploy, automate and manage a service.
Copyright @ 2021 Oracle and/or its affiliates.
Public beta will be
released in a few weeks
56
88. Thank you to all
our contributors
Copyright @ 2021 Oracle and/or its affiliates.
58
89. Thank you !
- 555 contributions
- 68 contributors
(employees not counted 😉)
Top 3 contributors:
Facebook: 90
Laurynas Biveinis: 65
Daniël van Eeden: 54
MySQL 8.0 is also
Copyright @ 2021 Oracle and/or its affiliates.
59