Skip to content
  • Mayank Prasad's avatar
    00e76b76
    Bug#29549938 : SYNCHRONIZATION B/W UNDO TABLESPACE TRUNCATION AND · 00e76b76
    Mayank Prasad authored
                   MASTER KEY ROTATION
    
    Issue :
     Currently, UNDO Tablespace Truncation and Master Key Rotation are
     synchronized using MDLs on UNDO Tablespace Names. But During Truncation,
     UNDO tablespace Id is changed. So if ROTATION is waiting for MDL on a
     specific UNDO tablespace name which is being Truncated in-parallel,
     after truncation, space with the Old ID is not present any more.
     It leads to an Assert that tablespace not found.
    
    Fix :
     As of now, ROTATION blocks CREATE/DROP table (tablespaces).
     ROTATION also needs to be mutually exclusive with UNDO truncation.
     ROTATION is rare.
     So it seems a very good candidate of X Backuplock which makes sure DDLs
     are blocked.
    
     NOTE : Earlier global mutex 'master_key_id_mutex' was being used to ensure
     no CREATE/DROP table (tablespace) are run. Now this is handled by taking
     X backup lock. Now, that global mutex is used only for what it was coded
     for i.e. chaning master_key_id.
    
     Implemented by :
      InnoDB Code  : Mayank Prasad <mayank.prasad@oracle.com>
      Runtime Code : Gopal Shankar <gopal.shankar@oracle.com>
    
     RB : 21836
     Reviewed by : DEBARUN.BANERJEE <debarun.banerjee@oracle.com>
                   Kevin Lewis <kevin.lewis@oracle.com>
                   Dmitry Lenev <dmitry.lenev@oracle.com>
    00e76b76
    Bug#29549938 : SYNCHRONIZATION B/W UNDO TABLESPACE TRUNCATION AND
    Mayank Prasad authored
                   MASTER KEY ROTATION
    
    Issue :
     Currently, UNDO Tablespace Truncation and Master Key Rotation are
     synchronized using MDLs on UNDO Tablespace Names. But During Truncation,
     UNDO tablespace Id is changed. So if ROTATION is waiting for MDL on a
     specific UNDO tablespace name which is being Truncated in-parallel,
     after truncation, space with the Old ID is not present any more.
     It leads to an Assert that tablespace not found.
    
    Fix :
     As of now, ROTATION blocks CREATE/DROP table (tablespaces).
     ROTATION also needs to be mutually exclusive with UNDO truncation.
     ROTATION is rare.
     So it seems a very good candidate of X Backuplock which makes sure DDLs
     are blocked.
    
     NOTE : Earlier global mutex 'master_key_id_mutex' was being used to ensure
     no CREATE/DROP table (tablespace) are run. Now this is handled by taking
     X backup lock. Now, that global mutex is used only for what it was coded
     for i.e. chaning master_key_id.
    
     Implemented by :
      InnoDB Code  : Mayank Prasad <mayank.prasad@oracle.com>
      Runtime Code : Gopal Shankar <gopal.shankar@oracle.com>
    
     RB : 21836
     Reviewed by : DEBARUN.BANERJEE <debarun.banerjee@oracle.com>
                   Kevin Lewis <kevin.lewis@oracle.com>
                   Dmitry Lenev <dmitry.lenev@oracle.com>
Loading