exFAT est un système de fichier créé par Microsoft en 2006 pour les supports amovibles, particulièrement les cartes SD, avec un accent mis sur la gestion des métadonnées. Il s’agissait alors d’un système de fichiers propriétaire. Les spécifications ont finalement été ouvertes en 2019 et la propriété des brevets transférée à l’Open Invention Network. Ce n’est cependant pas une technologie ouverte.
Son support dans Linux a toujours été bancal, malgré des améliorations notables de temps en temps. La version 6.15 du noyau devrait cependant donner un gros coup de fouet, notamment lors de la suppression de fichiers, quand l’option de montage « discard » est active. Cette dernière signifie qu’une opération informe le périphérique de stockage que les blocs sous-jacents ne sont plus utilisés. Supprimer un fichier envoie ainsi un signal pour passer ces blocs du statut « occupé » à « libre ».
Clik here to view.

C’est un ingénieur de Sony, Yuezhang Mo, qui a apporté la modification. Il explique ainsi qu’en mode discard, les clusters sont éliminés un par un quand l’utilisateur déclenche une suppression de fichiers. Plus le nombre et le poids des fichiers augmente, plus l’opération prend de temps. Au point que ce dernier peut devenir excessif et entrainer un plantage des composants logiciels impliqués, jusqu’au blocage parfois de la machine. Sa modification a donc consisté à permettre le traitement par lots des clusters impliqués, comme le rapporte notamment Phoronix.
Pour donner un ordre d’idée, la suppression d’un fichier unique de 80 Go prenait la bagatelle de 286 secondes, un temps que l’on peut considérer comme « fou ». Avec le noyau Linux 6.15, la même opération prend… 1,6 seconde.