WL#5471: DDL locking: fair reschedule
Affects: Server-5.6 — Status: Un-Assigned — Priority: Medium
Currently when rescheduling a queue of metadata locks priority is given to DDL locks - MDL_SHARE_NO_WRITE, MDL_SHARED_NO_READ_WRITE, taken by DDL statements, such as DROP TABLE or ALTER. This design derives from MyISAM thr_lock locks, which were prioritized to ensure highest throughput: severalf TL_READ locks could be scheduled at once, and to not starve writers, they were given priority. Since DDL is rare, we don't need to maximize DML throughput in presence of DDL, and rather should value simplicity and fairness of the scheduler. In the current implementation (MDL in 5.5.5) a steady stream of OPTIMZIE or LOCK TABLE WRITE or ANALYZE could starve DML, such as INSERT or UPDATE.
Copyright (c) 2000, 2017, Oracle Corporation and/or its affiliates. All rights reserved.