← Back to team overview

maria-discuss team mailing list archive

Why MyISAM as default engine for system tables ?



A few weeks ago, we got the following fatal error when starting mariadb:

[Note] Starting crash recovery...
[Note] Crash recovery finished.
[ERROR] mysqld: Table './mysql/db' is marked as crashed and should be repaired
[Warning] Checking table:   './mysql/db'
[ERROR] mysql.db: 1 client is using or hasn't closed the table properly
tch value count at row 1
[ERROR] Aborting

Unfortunately, what led to this is unclear. We only rebooted the machine. Maybe a hw raid issue. We did a copy at that time. I tried recently if it could be repaired but I don't have the a fatal error anymore. We also don't know why system tables were touched during the reboot.

Anyway, given the description of Aria ("Crash-safe tables with MyISAM heritage"), I understand that MyISAM is not crash-safe. Then, why keep using MyISAM as default engine for system tables, when MariaDB has Aria or InnoDB ?

Not sure a crash-safe engine would have helped in the above case (there's no miracle for data corruption). But we'd like at least that all our mariadb setups are crash-safe (e.g. power cuts) and we use InnoDB partly for that. And I don't know if a InnoDB DB could be always recoverable if the 'mysql' DB is lost but we don't want to do manually (and learn how to) what the machine can do automatically.


Follow ups