October 19th, 2018

File-extending writes are not always synchronous, which is entirely within the contract

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.

Topics
Code

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

0 comments

Discussion are closed.