![Page 1: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/1.jpg)
Storage engines troubleshootingThe Introduction
Sveta SmirnovaPrincipal Technical Services Engineer
July, 14, 2016
![Page 2: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/2.jpg)
Table of Contents
•Introduction
•Data
•Correlation with other parts of the server
•Options and tools
2 www.percona.com
![Page 3: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/3.jpg)
Introduction
3 www.percona.com
![Page 4: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/4.jpg)
MySQL architecture
Connectors: C, JDBC, ODBC, Python, ...
Connection Pool: Authentication, Caches
SQL interface
Parser
Optimizer
Caches and Buffers:Global
Engine-specific
Storage engines: InnoDB, TokuDB, ...
File system: Data, Index, logs, other files
• Base• Installation layout• Log files
• Connectors• Clients, APIs
• Optimizer• Cache and buffers• Storage engines• Management
4 www.percona.com
![Page 5: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/5.jpg)
Storage engines
• Own data
• Own index format
• Own locking model
• Own diagnostic
• Own log files
• CHECK TABLE
5 www.percona.com
![Page 6: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/6.jpg)
Data
6 www.percona.com
![Page 7: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/7.jpg)
Each engine stores data differently• InnoDB
• Writes to redo log first• Then flushes to tablespace files• We cannot just copy tablespace files after table
content was modified: new data can be in redo logsonly
• TokuDB• MyISAM, CSV, ...• Blackhole• Federated
7 www.percona.com
![Page 8: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/8.jpg)
Each engine stores data differently
• InnoDB• TokuDB
• Writes to recovery log first• Each transaction has its own rollback log• Fractal Trees are stored in separate block files
• Table data and indexes are stored in multiple files
• MyISAM, CSV, ...• Blackhole• Federated
7 www.percona.com
![Page 9: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/9.jpg)
Each engine stores data differently
• InnoDB• TokuDB• MyISAM, CSV, ...
• Writes go to the data file directly• Easier to make binary backups• No rollbacks
• Blackhole• Federated
7 www.percona.com
![Page 10: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/10.jpg)
Each engine stores data differently
• InnoDB
• TokuDB
• MyISAM, CSV, ...
• Blackhole
• All writes ignored
• Federated
7 www.percona.com
![Page 11: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/11.jpg)
Each engine stores data differently
• InnoDB• TokuDB• MyISAM, CSV, ...• Blackhole• Federated
• All reads and writes go to remote server• Affected by both connection and underlying storage
engine
7 www.percona.com
![Page 12: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/12.jpg)
What does it mean for IO troubleshooting?
• When studying how IO works you need to study whatthe engine is doing
8 www.percona.com
![Page 13: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/13.jpg)
Does this mean data is independent?
Not!
9 www.percona.com
![Page 14: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/14.jpg)
Example: backup
• Binary backup works differently for different engines• XtraBackup/MEB 100 % non-blocking for InnoDB
• Still has to lock tables to copy *.frm files and other engines
• TokuDB Hot Backup simply copies files which do notuse TokuDB storage engine
• Can corrupt InnoDB backup
• mysqlhotcopy backups MyISAM and other tableswhich use ”simple” engines
• Not suitable for transactional engines
• Logical backup is not the panacea
10 www.percona.com
![Page 15: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/15.jpg)
Example: backup
• Binary backup works differently for different engines• Logical backup is not the panacea
• Different methods for data protection for ”simple”and transactional engines
• mysqldump ... –lock-all-tables
• mysqldump ... –single-transaction
• Mind network and underlying storage engine forFederated!
10 www.percona.com
![Page 16: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/16.jpg)
Example: table statistics
• Used by Optimizer when it creates query plan• Stored by engine• Engine can decide
• If• When• How• it will collect statistics
11 www.percona.com
![Page 17: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/17.jpg)
Correlation with other parts ofthe server
12 www.percona.com
![Page 18: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/18.jpg)
Locks
• Metadata locks used to protect table definition• Table locks can be set
• Implicitly• LOCK TABLES
• Engine-specific locks know nothing about server-levellocks
• Non-recoverable ”deadlocks” can happen
13 www.percona.com
![Page 19: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/19.jpg)
Locks and Federated
mysql> create table t1(f1 int) engine = federated connection=’mysql://[email protected]:13000/test/t1’;
Query OK, 0 rows affected (0,05 sec)
source> begin;
Query OK, 0 rows affected (0,00 sec)
source> update t1 set f1=f1*2;
Query OK, 3 rows affected (0,02 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> update t1 set f1=f1*3;
-- waits
14 www.percona.com
![Page 20: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/20.jpg)
Locks and Federatedsource> show processlist;
+----+------+-----+---------+------+----------+-------------------------------------------------+
| Id | User | ... | Command | Time | State | Info |
+----+------+-----+---------+------+----------+-------------------------------------------------+
| 3 | root | ... | Query | 30 | updating | UPDATE ‘t1‘ SET ‘f1‘ = 3 WHERE ‘f1‘ = 1 LIMIT 1 |
| 4 | root | ... | Sleep | 44 | | NULL |
| 5 | root | ... | Query | 0 | starting | show processlist |
+----+------+-----+---------+------+----------+-------------------------------------------------+
3 rows in set (0,00 sec)
mysql-monitor> show processlist;
+----+------+-----+---------+------+----------+-----------------------+
| Id | User | ... | Command | Time | State | Info |
+----+------+-----+---------+------+----------+-----------------------+
| 2 | root | ... | Query | 12 | updating | update t1 set f1=f1*3 |
| 3 | root | ... | Query | 0 | starting | show processlist |
+----+------+-----+---------+------+----------+-----------------------+
2 rows in set (0,00 sec)
15 www.percona.com
![Page 21: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/21.jpg)
Locks and Federated
mysql> create table t1(f1 int) engine = federated connection=’mysql://[email protected]:13000/test/t1’;
Query OK, 0 rows affected (0,05 sec)
source> begin;
Query OK, 0 rows affected (0,00 sec)
source> update t1 set f1=f1*2;
Query OK, 3 rows affected (0,02 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> update t1 set f1=f1*3;
ERROR 1159 (08S01): Got timeout reading communication packets
16 www.percona.com
![Page 22: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/22.jpg)
Locks and Federated: MDL forevermysql> optimize table t1;
-- waits
mysql-monitor> show processlist;
+----+------+-----------------+------+---------+------+-------------+-------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------------+------+---------+------+-------------+-------------------+
| 2 | root | localhost:43268 | test | Query | 4 | System lock | optimize table t1 |
| 4 | root | localhost:43430 | NULL | Query | 0 | starting | show processlist |
+----+------+-----------------+------+---------+------+-------------+-------------------+
2 rows in set (0,00 sec)
source> show processlist;
+----+------+-----+---------+------+---------------------------------+---------------------+
| Id | User | ... | Command | Time | State | Info |
+----+------+-----+---------+------+---------------------------------+---------------------+
| 4 | root | ... | Sleep | 1071 | | NULL |
| 6 | root | ... | Query | 11 | Waiting for table metadata lock | OPTIMIZE TABLE ‘t1‘ |
...
17 www.percona.com
![Page 23: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/23.jpg)
Locks and Federated: MDL forever
mysql> optimize table t1;
+---------+----------+----------+-------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+---------+----------+----------+-------------------------------------------------+
| test.t1 | optimize | Error | Got timeout reading communication packets |
| test.t1 | optimize | error | Unknown - internal error 10000 during operation |
+---------+----------+----------+-------------------------------------------------+
2 rows in set (30,43 sec)
source> show processlist;
+----+------+-----+---------+------+---------------------------------+---------------------+
| Id | User | ... | Command | Time | State | Info |
+----+------+-----+---------+------+---------------------------------+---------------------+
| 4 | root | ... | Sleep | 1104 | | NULL |
| 6 | root | ... | Query | 44 | Waiting for table metadata lock | OPTIMIZE TABLE ‘t1‘ |
...
18 www.percona.com
![Page 24: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/24.jpg)
Locks and Federated: MDL forever moresource> select * from t1;
-- hangs
mysql> update t1 set f1=f1*3;
ERROR 1159 (08S01): Got timeout reading communication packets
source> show processlist;
+----+------+-----+---------+------+---------------------------------+---------------------------------+
| Id | User | ... | Command | Time | State | Info |
+----+------+-----+---------+------+---------------------------------+---------------------------------+
| 4 | root | ... | Sleep | 2343 | | NULL |
| 6 | root | ... | Query | 1283 | Waiting for table metadata lock | OPTIMIZE TABLE ‘t1‘ |
| 10 | root | ... | Query | 1205 | Waiting for table metadata lock | select * from t1 |
| 11 | root | ... | Query | 0 | starting | show processlist |
| 12 | root | ... | Query | 1181 | Waiting for table metadata lock | SELECT ‘f1‘ FROM ‘t1‘ WHERE 1=0 |
| 13 | root | ... | Query | 1151 | Waiting for table metadata lock | SELECT ‘f1‘ FROM ‘t1‘ WHERE 1=0 |
| 14 | root | ... | Query | 1121 | Waiting for table metadata lock | SELECT ‘f1‘ FROM ‘t1‘ WHERE 1=0 |
+----+------+-----+---------+------+---------------------------------+---------------------------------+
7 rows in set (0,00 sec)
19 www.percona.com
![Page 25: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/25.jpg)
Different level locks and InnoDBtrx> create table t1(f1 int) engine=innodb;
Query OK, 0 rows affected (0,37 sec)
trx> create table t2(f1 int) engine=innodb;
Query OK, 0 rows affected (0,42 sec)
trx> insert into t1 values(2),(4),(6);
Query OK, 3 rows affected (0,09 sec)
Records: 3 Duplicates: 0 Warnings: 0
trx> insert into t2 (2),(4),(6),(2),(4);
Query OK, 5 rows affected (0,14 sec)
Records: 5 Duplicates: 0 Warnings: 0
trx> select @@tx_isolation;
+-----------------+
| @@tx_isolation |
+-----------------+
| REPEATABLE-READ |
+-----------------+
1 row in set (0,00 sec)
20 www.percona.com
![Page 26: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/26.jpg)
Different level locks and InnoDBtrx> begin;
Query OK, 0 rows affected (0,00 sec)
trx> insert into t2 select * from t1;
Query OK, 3 rows affected (0,00 sec)
Records: 3 Duplicates: 0 Warnings: 0
trx> select * from t2;
+------+
| f1 |
+------+
| 2 |
| 4 |
| 6 |
| 2 |
| 4 |
| 2 |
| 4 |
| 6 |
+------+
8 rows in set (0,00 sec)
21 www.percona.com
![Page 27: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/27.jpg)
Different level locks and InnoDB
lock table> lock table t2 write;
-- waits MDL
alter> alter table t1 engine=innodb;
-- waits MDL
trx> update t1 set f1 = f1/2;
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction
-- Transaction rolled back!
Query OK, 0 rows affected (21,12 sec)
Records: 0 Duplicates: 0 Warnings: 0
alter>
22 www.percona.com
![Page 28: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/28.jpg)
Different level locks and InnoDB
-- MDL released!
Query OK, 0 rows affected (37,27 sec)
lock table> delete from t2 limit 5;
Query OK, 5 rows affected (0,08 sec)
lock table> unlock tables;
Query OK, 0 rows affected (0,00 sec)
-- We can modify table now
23 www.percona.com
![Page 29: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/29.jpg)
Different level locks and TokuDBtrx> create table t1(f1 int) engine=tokudb;
Query OK, 0 rows affected (0,37 sec)
trx> create table t2(f1 int) engine=tokudb;
Query OK, 0 rows affected (0,42 sec)
trx> insert into t1 values(2),(4),(6);
Query OK, 3 rows affected (0,09 sec)
Records: 3 Duplicates: 0 Warnings: 0
trx> insert into t2 (2),(4),(6),(2),(4);
Query OK, 5 rows affected (0,14 sec)
Records: 5 Duplicates: 0 Warnings: 0
trx> select @@tx_isolation;
+-----------------+
| @@tx_isolation |
+-----------------+
| REPEATABLE-READ |
+-----------------+
1 row in set (0,00 sec)
24 www.percona.com
![Page 30: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/30.jpg)
Different level locks and TokuDBtrx> begin;
Query OK, 0 rows affected (0,00 sec)
trx> insert into t2 select * from t1;
Query OK, 3 rows affected (0,00 sec)
Records: 3 Duplicates: 0 Warnings: 0
trx> select * from t2;
+------+
| f1 |
+------+
| 2 |
| 4 |
| 6 |
| 2 |
| 4 |
| 2 |
| 4 |
| 6 |
+------+
8 rows in set (0,00 sec)
25 www.percona.com
![Page 31: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/31.jpg)
Different level locks and TokuDBlock table> lock table t2 write;
-- waits MDL
alter> alter table t1 engine=innodb;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
alter> alter table t1 engine=tokudb;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
-- Transaction, started earlier, has higher priority
alter> alter table t1 add f2 int;
-- waits MDL
mysql-monitor> show processlist;
+----+------+-----+---------+------+---------------------------------+---------------------------+
| Id | User | ... | Command | Time | State | Info |
+----+------+-----+---------+------+---------------------------------+---------------------------+
| 66 | root | ... | Query | 153 | Waiting for table metadata lock | lock table t2 write |
| 67 | root | ... | Query | 26 | Waiting for table metadata lock | alter table t1 add f2 int |
| 68 | root | ... | Sleep | 161 | | NULL |
...
26 www.percona.com
![Page 32: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/32.jpg)
Replication
• Requires synchronization of the binary log and tablecontent
• More IO• SBR does not allow certain statements and transaction
isolation levels
• RBR require data• Engine can implement specific replication features
27 www.percona.com
![Page 33: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/33.jpg)
Replication• Requires synchronization of the binary log and table
content• SBR does not allow certain statements and transaction
isolation levelsmysql> set transaction isolation level read committed;
Query OK, 0 rows affected (0,00 sec)
mysql> update t1 set f1=f1*2;
ERROR 1665 (HY000): Cannot execute statement: impossible to write to binary log since
BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to
row-based logging. InnoDB is limited to row-logging when transaction isolation level
is READ COMMITTED or READ UNCOMMITTED.
• RBR require data• Engine can implement specific replication features
27 www.percona.com
![Page 34: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/34.jpg)
Replication
• Requires synchronization of the binary log and tablecontent
• SBR does not allow certain statements and transactionisolation levels
• RBR require data• Blackhole does not store data
• INSERTs still logged• UPDATEs and DELETEs not• Trick with intermediary slave which used Blackhole was broken in certain versions
• Engine can implement specific replication features
27 www.percona.com
![Page 35: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/35.jpg)
Replication
• Requires synchronization of the binary log and tablecontent
• SBR does not allow certain statements and transactionisolation levels
• RBR require data• Engine can implement specific replication features
• Read free replication in TokuDB
27 www.percona.com
![Page 36: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/36.jpg)
Diagnostic
• Storage engine must implement diagnosticmysql> check table t1\G
*************************** 1. row ***************************
Table: test.t1
Op: check
Msg_type: note
Msg_text: The storage engine for the table doesn’t support check
1 row in set (0,00 sec)
mysql> show engine myisam status;
Empty set (0,00 sec)
• Information Schema• Performance Schema
28 www.percona.com
![Page 37: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/37.jpg)
Diagnostic• Storage engine must implement diagnostic• Storage engine can implement diagnostic differently
• InnoDBmysql> SHOW ENGINE INNODB STATUS\G
*************************** 1. row ***************************
Type: InnoDB
Name:
Status:
=====================================
2016-07-13 00:23:55 0x7f3c613be700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 3 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 4 srv_active, 0 srv_shutdown, 463 srv_idle
...
• Information Schema• Performance Schema
28 www.percona.com
![Page 38: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/38.jpg)
Diagnostic• Storage engine must implement diagnostic• Storage engine can implement diagnostic differently
• TokuDBmysql> SHOW ENGINE TOKUDB STATUS;
+--------+------------------------------+---------------------------------------------------+
| Type | Name | Status |
+--------+------------------------------+---------------------------------------------------+
| TokuDB | disk free space | more than 10 percent of total file system space |
| TokuDB | time of environment creation | Sat Jun 18 01:19:59 2016 |
| TokuDB | time of engine startup | Mon Jul 4 12:02:18 2016 |
| TokuDB | time now | Wed Jul 13 00:25:33 2016 |
| TokuDB | db opens | 30 |
| TokuDB | db closes | 5 |
| TokuDB | num open dbs now | 25 |
| TokuDB | max open dbs | 25 |
...
• Information Schema• Performance Schema
28 www.percona.com
![Page 39: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/39.jpg)
Diagnostic• Storage engine must implement diagnostic• Storage engine can implement diagnostic differently
• Performance Schemamysql> SHOW ENGINE PERFORMANCE_SCHEMA STATUS;
+--------------------+---------------------------------+----------+
| Type | Name | Status |
+--------------------+---------------------------------+----------+
| performance_schema | events_waits_current.size | 176 |
| performance_schema | events_waits_current.count | 1536 |
| performance_schema | events_waits_history.size | 176 |
| performance_schema | events_waits_history.count | 2560 |
| performance_schema | events_waits_history.memory | 450560 |
| performance_schema | events_waits_history_long.size | 176 |
| performance_schema | events_waits_history_long.count | 10000 |
...
| performance_schema | performance_schema.memory | 89409272 |
+--------------------+---------------------------------+----------+
• Information Schema• Performance Schema
28 www.percona.com
![Page 40: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/40.jpg)
Diagnostic• Storage engine must implement diagnostic• Information Schema
• This is engine job to have tables in InformationSchemamysql> select table_name from information_schema.tables where
table_schema=’information_schema’ and 1 in (select table_name like concat(’%’,
upper(engine), ’%’) from information_schema.engines);
+----------------------------+
| table_name |
+----------------------------+
| INNODB_LOCKS |
| INNODB_TRX |
...
| INNODB_SYS_TABLESTATS |
+----------------------------+
30 rows in set (0,00 sec)
• Performance Schema
28 www.percona.com
![Page 41: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/41.jpg)
Diagnostic• Storage engine must implement diagnostic• Information Schema• Performance Schema
• Engine must implement instrumentation in its owncodemysql> select name from ‘performance_schema‘.‘setup_instruments‘ join
‘information_schema‘.‘engines‘ where name like concat(’%/’, engine,’/%’);
+--------------------------------------------------------------------------------+
| name |
+--------------------------------------------------------------------------------+
| wait/synch/mutex/myisam/MI_SORT_INFO::mutex |
...
| wait/synch/mutex/csv/TINA_SHARE::mutex |
| wait/synch/mutex/innodb/commit_cond_mutex |
...
28 www.percona.com
![Page 42: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/42.jpg)
Diagnostic
• Storage engine must implement diagnostic
• Information Schema
• Performance Schema
• Engine must implement instrumentation in its owncode
• TokuDB currently has no instrumentation
28 www.percona.com
![Page 43: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/43.jpg)
Options
• Storage engine can have its own variables
• Non-specific variables still can affect behavior
• binlog format
• tx isolation• unique checks
• Up to engine to raise duplicate key error or not
29 www.percona.com
![Page 44: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/44.jpg)
Options and tools
30 www.percona.com
![Page 45: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/45.jpg)
How to find engine-specific options?
• Usually start with engine name
• MyISAM has few which do not follow this format
31 www.percona.com
![Page 46: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/46.jpg)
How to find engine-specific options?• MyISAM has few which do not follow this format
• bulk insert buffer size• Cache for bulk INSERTs (INSERT ... SELECT, INSERT ... VALUES (...), (...), ..., and
LOAD DATA INFILE )
• concurrent insert• Allow concurrent INSERT and SELECT statements?
• delay key write• Keys can be corrupted!
• ft *• FULLTEXT index options
• keep files on create• Do not overwrite existent *MYD files
31 www.percona.com
![Page 47: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/47.jpg)
How to find engine-specific options?
• MyISAM has few which do not follow this format
• key buffer size• Shared buffer for MyISAM keys
• query cache wlock invalidate• If LOCK TABLE ... WRITE removes table from the query cache
• skip external locking• If MySQL uses system locking for MyISAM tables
• Can cause corruption if enabled
31 www.percona.com
![Page 48: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/48.jpg)
How to find engine-specific tools?• Usually contain engine name
• myisamchk• Table maintenance utility
• myisam ftdump• Dumps content of the FULLTEXT indexes• InnoDB uses tables in Information Schema
• myisamlog• Displays MyISAM log content
• myisampack• Creates compressed read-only tables
• Sometimes only part of the engine name32 www.percona.com
![Page 49: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/49.jpg)
How to find engine-specific tools?
• Usually contain engine name• Sometimes only part of the engine name
• innochecksum• Offline checksum utility
• ps tokudb admin• Installs/uninstalls TokuDB and TokuBackup plugins
• tokuftdump• Interactive utility to see what messages and/or switch between FTs
• tokuft logprint• Dumps TokuDB log file to STDOUT
32 www.percona.com
![Page 50: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/50.jpg)
Summary
33 www.percona.com
![Page 51: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/51.jpg)
Summary
• Engine is responsible for data
• Can affect other server parts
• Can be affected by other server parts
• Study engine tools to troubleshoot effectively
34 www.percona.com
![Page 52: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/52.jpg)
More information
• MySQL Server Option and Variable Reference
• Alternative Storage Engines
• The InnoDB Storage Engine
• Percona TokuDB
• RocksDB SE for MySQL: MySQLOnRocksDB
35 www.percona.com
![Page 53: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/53.jpg)
Place for your questions
???
36 www.percona.com
![Page 54: Storage engines troubleshooting - The Introduction...Storage engines troubleshooting The Introduction Sveta Smirnova Principal Technical Services Engineer July, 14, 2016 Table of Contents](https://reader030.vdocument.in/reader030/viewer/2022040604/5ea22bf347d65f1d924a7bb8/html5/thumbnails/54.jpg)
Thank you!
http://www.slideshare.net/SvetaSmirnova
https://twitter.com/svetsmirnova
37 www.percona.com