Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native...

22
Santa Clara, California | April 23th – 25th, 2018 Percona Server 8.0 Laurynas Biveinis & Tyler Duzan Percona

Transcript of Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native...

Page 1: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

Santa Clara, California | April 23th – 25th, 2018

Percona Server 8.0 Laurynas Biveinis & Tyler Duzan

Percona

Page 2: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!2

Percona Server 8.0 = Percona Server 5.7 + MySQL 8.0

Page 3: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!3

Percona Server 8.0

Percona Server 5.7 • Threadpool • TokuDB • MyRocks • Audit log plugin • Backup locks • …

MySQL 8.0 • Window functions • JSON • New data dictionary • Better defaults • caching_sha2_password • …

Percona Server 8.0 • Threadpool • Window functions • New data dictionary • Backup locks • …

+

=

Page 4: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!4

Percona Server 8.0

What’s absent in the above? “A new great feature we have developed specifically for Percona Server 8.0 initial release” Why is that?

Percona Server 8.0 • Threadpool • Window functions • New data dictionary • Backup locks • …

Page 5: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!5

MySQL GA features over timeG

ener

ally

ava

ilabl

e fe

atur

es

Time

MySQL 5.5 MySQL 5.6 MySQL 5.7 MySQL 8.0

Page 6: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!6

Percona Server-specific GA features over time

Gen

eral

ly a

vaila

ble

Perc

ona

feat

ures

Time

PS 5.5 PS 5.6 PS 5.7 PS 8.0

Page 7: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!7

Percona Server 8.0

Thus, why “A new great feature we have developed specifically for Percona Server 8.0 initial release” is missing?

Because we release them as soon as they are ready – not holding them until the next GA

OK, if not new features then what?

Page 8: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!8

Percona Server 8.0

OK, if not new features then what?

The main goal of the initial Percona Server 8.0 GA release is to have a cohesive feature set where Percona Server 5.7 features and MySQL 8.0 features are integrated to play well together

Page 9: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!9

Key MySQL 8.0 features for integration

New data dictionary • New InnoDB system tables: mysql.ibd • Fast INFORMATION_SCHEMA queries • No more FRMs • Atomic DDLs • SDIs when needed

No more legacy partitioning handler • A SE must implement partitioning itself • InnoDB was converted in 5.7 • Other MySQL-provided SEs don’t

support it

TempTable SE • An internal in-memory SE • Able to store VARCHAR • Efficient processing of VARCHAR

queries • Not exposed to users

Redo log optimisations • Query threads access buffer

concurrently • A dedicated thread writes and flushes it,

notifies query threads

Page 10: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!10

Selected themes of Percona Server

Storage engines

Performance/scalability

Flexibility

Management

Diagnostics

Security

Page 11: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!11

Percona Server 8.0: storage engines

TokuDB and MyRocks

Both will feature native partitioning

For upgrade path, native partitioning will be made available in 5.7 too

Under the hood, new data dictionary will store SE-specific metadata

Page 12: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!12

Percona Server 8.0: performance

Percona Server 5.7 • Buffer pool mutex split • LRU flushing • single-page flushing removal • parallel doublewrite

MySQL 8.0 • Buffer pool mutex split • VATS (CATS?) lock scheduling • redo log optimisations • fil_system mutex removal

contributed

--innodb_flush_method=ALL_O_DIRECT

will be re-evaluated in the context of redo log optimisations

Page 13: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!13

Percona Server 8.0: flexibility: MEMORYPercona Server 5.7 MEMORY SE

MySQL 8.0 MEMORY SE

MySQL 8.0 TempTable SE

Can store VARCHAR ☑ ☑

Can store BLOB (JSON, TEXT, …)

Users can create tables

☑ ☑

Query optimiser can use if VARCHAR

Thus, both Percona MEMORY SE extensions and TempTable will be needed

Percona MEMORY SE supports JSON, will applications use it?

Page 14: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!14

Percona Server 8.0: flexibility: SET STATEMENT … FOR …SET STATEMENT foreign_key_checks=OFF FOR INSERT INTO t1 VALUES (1)

MySQL 8.0 introduces INSERT /*+ SET_VAR(foreign_key_checks=OFF) */ INTO t1 VALUES (1)

SET STATEMENT FOR /*+ SET_VAR () */Supports SELECT and DML ☑ ☑

Supports any SQL statement ☑

Supports designated “hintable variables” ☑ ☑

Supports virtually any variable ☑

We plan to switch to SET_VAR syntax while keeping the SET STATEMENT FOR functionality

Page 15: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!15

Percona Server 8.0: flexibility: compressed columns with dictionariesSET @dictionary_data = 'one' 'two' 'three' ‘four';

CREATE COMPRESSION DICTIONARY numbers (@dictionary data)

CREATE TABLE t(a JSON COLUMN_FORMAT COMPRESSED WITH COMPRESSION_DICTIONARY numbers);

Compression dictionaries will be stored in a new data dictionary table INFORMATION_SCHEMA tables XTRADB_ZIP_DICT, XTRADB_ZIP_DICT_COLS will be reimplemented as views over DD schema adjusted to match the rest of DD

Page 16: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!16

Percona Server 8.0: management: backup locksPercona Server 5.7:

• LOCK TABLES FOR BACKUP • LOCK BINLOG FOR BACKUP • START TRANSACTION WITH

CONSISTENT SNAPSHOT: consistent across SEs and binlog

MySQL 8.0: • LOCK INSTANCE FOR BACKUP • performance_schema.log_status

MySQL functionality not enough to replace Percona Server features All LOCK statements introduce new global MDL lock types PS 8.0 will feature both sets of backup locks XtraBackup will use what’s available

Page 17: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!17

Percona Server 8.0: diagnostics: QRTPercona Server 5.7 QRT MySQL 8.0 PFS

Execution time histograms ☑ ☑

Percona Server Query Response Time plugin being removed in favor of events_statements_histogram_by_digest, events_statements_histogram_global Performance Schema tables

Page 18: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!18

Percona Server 8.0: securityPercona Server always used OpenSSL MySQL 8.0 replaces YaSSL with OpenSSL possible to roll out TLSv1.2 in e.g. mixed Percona Server/MySQL env

Percona Server 5.7: • (5.7) file-per-table tablespace encryption • (WIP) undo log encryption • (WIP) redo log encryption • temp tablespace encryption • binlog encryption • Vault keyring plugin • … stay tuned

MySQL 8.0: • (5.7) file-per-table tablespace encryption • undo log encryption • redo log encryption

backport

Page 19: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!19

Percona Server 8.0: last but not leastThe initial GA release is also where we:

drop little-used or no longer meaningful features: Per-session server ID, Query cache patches, …

make backwards-incompatible changes to existing features: SET STATEMENT … FOR … to /*+ SET_VAR(…) */

The upgrade path will be clearly documented!

Page 20: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!20

Percona Server 8.0!

Thank you! Questions?

Page 21: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!21

Rate My Session

Page 22: Percona Server 8...Percona Server 8.0: storage engines TokuDB and MyRocks Both will feature native partitioning For upgrade path, native partitioning will be made available in 5.7

!22

Thank You Sponsors!!