Hi,
Firstly, thank you for detailed blogs that I have
personally followed but naturally with some delay. Personally, I have
not yet tested latest MySQL 5.7 performance using punch hole. My testing
have been done mainly using MariaDB and NVMFS in FusionIO NVM devices.
MariaDB 10.1 does not use by default punch hole feature (you need to
enable it by innodb-use-trim). I have tested MariaDB punch hole feature
on ext4 on both SSD and traditional HD using linkbench and 10x database.
However, testing was concentrated mostly on loading database and
measure phase. Similar testing was done using NVMFS and FusionIO NVM
device. I have done some testing on dropping tables as there is problems
already when normal InnoDB tables are used (see e.g.
https://mariadb.atlassian.net/browse/MDEV-8069),
but these tables have been clearly too small to see any problems.
Performance of dropping very big tables have not been really done on
different file systems as above bug report effects big tables.
Similarly, I have not tested feature on zfs or xfs. Last time I tested
punch hole feature on NVMFS and FusionIO NVM devices I did not see
assertions or hangs you have reported (
https://bugs.mysql.com/bug.php?id=78277 observation #4 or
https://bugs.mysql.com/bug.php?id=78672).
I will work closely with SanDisk to evaluate again punch hole feature
performance on different file system on SSDs (and NVM), we try to repeat
your observations on MariaDB 10.1 and naturally try to fix them or
improve the documentation of feature when punch hole should be used. We
have not yet introduced similar do unlink() in a background thread
solution as MySQL.