Für Btrfs wird eine asynchrone Implementierung von DISCARD vorgestellt

Für BTRFS-Dateisystem vertreten asynchrone Implementierung der DISCARD-Operation (Markierung freigegebener Blöcke, die nicht mehr physisch gespeichert werden müssen), implementiert von Facebook-Ingenieuren.

Der Kern des Problems: In der ursprünglichen Implementierung wird DISCARD synchron mit anderen Vorgängen ausgeführt, was in einigen Fällen zu Leistungsproblemen führt, da die Laufwerke auf den Abschluss der entsprechenden Befehle warten müssen, was zusätzliche Zeit erfordert. Dies kann ein Problem sein, wenn die DISCARD-Implementierung des Laufwerks langsam ist.

Bei einer asynchronen Implementierung muss während des normalen FS-Vorgangs nicht darauf gewartet werden, dass das Laufwerk DISCARD abschließt, wodurch das Problem durch die Übertragung dieses Vorgangs in den Hintergrund behoben wird. Die vorgestellte Implementierung führt auch einige Optimierungen durch. Beispielsweise wartet es einige Zeit, weil es befürchtet, dass der Block möglicherweise bald so verwendet wird, dass es überhaupt keinen Sinn mehr macht, die DISCARD-Prozedur auszuführen, und es versucht außerdem, Regionen zusammenzuführen, bevor die DISCARD-Prozedur tatsächlich ausgeführt wird, um sie zu reduzieren die Gesamtzahl der Operationen.

Source: opennet.ru

Kommentar hinzufügen