-
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>
Mayank Prasad authoredMASTER 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