Search code examples
mysqlmariadbtokudb

MYSQL /MariaDB - TokuDB ... no space left on device


Although there is some space left on the hard drive any insert on a table with the tokuDB storage engine fails with the error:

Error Code: 1021. Disk full (); waiting for someone to free some space... (errno: 189 "Disk full")

Inserts on other storage engines (e.g. innodb ) are still working.


Solution

  • There is a toku system parameter called: tokudb_fs_reserve_percent

    Copied from https://mariadb.com/kb/en/mariadb/documentation/storage-engines/tokudb/tokudb-system-variables/#tokudb_fs_reserve_percent

    Description: If this percentage of the filesystem is not free, inserts will be prohibited. Recommended value is half the size of the available memory. Once disabled, inserts will be re-enabled once twice the reserve is available. TokuDB will freeze entirely if the disk becomes entirely full. Scope: Global Dynamic: No Data Type: numeric Default Value: 5

    So the default value is 5%. Either you change the paramter in your /etc/mysql/conf.d/tokudb.cnf to a lower value, e.g.

    tokudb_fs_reserve_percent=0
    

    or you free some disk space.