Details
-
Task
-
Status: Stalled (View Workflow)
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Automatic re-discover is supported as a feature, but currently it is only allowed when a table is being opened. Because of table definition cache tables are rarely opened, instead, open tables are put in the TDC for reuse without reopening.
Thus an engine must either block all table changes while the table is opened - that is, for undefined amount of time, because the engine cannot force the table to be closed, it can only wait for the user to issue FLUSH TABLES.
Or the engine should issue a HA_ERR_TABLE_DEF_CHANGED after the table was opened - it will cause an error message sent to the user "table definition was changed, need re-discovery".
We need to allow automatic re-discover to happen more often. Options:
- every time a table is taken from the TDC, the server calls a new special method "is the table definition up-to-date"?
- on HA_ERR_TABLE_DEF_CHANGED error from the external_lock() the server does fallback-and-retry, just as when it gets this error from open().
Attachments
Issue Links
- relates to
-
MDEV-3808 Better table discovery
- Closed