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。