SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Percona Server for MySQL 8.0
Laurynas Biveinis

Percona
!2
First of All, What Is Percona Server for MySQL?
“…a free, fully compatible, enhanced and open source drop-in replacement
for any MySQL database…”
!3
First of All, What Is Percona Server for MySQL?
• Based on open-source MySQL community edition
• With enhancements
• With bugfixes
• Care is taken to maintain drop-in quality unless some specific features are
enabled
!4
What Is Percona Server for MySQL 8.0?
Two Ways to Define It:
New / MySQL 8.0 user:
Percona Server 8.0
= MySQL 8.0
+ enhancements
Percona Server 5.7 user:
Percona Server 8.0
= Percona Server 5.7
+ MySQL 8.0
+ Percona 8.0-specific
enhancements
!5
Let’s Focus on a “New / MySQL 8.0 User”
New / MySQL 8.0 user:
Percona Server 8.0
= MySQL 8.0
+ enhancements
Additionally we will certain upgrade from Percona Server 5.7 points at
the end
!6
Percona Server 8.0 Enhancements over MySQL
• Write-optimized storage engines
• Data encryption
• Enterprise features
• Flexibility & management
!7
Percona Server 8.0: Write-Optimized Storage Engines
• InnoDB is a battle-tested B-tree-based read-optimized storage engine
• LSM-tree-based RocksDB key-value store
• Efficient writes, efficient compression, reads not that bad
• RocksDB-based MyRocks storage engine
• New in 8.0: native partitioning
• New in 8.0: cross-engine consistent physical backups
• TokuDB fully supported but scheduled to EOL at the end of 8.0 cycle
!8
Percona Server 8.0: Data Encryption: Project Goals
• Do not write any unencrypted data to disk in an InnoDB-based server
• Support several key storage options
• Support key rotation
• Implemented through a combination of existing MySQL features, MariaDB
security feature porting, & own development
!9
Percona Server 8.0: Data Encryption: Current Status
MySQL 8.0 MariaDB Percona Server 5.7 Percona Server 8.0
File-per-table tablespace encryption ✅ ✅ ✅ ✅
General tablespace encryption ✅ N/A ✅ ✅
Temporary tablespace encryption pre-GA pre-GA
System tablespace encryption pre-GA pre-GA
mysql.ibd encryption ✅ N/A N/A ✅
InnoDB redo log encryption ✅ ✅ (?) pre-GA ✅
InnoDB undo log encryption ✅ pre-GA ✅
InnoDB temp file (DDL log) encryption ✅ (?) pre-GA pre-GA
Server temp file encryption ✅ (?) pre-GA pre-GA
Binary log encryption ✅ ✅ (?) ✅ ✅
Key storage in a local file ✅ ✅ ✅ ✅
Key storage in Hashicorp Keyring Vault ✅ ✅
Key storage in Amazon KMS ✅ (EE) ✅
Key storage in Oracle Vault ✅ (EE)
Key versioning and rotation ✅ (?) pre-GA pre-GA
!10
Percona Server 8.0: Encryption in Depth
• Robert Golebiowski presenting “In-depth Percona Server/MySQL
encryption” today at 2:55PM @ Texas 7
!11
Percona Server 8.0: Enterprise Features
• Threadpool
• Audit plugin
• PAM authentication plugin
Percona Server 8.0: 

Flexibility & Management
!13
Percona Server 8.0: MEMORY Engine VARCHAR/BLOB
Percona Server
MEMORY SE
MySQL

MEMORY SE
MySQL
TempTable SE
Can store VARCHAR ✅ ✅
Can store BLOB
(JSON, TEXT, …)
✅
Users can create
tables
✅ ✅
Query optimiser can
use if VARCHAR
✅
!14
Percona Server 8.0: Column Compression with Dictionaries
• A problem to solve: store lots of small JSON documents efficiently
• InnoDB table compression: limited compression ratio
• InnoDB page compression: just don’t
• Compression at application level: limited compression ratio, needs
application changes
• MyRocks: maybe?
!15
Percona Server 8.0: Column Compression with Dictionaries
• CREATE TABLE t (foo JSON COLUMN_FORMAT COMPRESSED)
ENGINE=InnoDB;
• Now “foo” gets compressed and decompressed transparently on each access
• Create a dictionary with shared words between different rows for compression ratio
improvement:
• CREATE COMPRESSION DICTIONARY address_parts (‘country’ ‘state’ ‘city’ … )
• CREATE TABLE … address JSON COLUMN_FORMAT COMPRESSED WITH
COMPRESSION_DICTIONARY address_parts …
!16
Percona Server 8.0: Backup Support
• MySQL 8.0: LOCK INSTANCE FOR BACKUP
• MySQL 8.0: performance_schema.log_status
• Percona Server 8.0: LOCK TABLES FOR BACKUP blocks less
• Percona Server 8.0: performance_schema.log_status extended for
MyRocks
• Percona Server 8.0: START TRANSACTION WITH CONSISTENT
SNAPSHOT consistent across storage engines & binlog
Upgrading from Percona Server 5.7
!18
Partitioned TokuDB & MyRocks Tables
• MySQL dropped support for legacy partitioning handler, all storage engines
must implement partitioning natively
• Implemented for TokuDB and MyRocks in 8.0
• That is not enough for upgrades: 8.0 server cannot read 5.7-format
partitioned tables
• Hence native partitioning implemented in 5.7 too for the sole purpose of
upgrade
• ALTER TABLE … UPGRADE PARTITIONING
!19
SET STATEMENT FOR → /* SET_VAR */
• Percona Server 5.7 (and MariaDB) per-statement variable assignments:
• SET STATEMENT sort_buffer_size = 100000 FOR SELECT name, id …
• MySQL 8.0 query optimizer hint for setting variables:
• SELECT /*+ SET_VAR(sort_buffer_size=100000) */ name, id …
• MySQL 8.0 implementation is restricted compared to Percona Server 5.7
one
• Percona Server 8.0 addresses most restrictions
!20
“Userstat” Duration Columns Now Floating-Point
• INFORMATION_SCHEMA.CLIENT_STATISTICS, THREAD_STATISTICS,
USER_STATISTICS tables column CONNECTED_TIME, BUSY_TIME,
CPU_TIME types changed:
• Percona Server 5.7: integers, providing 1 second resolution only
• Percona Server 8.0: floating-point doubles
!21
SHOW [EFFECTIVE] GRANTS
• MySQL 5.7 SHOW GRANTS
• Shows assigned but not effective grants
• Percona Server 5.7 SHOW GRANTS
• The above was considered a bug
• Changed to show effective but not assigned grants
• Percona Server 8.0 SHOW [EFFECTIVE] GRANTS
• The above was also considered a bug
• SHOWS GRANTS: shows assigned grants
• SHOW EFFECTIVE GRANTS: shows effective grants
!22
Binlog Space Management
• Percona Server 5.7: max_binlog_files
• Manage max space in combination with max_binlog_size
• Was not reliable due to extra rotations
• Percona Server 8.0: binlog_space_limit
• binlog_space_limit=10G: no need to combine with other variables
• Easier to manage, works as expected
!23
[innodb_]kill_idle_transactions
• Percona Server 5.7: kill_idle_transactions & innodb_kill_idle_transactions
• Identically-behaving aliases
• innodb_kill_idle_transactions deprecated
• Percona Server 8.0: kill_idle_transactions only
!24
Removed Deprecated Features
• Scalability metrics plugin
• Subtly broken architecture with no easy fix
• No users we are aware of
• INFORMATION_SCHEMA.THREAD_STATISTICS.

CONCURRENT_CONNECTIONS column
• All of our query cache patches
!25
Removed Features due to Upstream
• Query Response Time plugin: replaced by Performance Schema
execution time histograms
• innodb_flush_method=ALL_O_DIRECT
• Avoided keeping redo logs in the kernel filesystem cache
• But MySQL 8.0 redo logging is dependant on logs being cached
!26
Removed Features due to Lack of Uptake
• INFORMATION_SCHEMA.XTRADB_RSEG
• Expanded program option modifiers
• Utility user
• pseudo_server_id
• CSV_MODE
• max_slowlog_files and max_slowlog_size
• innodb_show_verbose_locks
• Let us know if you use any of those!
Thank You to Our Sponsors
!28
Rate My Session

Mais conteúdo relacionado

Mais procurados

Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp
 
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
Tarique Saleem
 

Mais procurados (20)

MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB Server
 
MySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDB
 
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
 
Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015
 
Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 FebMysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb
 
The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloud
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability Solutions
 
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
 
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
 
MySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
MySQL InnoDB Cluster and Group Replication - OSI 2017 BangaloreMySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
MySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
 
Redefining tables online without surprises
Redefining tables online without surprisesRedefining tables online without surprises
Redefining tables online without surprises
 
Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0
 
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityBest practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High Availability
 
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql Fabric
 
MySQL Multi Master Replication
MySQL Multi Master ReplicationMySQL Multi Master Replication
MySQL Multi Master Replication
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
 
What is MariaDB Server 10.3?
What is MariaDB Server 10.3?What is MariaDB Server 10.3?
What is MariaDB Server 10.3?
 
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 Cluster (NDB) - Best Practices Percona Live 2017
MySQL Cluster (NDB) - Best Practices Percona Live 2017MySQL Cluster (NDB) - Best Practices Percona Live 2017
MySQL Cluster (NDB) - Best Practices Percona Live 2017
 

Semelhante a Percona Server for MySQL 8.0 @ Percona Live 2019

MySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics ImprovementsMySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics Improvements
Morgan Tocker
 
My sql 56_roadmap_april2012_zht2
My sql 56_roadmap_april2012_zht2My sql 56_roadmap_april2012_zht2
My sql 56_roadmap_april2012_zht2
Ivan Tu
 

Semelhante a Percona Server for MySQL 8.0 @ Percona Live 2019 (20)

Percona Server 8.0
Percona Server 8.0Percona Server 8.0
Percona Server 8.0
 
Best practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialBest practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability Tutorial
 
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
 
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale by ...
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale  by ...[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale  by ...
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale by ...
 
Mysql ecosystem in 2019
Mysql ecosystem in 2019Mysql ecosystem in 2019
Mysql ecosystem in 2019
 
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim TkachenkoNoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
 
Percona Server 5.6: Enterprise-Grade MySQL / PLMCE 2014
Percona Server 5.6: Enterprise-Grade MySQL / PLMCE 2014Percona Server 5.6: Enterprise-Grade MySQL / PLMCE 2014
Percona Server 5.6: Enterprise-Grade MySQL / PLMCE 2014
 
MySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics ImprovementsMySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics Improvements
 
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
 
MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC
 
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdfMySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
 
My sql 56_roadmap_april2012
My sql 56_roadmap_april2012My sql 56_roadmap_april2012
My sql 56_roadmap_april2012
 
Mysql ecosystem in 2018
Mysql ecosystem in 2018Mysql ecosystem in 2018
Mysql ecosystem in 2018
 
MySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats new
 
My sql 56_roadmap_april2012_zht2
My sql 56_roadmap_april2012_zht2My sql 56_roadmap_april2012_zht2
My sql 56_roadmap_april2012_zht2
 
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB MeetupMariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
 
The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it! The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it!
 
MySQL Replication Evolution -- Confoo Montreal 2017
MySQL Replication Evolution -- Confoo Montreal 2017MySQL Replication Evolution -- Confoo Montreal 2017
MySQL Replication Evolution -- Confoo Montreal 2017
 
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
 
MySQL 5.7 what's new
MySQL 5.7 what's newMySQL 5.7 what's new
MySQL 5.7 what's new
 

Mais de Laurynas Biveinis

Tracking Page Changes for Your Database and Bitmap Backups
Tracking Page Changes for Your Database and Bitmap BackupsTracking Page Changes for Your Database and Bitmap Backups
Tracking Page Changes for Your Database and Bitmap Backups
Laurynas Biveinis
 

Mais de Laurynas Biveinis (7)

Percona Server 8.0
Percona Server 8.0Percona Server 8.0
Percona Server 8.0
 
Percona Server 5.7: Key Performance Algorithms
Percona Server 5.7: Key Performance AlgorithmsPercona Server 5.7: Key Performance Algorithms
Percona Server 5.7: Key Performance Algorithms
 
XtraDB 5.7: key performance algorithms
XtraDB 5.7: key performance algorithmsXtraDB 5.7: key performance algorithms
XtraDB 5.7: key performance algorithms
 
Developing a database server: software engineer's view
Developing a database server: software engineer's viewDeveloping a database server: software engineer's view
Developing a database server: software engineer's view
 
XtraDB 5.6 and 5.7: Key Performance Algorithms
XtraDB 5.6 and 5.7: Key Performance AlgorithmsXtraDB 5.6 and 5.7: Key Performance Algorithms
XtraDB 5.6 and 5.7: Key Performance Algorithms
 
Fast Incremental Backups with Percona Server and Percona XtraBackup / PLMCE 2014
Fast Incremental Backups with Percona Server and Percona XtraBackup / PLMCE 2014Fast Incremental Backups with Percona Server and Percona XtraBackup / PLMCE 2014
Fast Incremental Backups with Percona Server and Percona XtraBackup / PLMCE 2014
 
Tracking Page Changes for Your Database and Bitmap Backups
Tracking Page Changes for Your Database and Bitmap BackupsTracking Page Changes for Your Database and Bitmap Backups
Tracking Page Changes for Your Database and Bitmap Backups
 

Último

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 

Último (20)

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 

Percona Server for MySQL 8.0 @ Percona Live 2019

  • 1. Percona Server for MySQL 8.0 Laurynas Biveinis
 Percona
  • 2. !2 First of All, What Is Percona Server for MySQL? “…a free, fully compatible, enhanced and open source drop-in replacement for any MySQL database…”
  • 3. !3 First of All, What Is Percona Server for MySQL? • Based on open-source MySQL community edition • With enhancements • With bugfixes • Care is taken to maintain drop-in quality unless some specific features are enabled
  • 4. !4 What Is Percona Server for MySQL 8.0? Two Ways to Define It: New / MySQL 8.0 user: Percona Server 8.0 = MySQL 8.0 + enhancements Percona Server 5.7 user: Percona Server 8.0 = Percona Server 5.7 + MySQL 8.0 + Percona 8.0-specific enhancements
  • 5. !5 Let’s Focus on a “New / MySQL 8.0 User” New / MySQL 8.0 user: Percona Server 8.0 = MySQL 8.0 + enhancements Additionally we will certain upgrade from Percona Server 5.7 points at the end
  • 6. !6 Percona Server 8.0 Enhancements over MySQL • Write-optimized storage engines • Data encryption • Enterprise features • Flexibility & management
  • 7. !7 Percona Server 8.0: Write-Optimized Storage Engines • InnoDB is a battle-tested B-tree-based read-optimized storage engine • LSM-tree-based RocksDB key-value store • Efficient writes, efficient compression, reads not that bad • RocksDB-based MyRocks storage engine • New in 8.0: native partitioning • New in 8.0: cross-engine consistent physical backups • TokuDB fully supported but scheduled to EOL at the end of 8.0 cycle
  • 8. !8 Percona Server 8.0: Data Encryption: Project Goals • Do not write any unencrypted data to disk in an InnoDB-based server • Support several key storage options • Support key rotation • Implemented through a combination of existing MySQL features, MariaDB security feature porting, & own development
  • 9. !9 Percona Server 8.0: Data Encryption: Current Status MySQL 8.0 MariaDB Percona Server 5.7 Percona Server 8.0 File-per-table tablespace encryption ✅ ✅ ✅ ✅ General tablespace encryption ✅ N/A ✅ ✅ Temporary tablespace encryption pre-GA pre-GA System tablespace encryption pre-GA pre-GA mysql.ibd encryption ✅ N/A N/A ✅ InnoDB redo log encryption ✅ ✅ (?) pre-GA ✅ InnoDB undo log encryption ✅ pre-GA ✅ InnoDB temp file (DDL log) encryption ✅ (?) pre-GA pre-GA Server temp file encryption ✅ (?) pre-GA pre-GA Binary log encryption ✅ ✅ (?) ✅ ✅ Key storage in a local file ✅ ✅ ✅ ✅ Key storage in Hashicorp Keyring Vault ✅ ✅ Key storage in Amazon KMS ✅ (EE) ✅ Key storage in Oracle Vault ✅ (EE) Key versioning and rotation ✅ (?) pre-GA pre-GA
  • 10. !10 Percona Server 8.0: Encryption in Depth • Robert Golebiowski presenting “In-depth Percona Server/MySQL encryption” today at 2:55PM @ Texas 7
  • 11. !11 Percona Server 8.0: Enterprise Features • Threadpool • Audit plugin • PAM authentication plugin
  • 12. Percona Server 8.0: 
 Flexibility & Management
  • 13. !13 Percona Server 8.0: MEMORY Engine VARCHAR/BLOB Percona Server MEMORY SE MySQL
 MEMORY SE MySQL TempTable SE Can store VARCHAR ✅ ✅ Can store BLOB (JSON, TEXT, …) ✅ Users can create tables ✅ ✅ Query optimiser can use if VARCHAR ✅
  • 14. !14 Percona Server 8.0: Column Compression with Dictionaries • A problem to solve: store lots of small JSON documents efficiently • InnoDB table compression: limited compression ratio • InnoDB page compression: just don’t • Compression at application level: limited compression ratio, needs application changes • MyRocks: maybe?
  • 15. !15 Percona Server 8.0: Column Compression with Dictionaries • CREATE TABLE t (foo JSON COLUMN_FORMAT COMPRESSED) ENGINE=InnoDB; • Now “foo” gets compressed and decompressed transparently on each access • Create a dictionary with shared words between different rows for compression ratio improvement: • CREATE COMPRESSION DICTIONARY address_parts (‘country’ ‘state’ ‘city’ … ) • CREATE TABLE … address JSON COLUMN_FORMAT COMPRESSED WITH COMPRESSION_DICTIONARY address_parts …
  • 16. !16 Percona Server 8.0: Backup Support • MySQL 8.0: LOCK INSTANCE FOR BACKUP • MySQL 8.0: performance_schema.log_status • Percona Server 8.0: LOCK TABLES FOR BACKUP blocks less • Percona Server 8.0: performance_schema.log_status extended for MyRocks • Percona Server 8.0: START TRANSACTION WITH CONSISTENT SNAPSHOT consistent across storage engines & binlog
  • 18. !18 Partitioned TokuDB & MyRocks Tables • MySQL dropped support for legacy partitioning handler, all storage engines must implement partitioning natively • Implemented for TokuDB and MyRocks in 8.0 • That is not enough for upgrades: 8.0 server cannot read 5.7-format partitioned tables • Hence native partitioning implemented in 5.7 too for the sole purpose of upgrade • ALTER TABLE … UPGRADE PARTITIONING
  • 19. !19 SET STATEMENT FOR → /* SET_VAR */ • Percona Server 5.7 (and MariaDB) per-statement variable assignments: • SET STATEMENT sort_buffer_size = 100000 FOR SELECT name, id … • MySQL 8.0 query optimizer hint for setting variables: • SELECT /*+ SET_VAR(sort_buffer_size=100000) */ name, id … • MySQL 8.0 implementation is restricted compared to Percona Server 5.7 one • Percona Server 8.0 addresses most restrictions
  • 20. !20 “Userstat” Duration Columns Now Floating-Point • INFORMATION_SCHEMA.CLIENT_STATISTICS, THREAD_STATISTICS, USER_STATISTICS tables column CONNECTED_TIME, BUSY_TIME, CPU_TIME types changed: • Percona Server 5.7: integers, providing 1 second resolution only • Percona Server 8.0: floating-point doubles
  • 21. !21 SHOW [EFFECTIVE] GRANTS • MySQL 5.7 SHOW GRANTS • Shows assigned but not effective grants • Percona Server 5.7 SHOW GRANTS • The above was considered a bug • Changed to show effective but not assigned grants • Percona Server 8.0 SHOW [EFFECTIVE] GRANTS • The above was also considered a bug • SHOWS GRANTS: shows assigned grants • SHOW EFFECTIVE GRANTS: shows effective grants
  • 22. !22 Binlog Space Management • Percona Server 5.7: max_binlog_files • Manage max space in combination with max_binlog_size • Was not reliable due to extra rotations • Percona Server 8.0: binlog_space_limit • binlog_space_limit=10G: no need to combine with other variables • Easier to manage, works as expected
  • 23. !23 [innodb_]kill_idle_transactions • Percona Server 5.7: kill_idle_transactions & innodb_kill_idle_transactions • Identically-behaving aliases • innodb_kill_idle_transactions deprecated • Percona Server 8.0: kill_idle_transactions only
  • 24. !24 Removed Deprecated Features • Scalability metrics plugin • Subtly broken architecture with no easy fix • No users we are aware of • INFORMATION_SCHEMA.THREAD_STATISTICS.
 CONCURRENT_CONNECTIONS column • All of our query cache patches
  • 25. !25 Removed Features due to Upstream • Query Response Time plugin: replaced by Performance Schema execution time histograms • innodb_flush_method=ALL_O_DIRECT • Avoided keeping redo logs in the kernel filesystem cache • But MySQL 8.0 redo logging is dependant on logs being cached
  • 26. !26 Removed Features due to Lack of Uptake • INFORMATION_SCHEMA.XTRADB_RSEG • Expanded program option modifiers • Utility user • pseudo_server_id • CSV_MODE • max_slowlog_files and max_slowlog_size • innodb_show_verbose_locks • Let us know if you use any of those!
  • 27. Thank You to Our Sponsors