Skip to content
  • Marko Mäkelä's avatar
    155199f9
    WL#8843 Deprecate innodb_support_xa · 155199f9
    Marko Mäkelä authored
    
    
    When support for two-phase commit (XA 2PC) was introduced in InnoDB in
    MySQL 5.0, the session parameter innodb_support_xa=OFF was introduced
    to disable the functionality, due to perceived overhead in the InnoDB
    undo log.
    
    In a recent benchmark, no performance overhead was observed.
    So, we will disable the option innodb_support_xa=ON in MySQL 5.7.10,
    making innodb_support_xa=OFF the only possible value.
    In a future major version of MySQL, the option can be removed altogether.
    
    This parameter is fundamentally broken.
    
    (1) When innodb_support_xa=OFF in the current session, the XA PREPARE
    statement will be silently ignored. That is, if the server is killed
    after the XA PREPARE completed, the transaction would be rolled back
    by InnoDB; there is no way to XA COMMIT it after restarting the server.
    
    (2) The MySQL binlog internally uses XA 2PC to make itself consistent
    with the InnoDB undo logs. When innodb_support_xa=OFF, this logic
    will be broken as well.
    
    We deprecate the parameter innodb_support_xa in MySQL 5.7,
    so that setting it ON or OFF will generate a deprecation warning.
    At startup, because we cannot easily distinguish an explicitly
    specified Boolean option from the default value, we will only generate
    a deprecation warning for --skip-innodb-support-xa.
    
    The default value of innodb_support_xa is ON at least since in May 2007
    (built-in InnoDB in MySQL 5.1).
    
    RB: 10114
    Reviewed-by: default avatarKevin Lewis <kevin.lewis@oracle.com>
    Reviewed-by: default avatarBin Su <bin.x.su@oracle.com>
    155199f9
    WL#8843 Deprecate innodb_support_xa
    Marko Mäkelä authored
    
    
    When support for two-phase commit (XA 2PC) was introduced in InnoDB in
    MySQL 5.0, the session parameter innodb_support_xa=OFF was introduced
    to disable the functionality, due to perceived overhead in the InnoDB
    undo log.
    
    In a recent benchmark, no performance overhead was observed.
    So, we will disable the option innodb_support_xa=ON in MySQL 5.7.10,
    making innodb_support_xa=OFF the only possible value.
    In a future major version of MySQL, the option can be removed altogether.
    
    This parameter is fundamentally broken.
    
    (1) When innodb_support_xa=OFF in the current session, the XA PREPARE
    statement will be silently ignored. That is, if the server is killed
    after the XA PREPARE completed, the transaction would be rolled back
    by InnoDB; there is no way to XA COMMIT it after restarting the server.
    
    (2) The MySQL binlog internally uses XA 2PC to make itself consistent
    with the InnoDB undo logs. When innodb_support_xa=OFF, this logic
    will be broken as well.
    
    We deprecate the parameter innodb_support_xa in MySQL 5.7,
    so that setting it ON or OFF will generate a deprecation warning.
    At startup, because we cannot easily distinguish an explicitly
    specified Boolean option from the default value, we will only generate
    a deprecation warning for --skip-innodb-support-xa.
    
    The default value of innodb_support_xa is ON at least since in May 2007
    (built-in InnoDB in MySQL 5.1).
    
    RB: 10114
    Reviewed-by: default avatarKevin Lewis <kevin.lewis@oracle.com>
    Reviewed-by: default avatarBin Su <bin.x.su@oracle.com>
Loading