• Thirunarayanan Balathandayuthapani's avatar
    MDEV-33462 Server aborts while altering an InnoDB statistics table · e66928ab
    Thirunarayanan Balathandayuthapani authored
    Problem:
    =======
    - When online alter of InnoDB statistics table happens,
    any transaction which updates the statistics table
    has to read the undo log and log the DML changes during
    transaction commit. Applying undo log
    (UndorecApplier::apply_undo_rec) requires a shared
    lock on dictionary cache but dict_stats_save() already
    holds write lock on dictionary cache. This leads to
    abort of server during commit of statistics table changes.
    
    Solution:
    ========
    - Disallow LOCK=NONE operation for the InnoDB statistics table.
    The reasoning is that statistics tables are typically
    rather small, so any blocking would be rather short.
    Writes to the statistics tables should be a rare operation.
    e66928ab
handler0alter.cc 330 KB