Une implémentation asynchrone de DISCARD est présentée pour Btrfs

Pour le système de fichiers btrfs est présenté implémentation asynchrone de l'opération DISCARD (marquage des blocs libérés qui n'ont plus besoin d'être physiquement stockés), mise en œuvre par les ingénieurs de Facebook.

L'essence du problème : dans l'implémentation d'origine, DISCARD est exécuté de manière synchrone avec d'autres opérations, ce qui entraîne dans certains cas des problèmes de performances, car les lecteurs doivent attendre que les commandes correspondantes se terminent, ce qui nécessite du temps supplémentaire. Cela peut poser un problème si l'implémentation DISCARD du lecteur est lente.

Avec une implémentation asynchrone, il n'est pas nécessaire d'attendre que le lecteur termine DISCARD pendant le fonctionnement normal de FS, ce qui élimine le problème en transférant cette opération en arrière-plan. L'implémentation présentée effectue également quelques optimisations. Par exemple, il attend un certain temps, craignant que le bloc ne soit bientôt utilisé de telle manière qu'il ne sert à rien d'exécuter la procédure DISCARD, et il essaie également de fusionner les régions avant d'exécuter réellement la procédure DISCARD afin de réduire le nombre total d'opérations.

Source: opennet.ru

Ajouter un commentaire