MySQL is still hot, with Percona XtraDB Cluster (PXC) and MariaDB Server. Welcome back post-pandemic to see what is on offer in the current ecosystem.
Did you know that Amazon RDS now uses semi-sync replication rather than DRBD for multi-AZ deployments? Did you know that Galera Cluster for MySQL 8 is much more efficient with CLONE SST rather than using the xtrabackup method for SST? Did you know that Percona Server continues to extend MyRocks? Did you know that MariaDB Server has more Oracle syntax compatibility? This and more will be covered in the session, while short and quick, should leave you wandering to discover new features for production.
WordPress Websites for Engineers: Elevate Your Brand
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
1. The MySQL Ecosystem in
2023
Where can you be part of it?
ALKIN TEZUYSAL - EVP - Global Services - @ask_dba - askdba.net
COLIN CHARLES – byte@bytebot.net – @bytebot – bytebot.net
Apr 13-15, 2023 - FOSSASIA SUMMIT SINGAPORE
2. Alkin Tezuysal - @ask_dba
EVP - Global Services @chistadata
● Linkedin : https://www.linkedin.com/in/askdba/
● Twitter: https://twitter.com/ask_dba
● Blog : https://askdba.net/blog/
Open Source Database Evangelist
● Previously PlanetScale, Percona and Pythian as Technical Manager,
SRE, DBA
● Previously Enterprise DBA , Informix, Oracle, DB2 , SQL Server
● MySQL Cookbook 4e - O’reilly co-Author 2022
● Most Influential - Open Source Databases 2022, redgate 100
@ask_dba
3. Colin Charles
• Consultant at Codership, makers of Galera Cluster
• Active in the MySQL ecosystem: Founding team of MariaDB Server (2009-2016),
early at MySQL AB (pre-Sun exit), Percona.
• Past lives include Fedora Project (FESCO), OpenOffice.org
• MySQL Community Contributor of the Year Award winner 2014
3
4. Inception of
MySQL
• Written by Monty Widenius (Monty) in
1995
• In 15 June 2001, NuSphere sued MySQL AB,
• In October 2005, Oracle Corporation
acquired Innobase
• In February 2006, Oracle Corporation
acquired Sleepycat Software
• In January 2008, Sun Microsystems bought
MySQL
• In April 2009, Oracle Corporation entered into
an agreement to purchase Sun Microsystems
5. MySQL
Stakeholders
In January 2009, before Oracle's acquisition of MySQL,
Monty Widenius started a GPL-only fork, MariaDB.
In 2008 Peter Zaitsev found Percona with MySQL fork
In 2008 Drizzle lasted till 2012
In 2014 WebScaleSQL lasted till 2016
As of 2020 Oracle owns both Community and Enterprise
Editions of MySQL
6. Fast forward, what changed in 3 years?
• MariaDB Corporation is now public as MariaDB plc, trading as MRDB; rapid
release model + LTS releases
• Percona has rebranded
• Oracle has made 14 GA releases of MySQL 8
• Amazon RDS uses semi-sync • Facebook has Raft-based replication
6
10. MySQL 5.7
EOL
Ends in 7
months (31
Oct 2023)
• Over 150 new features in MySQL 5.7
• Group Replication
• InnoDB
• Optimizer
• Security
• Performance Schema
• GIS (Geographic Information System)
• JSON
• How to Upgrade to MySQL 8 Like
a Boss
Ref:http://www.thecompletelistoffeatures.com/
11. MySQL 8.0
• Native Data Dictionary
• Fast Information Schema
• Utf8mb4 as Default
Character Set
• Security
• Roles
• New Super Privileges
• Password history
• Log encryption
• Persistent Auto Increment
• Auto Undo Tablespace
• Self Tuning (pool, log, flush)
• Invisible Indexes
• Optimizer Histograms
• Performance Schema
• Innodb No Wait and Skip
Locked
• Descending Indexes
• Aggregate over JSON
• JSON to table (Labs)
• JSON Extraction
• CTE (Recursive and
Non-Recursive)
• Window Functions
• GIS Features Set
• Document Store
• MySQL Shell
Database Administration Software Development
Ref:https://mysqlserverteam.com/the-complete-list-of-new-features-in-mysql-8-0/
12. MariaDB
Server
Feature
Highlights
DML only Flashback -
rollback
instances/databases/tables
to an older snapshot
ed25519 password plugin
simple_password_check,
cracklib_password_check
Accounts, passwords, and
global privileges are stored in
mysql.global_priv
Progress reporting
Table elimination
Dynamic columns
Column compression
PROXY protocol support
Instant DROP COLUMN
LIMIT ROWS EXAMINED
Usernames up to 80 characters,
roles up to 128 characters
MariaDB threadpool
LIMIT ROWS EXAMINED
Extended KILL syntax
User statistics
Oracle PL/SQL support
Invisible columns
System versioned tables, AS OF
queries
InnoDB AHI off by default
13. MySQL
8.0.32
January 2023
• 8.0.0 to 8.0.5 Several Bugs Fixed
• …
• 8.0.19 Innodb ReplicaSet Parallel Table Import, Innodb
Cluster improvements
• 8.0.20 Binary Log Compression
• …
• 8.0.32
• MySQL InnoDB ReplicaSet,
Cluster & ClusterSet
• INSTANT ADD/DROP feature
15. Percona
Server for
MySQL
8.0.32
• Faster and more consistently run queries
• Enhanced security with binary log (binlog)
encryption and data-at-rest encryption
• MyRocks, TokuDB Storage Engines
• InnoDB Full-Text Search Improvements
• Extra Hash/Digest Functions
• Keyring in HashiCorp Vault
• Improved diagnostics with instrumentation
and troubleshooting features
16. Community
vs
Enterprise
vs Percona
Community Enterprise Percona
- MySQL Enterprise
Monitor
Percona Monitoring and
Management
- PAM Authentication PAM Authentication
- - RocksDB
- - Extra Hash/Digest
Functions
- - Extra Diagnostic
Features
- Performance &
Scalability
Performance &
Scalability
- MySQL Enterprise
Backup
Percona Xtrabackup
- MySQL Enterprise Audit Percona Audit Plugin
- - RocksDB
- Threadpool Threadpool
17. Percona /
MariaDB
MyRocks
Engine
• MyRocks storage engine based of
RocksDB
• RocksDB is key-value store fork of
LevelDB
• Optimized for writes and disk space
usage
• Log-Structured Merge Tree Database
• Compressed InnoDB is roughly 2x
smaller than uncompressed InnoDB,
MyRocks/HBase are 4x smaller
• Decompression cost on read is non
zero. It matters less on I/O bound
workloads
• Write efficiency is 10X better
18. MyRocks Engine –
Read, Write and Space
Performance/Efficiency
●Ref:https://www.percona.com/live/e18/sessions/myrocks-in-t
he-real-world
21. Open Source
Proxy
Options for
MySQL
ProxySQL 2.5.1 (GPLv3)
○ Stable since December
2015
○ ProxySQL - included with
Percona XtraDB Cluster
5.7,8.0
○ Lots of features and use
cases
○ ProxySQL Use Case
Scenarios
MariaDB MaxScale
1.0…1.4.x
○ GA since January 2015
○ The “Swiss Army Knife” -
pluggable router with an
extensible architecture
○ Logging, writing to other
backends (besides
MySQL), firewall filter,
routing via hints, query
rewriting
○ Binlog Server -
popularised by
booking.com to not have
intermediate masters
○ Popular use case: sitting
in front of a 3-node
Galera Cluster
26. Kubernetes Operators for MySQL
Percona Kubernetes
Operator for Percona XtraDB
Cluster
✔ Deploy easily
✔ Scale Percona XtraDB
Cluster
✔ Automate Backups
✔ Integrate with Percona
Monitoring and
Management (PMM)
✔ Relies on ProxySQL to
Remove Single Point of
Failure
✔ Automate node
recovery
✔ Provide data encryption
✔ Support private data
registries
Presslabs Kubernetes
Operator
✔ Integration with Google
Cloud Marketplace,
OperatorHub.io, AWS
Marketplace
✔ CRD Validation and
webhooks
✔ SSL support
✔ Default integrated with
MySQL 8.0
✔ Proxy SQL integration
✔ Backup policies
✔ Physical backups
✔ HA Orchestrator
integration
✔ Prometheus metrics
exporter
✔ Lag mitigation
✔ Query limits
Vitess Kubernetes Operator
✔ Create a StatefulSet for
each VitessTablet in a
VitessCluster
✔ Create a Job to elect the
initial master in each
VitessShard
✔ Fix parenting and
normalization
✔ Create vtctld Deployment
and Service
✔ Create vttablet service
✔ Create vtgate Deployment
and Service
✔ Create
PodDisruptionBudgets
✔ Reconcile all the things!
✔ Label pods when they
become shard masters
✔ Add the ability to
automatically merge/split
a shard
✔ Add the ability to
automatically
export/import resources
from embedded objects to
separate objects and back
27. MySQL Operator for Kubernetes Architecture
Ref:https://dev.mysql.com/doc/mysql-operator/en/mysql-operator-introduction.html
29. MySQL Group
Replication
●Oracle MySQL shared-everything
●Developed in 2013 at 5.6, GA
since 5.7 at the end of 2016
●MySQL Plugin
●Paxos based consensus
algorithm Multi-Master
●InnoDB engine
●Performance Schema tables
●Enhanced in 8.0.X
30. Galera 4.0
● Galera Cluster uses an allocation algorithm that attempts to store
write-sets.
● True Multi-master, Active-Active Cluster Read and write to any node at
any time.
● Synchronous Replication, No secondary lag, no data is lost at node
crash.
● Tightly Coupled All nodes hold the same state. No diverged data
between nodes allowed.
● Multi-threaded Slave For better performance. For any workload.
● No Master-Slave Failover Operations or Use of VIP.
● Hot Standby No downtime during failover (since there is no failover).
● Automatic Node Provisioning No need to manually back up the
database and copy it to the new node.
● Supports InnoDB.
● Transparent to Applications Required no (or minimal changes) to the
application.
● No Read and Write Splitting Needed.
● Easy to Use and Deploy
31. PMM
Highlights
https://pmmdemo.percona.com/
Point-in-time visibility and historical trending of database performance
Data from the Performance Schema and MySQL slow query log
Specific Amazon RDS and Amazon Aurora metrics dashboards for
AWS-specific monitoring
Data from the MongoDB query profiler
Best-of-breed tools, including Grafana, Prometheus, and Consul, query
analytics, administration, API, agent and exporter components
DBTA TREND-SETTING PRODUCT 2019