mirror of
https://github.com/MariaDB/server.git
synced 2025-11-10 23:02:54 +03:00
- 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.
71 lines
2.5 KiB
Plaintext
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';
|