1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-10 23:02:54 +03:00
Files
mariadb/mysql-test/suite/perfschema/t/sxlock_func.test
Krunal Bauskar 83212632e4 MDEV-27935: Enable performance_schema profiling for trx_rseg_t latch
- In 10.6, trx_rseg_t mutex was ported to use latch. As part of this porting
  profiling of the patch was removed. This patch reenables it given that
  the said latch continues to occupy the top-slots in the contention list.
2022-02-24 19:48:51 +08:00

71 lines
2.5 KiB
Plaintext

# Performance schema tests, for SX-lock
# Note that only Innodb provides instrumented SX-locks,
# so this test depends largely on the innodb instrumentation.
--source include/not_embedded.inc
--source include/have_perfschema.inc
--source include/have_innodb.inc
UPDATE performance_schema.setup_instruments SET enabled = 'NO', timed = 'YES';
UPDATE performance_schema.setup_instruments SET enabled = 'YES'
WHERE name like 'wait/synch/sxlock/%';
UPDATE performance_schema.setup_instruments SET enabled = 'YES'
WHERE name like 'wait/synch/rwlock/innodb/%';
SELECT DISTINCT name FROM performance_schema.setup_instruments
WHERE name LIKE 'wait/synch/rwlock/innodb/%'
AND name!='wait/synch/rwlock/innodb/btr_search_latch' ORDER BY name;
TRUNCATE TABLE performance_schema.events_waits_history_long;
TRUNCATE TABLE performance_schema.events_waits_history;
TRUNCATE TABLE performance_schema.events_waits_current;
# Check some SX-locks classes are instrumented
select name from performance_schema.setup_instruments
where name like "wait/synch/sxlock/%" order by name;
# Check some SX-locks instances are instrumented
SELECT DISTINCT name FROM performance_schema.rwlock_instances
WHERE name LIKE 'wait/synch/sxlock/innodb/%'
ORDER BY name;
# Some Innodb payload, to produce data
create table t1(a int) engine=innodb;
begin;
insert into t1 values (1), (2), (3);
insert into t1 values (1), (2), (3);
insert into t1 values (1), (2), (3);
commit;
drop table t1;
# Make sure some rw-lock operations have been executed
# (there will only occasionally be waits on some rw-locks)
SELECT DISTINCT event_name FROM performance_schema.events_waits_history_long
WHERE event_name LIKE 'wait/synch/rwlock/innodb/%'
AND event_name NOT IN
('wait/synch/rwlock/innodb/btr_search_latch',
'wait/synch/rwlock/innodb/dict_operation_lock',
'wait/synch/rwlock/innodb/trx_rseg_latch',
'wait/synch/rwlock/innodb/trx_purge_latch')
ORDER BY event_name;
# Make sure some shared_lock operations have been executed
SELECT event_name FROM performance_schema.events_waits_history_long
WHERE event_name = 'wait/synch/sxlock/innodb/index_tree_rw_lock'
AND operation IN ('try_shared_lock','shared_lock') LIMIT 1;
# Make sure some exclusive_lock operations have been executed
SELECT event_name from performance_schema.events_waits_history_long
WHERE event_name = 'wait/synch/sxlock/innodb/index_tree_rw_lock'
AND operation IN ('try_exclusive_lock','exclusive_lock') LIMIT 1;
# Cleanup
UPDATE performance_schema.setup_instruments SET enabled = 'YES', timed = 'YES';