I noted some time ago that the current implementation of NTFS forces certain kinds of writes to be synchronous, even when issued asynchronously. Note that this is an implementation decision which is not contractual. Formally, the rule is that any asynchronous operation is permitted (but not required) to complete synchronously.
Malcolm Smith points out that the ReFS file system does not force extending writes to be synchronous. Specifically, ReFS version 1 (Windows 8.1, Windows Server 2012 R2) allowed cached writes to the end of a file to complete asynchronously, and ReFS version 2 (Windows 10 version 1607, Windows Server 2016) maintains validity on a per-range basis, so the need to zero out huge chunks of a file disappears completely.
0 comments