Bug #77605 Add more information to SQL thread-related P_S tables
Submitted: 2 Jul 2015 18:00 Modified: 20 Nov 2015 10:02
Reporter: Sveta Smirnova (OCA) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Performance Schema Severity:S4 (Feature request)
Version:5.7.7 OS:Any
Assigned to: CPU Architecture:Any

[2 Jul 2015 18:00] Sveta Smirnova
Description:
There is not information about:

Executed_Gtid_Set (unless multiple-threaded slave used)
Exec_master_log_pos
Master_log_file

While this information is essential for replication troubleshooting. Please add it to performance schema tables.

How to repeat:
mysql> desc replication_applier_status;
+----------------------------+---------------------+------+-----+---------+-------+
| Field                      | Type                | Null | Key | Default | Extra |
+----------------------------+---------------------+------+-----+---------+-------+
| CHANNEL_NAME               | char(64)            | NO   |     | NULL    |       |
| SERVICE_STATE              | enum('ON','OFF')    | NO   |     | NULL    |       |
| REMAINING_DELAY            | int(10) unsigned    | YES  |     | NULL    |       |
| COUNT_TRANSACTIONS_RETRIES | bigint(20) unsigned | NO   |     | NULL    |       |
+----------------------------+---------------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> desc replication_applier_status_by_coordinator;
+----------------------+---------------------+------+-----+-------------------+-----------------------------+
| Field                | Type                | Null | Key | Default           | Extra                       |
+----------------------+---------------------+------+-----+-------------------+-----------------------------+
| CHANNEL_NAME         | char(64)            | NO   |     | NULL              |                             |
| THREAD_ID            | bigint(20) unsigned | YES  |     | NULL              |                             |
| SERVICE_STATE        | enum('ON','OFF')    | NO   |     | NULL              |                             |
| LAST_ERROR_NUMBER    | int(11)             | NO   |     | NULL              |                             |
| LAST_ERROR_MESSAGE   | varchar(1024)       | NO   |     | NULL              |                             |
| LAST_ERROR_TIMESTAMP | timestamp           | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+----------------------+---------------------+------+-----+-------------------+-----------------------------+
6 rows in set (0.00 sec)

mysql> desc replication_applier_status_by_worker;
+-----------------------+---------------------+------+-----+-------------------+-----------------------------+
| Field                 | Type                | Null | Key | Default           | Extra                       |
+-----------------------+---------------------+------+-----+-------------------+-----------------------------+
| CHANNEL_NAME          | char(64)            | NO   |     | NULL              |                             |
| WORKER_ID             | bigint(20) unsigned | NO   |     | NULL              |                             |
| THREAD_ID             | bigint(20) unsigned | YES  |     | NULL              |                             |
| SERVICE_STATE         | enum('ON','OFF')    | NO   |     | NULL              |                             |
| LAST_SEEN_TRANSACTION | char(57)            | NO   |     | NULL              |                             |
| LAST_ERROR_NUMBER     | int(11)             | NO   |     | NULL              |                             |
| LAST_ERROR_MESSAGE    | varchar(1024)       | NO   |     | NULL              |                             |
| LAST_ERROR_TIMESTAMP  | timestamp           | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-----------------------+---------------------+------+-----+-------------------+-----------------------------+
8 rows in set (0.01 sec)

Suggested fix:
Have all information, existing in SHOW SLAVE STATUS, in P_S tables.