Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-25919

InnoDB reports misleading lock wait timeout on DDL operations

    XMLWordPrintable

    Details

      Description

      In the third and last part of MDEV-25506, operations that delete .ibd files were refactored so that the deletion would take place after transaction commit.

      As part of that refactoring, the lock conflict handling of internal transactions was revised so that if the data dictionary is being locked, any conflict would result in an immediate lock wait timeout error. Such lock conflicts should only be able to exist on the InnoDB persistent statistics tables or some internal tables that are related to the InnoDB FULLTEXT INDEX implementation.

      We should try to abandon the concept of 'dictionary transaction' and refactor the InnoDB internal SQL parser so that all table handles will be looked up before the parser is invoked. In this way, no data dictionary latch will be required during the execution, and lock waits can be handled in the normal fashion, without fearing any server hang (such as MDEV-15020).

      Making all transactions equal will remove the need to use separate internal transactions for InnoDB DDL operations.

      Note: Before MDEV-24589 and MDEV-25506, some InnoDB DDL operations were neither atomic nor rollback-safe, and mixing DDL and DML in one transaction would have been out of the question.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              marko Marko Mäkelä
              Reporter:
              marko Marko Mäkelä
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Git Integration