More Related Content Similar to Mysql ecosystem in 2019 (20) More from Alkin Tezuysal (19) Mysql ecosystem in 20191. © 2019 Percona1
ALKIN TEZUYSAL
The MySQL Ecosystem in 2019
Where can you be part of it?
Sr. Technical Manager , @ask_dba
OSDNCONF Kiev - Keynote
Sept 14, 2019
2. © 2019 Percona2
Who am I?
• Alkin Tezuysal - @ask_dba
▪ Sr. Technical Manager, Percona
• Global Operations – Managed Services
▪ 20+ years of IT experience in RDBMS domain
▪ Enterprise background
▪ Speaker, mentor and coach
▪ Born to Sail, Forced to Work
3. © 2019 Percona3
About This Presentation
Overview of Existing
Solutions and
History of MySQL
Discuss what we
use at Percona and
best practices
Show what specific
things to look at
and trending topics
4. © 2019 Percona4
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. © 2019 Percona5
MySQL Stake Holders
• 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 2019 Oracle owns both community and enterprise editions of
MySQL
8. © 2019 Percona8
MySQL 5.7
• Over 150 new features in MySQL 5.7
• Group Replication
• InnoDB
• Optimizer
• Security
• Performance Schema
• GIS (Geographic Information System)
• JSON
Ref:http://www.thecompletelistoffeatures.com/
9. © 2019 Percona9
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/
10. © 2019 Percona10
MySQL 8.0.17
• 8.0.0 to 8.0.5 Several Bugs Fixed
• 8.0.11 Deprecates uft8mb3
• 8.0.12 Improves performance_schema defaults
• 8.0.13 Major deprecations InnoDB, Partitioning
• 8.0.14 MySQL allows dual passwords
• 8.0.15 Bugs Fixed
• InnoDB: After a checkpoint operation persisted modifications to data dictionary metadata, there was potential for new metadata changes to be lost under certain circumstances. (Bug
#29120297)
• Group Replication was unable to function in the 8.0.14 release of MySQL Server if IPv6 support was disabled at the operating system level, even if the replication group did not use any
IPv6 addresses. The issue is fixed by this release of MySQL Server, 8.0.15. (Bug #29249542, Bug #94004)
• If MySQL was running on the host system and within Docker, it was not possible to update or remove MySQL on the host system. (Bug #28244773, Bug #91405)8.0.0 to 8.0.11 several
bug fixes
• 8.0.16 Several changes made to account-management capabilities, deprecation of mysql_upgrade.
• 8.0.17 Audit Log , C API , Character Set Support changes.
• MySQL Shell Plugins
• Parallel table import
• In InnoDB Cluster:
• Automatic instance provisioning through cloning
• Automatic server version compatibility handling
• Simplification of internal recovery accounts
• 8.0.18/19 aren’t GA yet
12. © 2019 Percona12
Percona Server for MySQL 8.0.15-5
• 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 Hast/Digest Functions
• Improved diagnostics with instrumentation and troubleshooting
features
13. © 2019 Percona13
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
- - TokuDB
- Threadpool Threadpool
https://www.percona.com/software/mysql-database/percona-
server/feature-comparison
14. © 2019 Percona14
MariaDB 10.3.17
• System-versioned tables (also known as AS OF) (MDEV-12894)
• Table Value Constructors (MDEV-12172) — GSoC 2017 project by Galina Shalygina
• Transform [NOT] IN predicate with long list of values INTO [NOT] IN subquery (MDEV-12176) — GSoC 2017 project by Galina Shalygina
• ROW TYPE OF now supports local SP variables (MDEV-14139)
• Aggregate stored functions (MDEV-7773) — GSoC 2016 project by Varun Gupta
• Support for LIMIT clause in GROUP_CONCAT() (MDEV-11297)
• PERCENTILE_CONT, PERCENTILE_DISC, and MEDIAN window functions (MDEV-12985)
• FOR ... END FOR statement (MDEV-14415)
• XA RECOVER FORMAT='SQL' (MDEV-14593)
• Oracle compatible SUBSTR() function (MDEV-14012) — contribution by Jérôme Brauge
• INVISIBLE columns (MDEV-10177) — GSoC 2016 project by Sachin Setiya
• Various scalability improvements (MDEV-14529, MDEV-14505)
• Sequences can now be used with DEFAULT.
• Semi-sync plugin merged into the server (MDEV-13073) — contribution by Alibaba
• CREATE/SHOW/ALTER/DROP SEQUENCE (MDEV-10139)
https://mariadb.com/kb/en/library/changes-improvements-in-
mariadb-103/
15. © 2019 Percona15
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
Ref:https://www.percona.com/live/e18/sessions/myrocks-in-the-real-world
16. © 2019 Percona16
MyRocks - Read, Write and Space
Performance/Efficiency
Ref:https://www.percona.com/live/e18/sessions/myrocks-in-the-real-world
17. © 2019 Percona17
Other Major Players
• Amazon Web Services (AWS) RDS MySQL & MariaDB
• Amazon Web Services (AWS) Aurora
• Google Cloud Platform
• Alibaba Cloud (AliSQL, PolarDB)
• Microsoft Azure MySQL & MariaDB
• Rackspace Cloud MySQL & MariaDB & Percona Server
• Linux distributions MariaDB default database
19. © 2019 Percona19
MySQL Use Cases
0
1
2
3
4
5
6
Category 1 Category 2 Category 3 Category 4
Chart Title
Series 2 Series 3
Web Scale
▪ Social Media (Facebook,
Twitter)
▪ Content and Cloud
Providers (Google,
Dropbox, Box)
▪ Services (Uber, Booking)
▪ E-commerce (ebay,
amazon)
SaaS
▪ AWS , Salesforce, Slack,
Adobe
Ref: https://www.mysql.com/customers/ Ref: https://dzone.com/articles/2019-open-source-database-report-top-
databases-pub
20. © 2019 Percona20
What’s the most used Database in the world?
• Oracle ?
• SQL Server ?
• DB2 ?
• MySQL ?
• PostgreSQL ?
SQLite
• Every Android device
• Every iPhone and iOS device
• Every Mac
• Every Windows10 machine
• Every Firefox, Chrome, and Safari web browser
• Every instance of Skype
• Every instance of iTunes
• Every Dropbox client
• Every TurboTax and QuickBooks
• PHP and Python
• Most television sets and set-top cable boxes
• Most automotive multimedia systems
• Countless millions of other applications
https://www.sqlite.org/mostdeployed.html
21. © 2019 Percona21
Edge Cases of MySQL
• Very Large Clusters
up to 10-15K
MySQL instances.
• Sharded
operations for
geographic zones
and customer base
Vitess
• Usage beyond MySQL’s initial design
• Not fit due to hardware limitation
• Unexpected growth and expansion
• One billion tables http://bit.ly/2DCXfjI
22. © 2019 Percona22
Scalability and Proxy Wars
• What’s a proxy? – Lightweight application between client and server
• Known proxies and load balancers:
• Software
• ProxySQL
• ScaleArc
• MaxScale
• Netscaler (Virtual Appliance)
• HA Proxy
• MySQL Router
• Hardware
• Netscaler
• F5
23. © 2019 Percona23
Open Source Proxy Options
•ProxySQL 2.0.7 (GPLv3)
▪Stable since December 2015
▪ProxySQL - included with
PerconaXtraDB Cluster 5.7,8.0,
▪Lots of features and use cases
▪ProxySQL Use Case Scenarios
•MariaDB MaxScale 1.0…1.4.x GA
▪GA 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
24. © 2019 Percona24
MySQL Proxy Vision
https://proxysql.com/blog/proxysql-native-galera-support https://tinyurl.com/y5fwde4z
25. © 2019 Percona25
On Premise
▪ MySQL
•Group Replication
•Innodb Cluster
▪ Based on Galera
•Percona Xtradb
•MariaDB
▪ Continuent Tungsten
▪ ScaleArc
▪ Vitess
▪ Native Replication
•MHA, Orchestrator, MySQL Failover
Cloud
▪ AWS Aurora
▪ Google Cloud Platform
▪ Azure SQL
▪ Alibaba Cloud AliSQL
▪ Microsoft Azure
MySQL HA Solutions
26. © 2019 Percona26
Tooling Highlights
• Percona Toolkit (pt-osc,pt-table-sync, XtraBackup)
• MySQL Shell
• Orchestrator, gh-ost
• MHA
• Tungsten Replicator
• MySQL Built-in Utilities
• ClusterControl
• MySQL Sandbox aka Dbdeployer
• Sysbench
• GUI tools: MySQL Workbench, phpMyAdmin, SQLYog, etc
• PMM , VividCortex
27. © 2019 Percona27
MySQL Trending Topics
• Kubernetes Operators
• Group Replication
• Galera 4.0
• MySQL 8.0.X
• Vitess
• Observability & Monitoring
• ProxySQL
• Orchestrator
28. © 2019 Percona28
• 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
• Oracle MySQL Operator for
Kubernetes
• Cluster configuration
• Cluster management
• Backup and restore
• Operations
Kubernetes Operators for MySQL
29. © 2019 Percona29
Vitess
• Scalability
• Performance
• Manageability
• Shard management
• Performance
• Connection pooling
• Shard management
• Workflow
30. © 2019 Percona30
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
31. © 2019 Percona31
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 slave 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
33. © 2019 Percona33
PMM Highlights
• 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
34. © 2019 Percona34
Vividcortex Highlights
• Network analyzer
• Monitors MySQL Queries real time
• Monitors MySQL metrics
• Agent based auto discovery
• Cloud hosted
• Designed for teams