I’m trying to understand the output of a pt-stalk dump, and from what I can see in the innodb status is several threads waiting on the &dict_operation_lock (for 3 seconds each strangely enough). From what I’ve understood by searching the web, MySQL/Percona will grab the &dict_operation_lock mutex whenever tables are created, altered, or removed. There were no non-temporary tables being created, altered, or removed during the timeframe that pt-stalk was trigged on, but I do know our system does explicitly created some temporary tables and we have a lot of queries that create temporary tables as they execute.
I’ve been looking through the Percona Server source code and haven’t been able to determine whether it would grab &dict_operation_lock when a temporary table (explicit or as a query executes) is created, as I can’t tell if it uses the same table creation code for temporary and non-temporary tables.