Skip to content
  • Dmitry Lenev's avatar
    73fbd85b
    WL#7567 "Handlerton MDL callback". · 73fbd85b
    Dmitry Lenev authored
    Implemented support for notification of storage engines about
    acquisition and release of exclusive metadata locks, which allow
    metadata to be changed. Such support allows NDB SE to prevent
    concurrent changes to object metadata on different cluster nodes
    and opens path to implementation of proper cluster-wide metadata
    locking.
    
    Introduced new handlerton method which is called by MDL subsystem each
    time before X lock acquisition. This method gets MDL_key in order to
    be able to identify object on which lock is acquired. Lock acquisition
    can be refused by SE by returning error from this method. The same
    method (with a different notification_type argument) is called after
    release of X lock.
    
    Since in case of ALTER TABLE statement upgrade to X metadata lock
    happens late in the process of statement execution, it is expensive
    to abort statement execution as result of failed SE notification at
    upgrade time. To alleviate this issue we additionally notify SE at
    the start of ALTER TABLE on a base table and at its end. This gives
    SE chance to abort execution of ALTER TABLE early in the process
    without wasting precious resources.
    73fbd85b
    WL#7567 "Handlerton MDL callback".
    Dmitry Lenev authored
    Implemented support for notification of storage engines about
    acquisition and release of exclusive metadata locks, which allow
    metadata to be changed. Such support allows NDB SE to prevent
    concurrent changes to object metadata on different cluster nodes
    and opens path to implementation of proper cluster-wide metadata
    locking.
    
    Introduced new handlerton method which is called by MDL subsystem each
    time before X lock acquisition. This method gets MDL_key in order to
    be able to identify object on which lock is acquired. Lock acquisition
    can be refused by SE by returning error from this method. The same
    method (with a different notification_type argument) is called after
    release of X lock.
    
    Since in case of ALTER TABLE statement upgrade to X metadata lock
    happens late in the process of statement execution, it is expensive
    to abort statement execution as result of failed SE notification at
    upgrade time. To alleviate this issue we additionally notify SE at
    the start of ALTER TABLE on a base table and at its end. This gives
    SE chance to abort execution of ALTER TABLE early in the process
    without wasting precious resources.
Loading