Until MariaDB 10.3, XtraDB/InnoDB could store files in two formats, Antelope and Barracuda. The innodb_file_format server system variable determines the file format. Before MariaDB 10.2, by default it was set to Antelope. As setting the default to Barracuda could cause replication problems in certain cases when upgrading, the default format in MariaDB was Antelope until MariaDB 10.2. From MariaDB 10.2, the default is Barracuda, and the ability to use Antelope was deprecated.

Before MariaDB 10.2, in order to use Barracuda for user tables, it is necessary to set the innodb_file_per_table variable.

MariaDB starting with 10.0

Since MariaDB 10.0, the file format in use can be seen in the Information Schema INNODB_SYS_TABLES table.

Compatibility

Each tablespace is tagged with the id of the most recent file format used by one of its tables. All versions of XtraDB/InnoDB can read tables that use an older file format. However, it can not read from more recent formats. For this reason, each time XtraDB/InnoDB opens a table it checks the tablespace's format, and returns an error if a newer format is used.

This check can be skipped via the innodb_file_format_check variable. Beware that, is XtraDB/InnoDB tries to repair a table in an unknown format, the table will be corrupted! This happens on restart if innodb_file_format_check is disabled and the server crashed, or it was closed with fast shutdown.

To downgrade a table from the Barracuda format to Antelope, the table's ROW_FORMAT can be set to a value supported by Antelope, via an ALTER TABLE statement. This recreates the indexes.

The Antelope format can be used to make sure that tables work on MariaDB and MySQL servers which are older than 5.5.

Note that the tablespace is tagged with the lowest file format that supports the row format in use. So, even if Barracuda is enabled, tables that use the Compact or Redundant row formats will be tagged as Antelope.

Antelope

Antelope is the original InnoDB file format, supporting COMPACT and REDUNDANT row formats, but not dynamic or compressed row formats.

Barracuda

Barracuda is a newer InnoDB file format, supporting COMPACT, REDUNDANT, DYNAMIC and COMPRESSED row formats. Tables with large BLOB or TEXT columns in particular could benefit from the dynamic row format.

Future Formats

InnoDB might use new file formats in the future. Each format will have an identifier from 0 to 25, and a name. The names have already been decided, and are animal names listed in an alphabetical order: Antelope, Barracuda, Cheetah, Dragon, Elk, Fox, Gazelle, Hornet, Impala, Jaguar, Kangaroo, Leopard, Moose, Nautilus, Ocelot, Porpoise, Quail, Rabbit, Shark, Tiger, Urchin, Viper, Whale, Xenops, Yak and Zebra.

See Also

Comments

Comments loading...