1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
# Tests for PERFORMANCE_SCHEMA
--source include/have_log_bin.inc
--source include/master-slave.inc
--disable_warnings
drop table if exists test.t1;
--sync_slave_with_master
reset master;
--enable_warnings
create table test.t1(a int);
drop table test.t1;
--source include/show_binlog_events.inc
# Notes
#
# The point of this test is to make sure code is properly instrumented,
# for replication threads.
# Each time an ID is assigned to a replication thread,
# visible in the INFORMATION_SCHEMA.PROCESSLIST table,
# the same PROCESSLIST_ID should be visible in table performance_schema.threads
connection master;
-- echo "============ Performance schema on master ============"
# Read the ID of the binlog dump connection,
# as exposed in PROCESSLIST.
select ID from INFORMATION_SCHEMA.PROCESSLIST
where COMMAND = "Binlog Dump"
into @master_dump_pid;
select COMMAND, STATE
from INFORMATION_SCHEMA.PROCESSLIST
where ID = @master_dump_pid;
# Make sure the performance schema also knows this PROCESSLIST_ID
select NAME, TYPE, PROCESSLIST_COMMAND, PROCESSLIST_STATE
from performance_schema.threads
where PROCESSLIST_ID = @master_dump_pid;
select THREAD_ID from performance_schema.threads
where PROCESSLIST_ID = @master_dump_pid
into @master_dump_tid;
# Make sure thread variables can be inspected.
select VARIABLE_NAME,
IF (VARIABLE_VALUE = @master_dump_pid, "same", "different") as 'test'
from performance_schema.variables_by_thread
where VARIABLE_NAME = 'pseudo_thread_id' and THREAD_ID = @master_dump_tid;
# Make sure thread status can be inspected.
select VARIABLE_NAME, VARIABLE_VALUE
from performance_schema.status_by_thread
where VARIABLE_NAME = 'Compression_level' and THREAD_ID = @master_dump_tid;
sync_slave_with_master;
-- echo "============ Performance schema on slave ============"
# Read the ID of the SLAVE IO thread,
# as exposed in PROCESSLIST.
select ID from INFORMATION_SCHEMA.PROCESSLIST
where STATE like "Waiting for source to send event%"
into @slave_io_pid;
select COMMAND, STATE
from INFORMATION_SCHEMA.PROCESSLIST
where ID = @slave_io_pid;
# Make sure the performance schema also knows this PROCESSLIST_ID
select NAME, TYPE, PROCESSLIST_COMMAND, PROCESSLIST_STATE
from performance_schema.threads
where PROCESSLIST_ID = @slave_io_pid;
select THREAD_ID from performance_schema.threads
where PROCESSLIST_ID = @slave_io_pid
into @slave_io_tid;
# Make sure thread variables can be inspected.
select VARIABLE_NAME,
IF (VARIABLE_VALUE = @slave_io_pid, "same", "different") as 'test'
from performance_schema.variables_by_thread
where VARIABLE_NAME = 'pseudo_thread_id' and THREAD_ID = @slave_io_tid;
# Make sure thread status can be inspected.
select VARIABLE_NAME, VARIABLE_VALUE
from performance_schema.status_by_thread
where VARIABLE_NAME = 'Compression_level' and THREAD_ID = @slave_io_tid;
# Read the ID of the SLAVE SQL thread,
# as exposed in PROCESSLIST.
select ID from INFORMATION_SCHEMA.PROCESSLIST
where STATE like "Replica has read all relay log%"
into @slave_sql_pid;
select COMMAND, STATE
from INFORMATION_SCHEMA.PROCESSLIST
where ID = @slave_sql_pid;
# Make sure the performance schema also knows this PROCESSLIST_ID
select NAME, TYPE, PROCESSLIST_COMMAND, PROCESSLIST_STATE
from performance_schema.threads
where PROCESSLIST_ID = @slave_sql_pid;
select THREAD_ID from performance_schema.threads
where PROCESSLIST_ID = @slave_sql_pid
into @slave_sql_tid;
# Make sure thread variables can be inspected.
select VARIABLE_NAME,
IF (VARIABLE_VALUE = @slave_sql_pid, "same", "different") as 'test'
from performance_schema.variables_by_thread
where VARIABLE_NAME = 'pseudo_thread_id' and THREAD_ID = @slave_sql_tid;
# Make sure thread status can be inspected.
select VARIABLE_NAME, VARIABLE_VALUE
from performance_schema.status_by_thread
where VARIABLE_NAME = 'Compression_level' and THREAD_ID = @slave_sql_tid;
--source include/rpl_end.inc
|