Synchronous and Asynchronous File-System Write

Write policy 決定 write() 後資料何時真的到 storage,影響 latency、durability、crash consistency。

Programming interface:D-SP-Ch3g-sync_fsync_fdatasync


Asynchronous Writes

Process 寫入後,kernel 先更新 buffer/page cache 就返回;稍後由 writeback thread 排程到 device。

process write → cache dirty → return
                         ↓ later
                    storage writeback
  • 優點:低 perceived latency,可合併 small writes、排序 I/O、提高 throughput。
  • 缺點:crash 時 dirty data / metadata 可能遺失或順序錯亂。

Synchronous Writes

Caller 等資料到達 stable storage 或完成必要 ordering 才返回。

常用於 database log、critical metadata、application 明確要求 durability 的資料。

  • 優點:durability / ordering guarantee 較強。
  • 缺點:latency 高,HDD random metadata sync write 尤其貴。

Metadata Sensitivity

Create file 可能同時改 directory、FCB、free-space map、counts。若順序錯誤,crash 後可能 directory 指向未初始化 FCB,或 block 被配置但無人引用。

現代 file systems 常用 async data write + journal / COW / barrier / flush 保護 critical metadata ordering。