為 Btrfs 提供了 DISCARD 的非同步實現

對於 btrfs 檔案系統 提出了 DISCARD 作業的非同步實作(標記不再需要實體儲存的已釋放區塊),由 Facebook 工程師實作。

問題的本質是:在原始的實作中,DISCARD是與其他操作同步執行的,這在某些情況下會導致效能問題,因為驅動器必須等待相應命令完成,這需要額外的時間。如果驅動器的 DISCARD 執行速度很慢,這可能會成為問題。

透過非同步實現,在正常的 FS 操作期間無需等待驅動器完成 DISCARD,從而透過將此操作轉移到背景來消除該問題。所提出的實作也執行了一些最佳化。例如,它會等待一段時間,因為擔心該區塊可能很快就會被使用,以致執行 DISCARD 過程根本沒有意義,它還會在實際執行 DISCARD 之前嘗試合併區域,以減少操作總數。

來源: opennet.ru

添加評論