maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #10641
Re: [JIRA] (MDEV-12499) ARCHIVE tables still don't show up in I_S.TABLES when storage engine is not loaded
Hi Sergei,
(sorry for cross-posting to MariaDB.dev and MariaDB.discuss: I think this
interest both audiences.)
Sergei Golubchik commented on MDEV-12499:
> -----------------------------------------
>
> This only happens if you created an ARCHIVE table and never used it before
> the upgrade. No INSERT, no SELECT, not even {{SELECT * FROM
> INFORMATION_SCHEMA.TABLES}} — nothing.
>
> ARCHIVE engine supports table discovery, that is, the engine is always the
> authoritative source of table metadata, while {{.frm}} files are merely a
> metadata cache. When you do {{CREATE TABLE}} the server does not know
> whether the engine wants the table metadata to be cached. This happens when
> the table is opened for the first time.
>
> If there is no {{.frm}} file and the ARCHIVE engine is not loaded, the
> server has no way of knowing that the ARCHIVE table exists. That's why it's
> not shown anywhere.
>
> If you do {{SELECT * FROM test.a1}} before the upgrade, the engine will
> tell the server to create the {{.frm}} file and on the upgrade the plugin
> will be loaded. In a practical use case, it's enough to have at least one
> ARCHIVE table that was accessed at least once after it was created, and the
> ARCHIVE plugin will be loaded on upgrade.
>
Thanks for the detailed info above. In this, you write ".frm files are
merely a metadata cache", is there any sort of documentation about when
.frm files are useful, useless, and might get out of sync ? This probably
deserves a page in the KB (and Google does not know much on "mariadb frm
file site:mariadb.com").
However, your comment above raises the following question: if "ARCHIVE
engine supports table discovery, that is, the engine is always the
authoritative source of table metadata", where is this information stored
? I guess that unless the plugin is loaded, this information is not
accessible. This causes a chicken and egg problem which MDEV-12499 was
trying to solve: how can mysql_upgrade knows if it should add BLACKHOLE and
ARCHIVE to the list of plugin to load (see MDEV-11942).
Finally, you marked MDEV-12499 as "Won't Fix", do you have another solution
for ARCHIVE and MDEV-11942 ?
Many thanks,
JFG
Follow ups