Transactional NTFS

Transactional NTFS (abbreviated TxF) is a component of Windows Vista and later operating systems. It brings the concept of atomic transactions to the NTFS file system, allowing Windows application developers to write file output routines that are guaranteed either to succeed completely or to fail completely. Transactional NTFS is also known informally as NTFS 6.0, because it was introduced with Windows Vista, which has internal Windows version designation NT 6.0.

Due to its complexity and various nuances which developers need to consider as part of application development, Microsoft is considering deprecating TxF APIs in a future version of Windows. Therefore, Microsoft strongly recommends developers investigate using the alternatives rather than adopting the Transactional NTFS API platform which may not be available in future versions of Windows.[1]

Overview

Transactional NTFS allows for files and directories to be created, modified, renamed, and deleted atomically. Using transactions ensures correctness of operation; in a series of file operations (done as a transaction), the operation will be committed if all the operations succeed. In case of any failure, the entire operation will rollback and fail.

Transactional NTFS is implemented on top of the Kernel Transaction Manager (KTM), which is a Windows kernel component first introduced in Windows Vista that provides transactioning of objects in the kernel. The NTFS file system already supports journaling of low-level operations, such as writing a block of data. Transactional NTFS expands on this capability to include:

A common example of this is saving a file from an application; if the application or machine were to crash while writing the file, then only part of the file could be written, possibly resulting in a corrupted file. This would be a very significant problem if a previous version of the file was being over-written, as data would likely be lost.
If an application needs to update several files at once with a set of changes, all the necessary file operations can be performed as a single transaction, preventing inconsistent updates in the event of a failure.
Performing the same operation on multiple computers is a fairly common administrative task in a corporate network; Transactional NTFS integrates with the Distributed Transaction Coordinator to ensure that the change is successfully applied to all machines.

Using Transactional NTFS for transactions on Encrypting File System files is not supported until Windows Vista Service Pack 1 (SP1) and Windows Server 2008.[2]

See also

References

  1. "Alternatives to using Transactional NTFS". Microsoft.
  2. "When to Use Transactional NTFS (Windows)". KTM Reference. Microsoft. Retrieved 2008-06-04.

External links