During DDSE change(such as INNODB to ROCKSDB), it will
populate existing DD tables in mysql with INNODB,
create these DD tables in with ROCKSDB
copy data form INNODB DD tables into ROCKSDB DD tables
Even in step1:
Before this fix, it will calculate index ids/root pages through handle API and ignore se_private_data stored in dd_properties table. if these index ids/root pages are same, then everything are okay. but if these index ids and root pages has been changed(such as mysql.columns index ids changed from 22,23,24 to 600,601,602), then we use wrong index ids/root pages to read page..
With this fix, always use se_private_data stored in dd_properties table to populate these DD tables(or didn't call handler API to calculate se_private_data again).
Summary:
INNODB hit crash during DDSE change due to use wrong root page/index_id calculated from DD tables private data.
During DDSE change(such as INNODB to ROCKSDB), it will
Even in step1:
Before this fix, it will calculate index ids/root pages through handle API and ignore se_private_data stored in dd_properties table. if these index ids/root pages are same, then everything are okay. but if these index ids and root pages has been changed(such as mysql.columns index ids changed from 22,23,24 to 600,601,602), then we use wrong index ids/root pages to read page..
With this fix, always use se_private_data stored in dd_properties table to populate these DD tables(or didn't call handler API to calculate se_private_data again).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags: