Features Added in MySQL 8.0 Transaction scheduling previously performed by the FIFO algorithm is now performed by the CATS algorithm. A  TRX_SCHEDULE_WEIGHT  column was added to the  INFORMATION_SCHEMA.INNODB_TRX  table, which permits querying transaction scheduling weights assigned by the CATS algorithm. The following  INNODB_METRICS  counters were added for monitoring code-level transaction scheduling events: The number of attempts to release record locks. The number of attempts to grant record locks. The number of times the wait-for graph was analyzed to update transaction schedule weights. For more information, see Section 15.7.6, “Transaction Scheduling” . The lock system mutex ( lock_sys->mutex ) was replaced by the following sharded latches: The Performance Schema  wait/synch/mutex/innodb/lock_mutex  instrument for monitoring the single lock system mutex was replaced by instruments for monitoring the new global, table shard, and page shard latches: 19 • lock_rec_release_attempts • lock_rec_grant_attempts • lock_schedule_refreshes •As of MySQL 8.0.21, to improve concurrency for operations that require access to lock queues for table and row resources, the lock system mutex ( lock_sys->mutex ) was replaced in by sharded latches, and lock queues were grouped into table and page  lock queue shards , with each shard protected by a dedicated mutex. Previously, the single lock system mutex protected all lock queues, which was a point of contention on high-concurrency systems. The new sharded implementation permits more granular access to lock queues. •A global latch ( lock_sys->latches.global_latch ) consisting of 64 read-write lock objects ( rw_lock_t ). Access to an individual lock queue requires a shared global latch and a latch on the lock queue shard. Operations that require access to all lock queues take an exclusive global latch, which latches all table and page lock queue shards. •Table shard latches ( lock_sys->latches.table_shards.mutexes ), implemented as an array of 512 mutexes, with each mutex dedicated to one of 512 table lock queue shards. •Page shard latches ( lock_sys->latches.page_shards.mutexes ), implemented as an array of 512 mutexes, with each mutex dedicated to one of 512 page lock queue shards. • wait/synch/sxlock/innodb/lock_sys_global_rw_lock • wait/synch/mutex/innodb/lock_sys_table_mutex • wait/synch/mutex/innodb/lock_sys_page_mutex •As of MySQL 8.0.21, table and table partition data files created outside of the data directory using the  DATA DIRECTORY  clause are restricted to directories known to  InnoDB . This change permits