[MDEV-29985] Remove the parameter innodb_file_per_table Created: 2022-11-09  Updated: 2023-11-30

Status: Stalled
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Fix Version/s: None

Type: Task Priority: Critical
Reporter: Marko Mäkelä Assignee: Marko Mäkelä
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Blocks
blocks MDEV-11633 Make the InnoDB system tablespace opt... Open
is blocked by MDEV-29983 Deprecate innodb_file_per_table Closed
Relates
relates to MDEV-30563 Failure 1478: Table storage engine 'I... Open

 Description   

The configuration parameter innodb_file_per_table needs to be removed for reasons that were explained in MDEV-29983.

As part of this task, some additional logic for moving tables out of the system tablespace will be implemented.

  • CHECK TABLE…FOR UPGRADE should flag any tables that are stored in the system tablespace, so that they will be rebuilt.
  • Any DDL statements except RENAME TABLE, that is, TRUNCATE, OPTIMIZE TABLE, ALTER TABLE, will force a table to be rebuilt if it was stored in the system tablespace.

Tables that are located in the system tablespace will continue to be readable and writable even if the upgrade procedure is being skipped.



 Comments   
Comment by Marko Mäkelä [ 2023-01-31 ]

Pushed to bb-11.0-MDEV-29985, because no 11.1 branch was created yet.

Comment by Marko Mäkelä [ 2023-02-21 ]

Based on feedback in MDEV-29983, it probably is better to delay the removal of innodb_file_per_table, to give users more advance warning.

There could be users who are doing ‘application-level software RAID’ by combining multiple hard disks in innodb_data_home_dir, which specifies where the InnoDB system tablespace is stored. If every DDL operation forced tables stored in the system tablespace to be moved to a separate .ibd file, such users could quickly get into trouble.

I do think that nowadays, with multi-terabyte disks, creating the largest tables with a DATA DIRECTORY attribute pointing to separate file systems would be an adequate replacement to creating tables with innodb_file_per_table=0. It is probably better to be conservative here and wait across one long-term-support release.

This change will not remove the InnoDB system tablespace. That would be MDEV-11633, after a few other pieces have been addressed.

Generated at Thu Feb 08 10:12:46 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.