Transactional NTFS
Encyclopedia
Transactional NTFS 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 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:
Using Transactional NTFS for transactions on Encrypting File System
files is not supported until Windows Vista Service Pack 1 (SP1) and Windows Server 2008.
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...
and later operating systems. It brings the concept of atomic transactions to the NTFS
NTFS
NTFS is the standard file system of Windows NT, including its later versions Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista, and Windows 7....
file system
File system
A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the...
, allowing Windows application developers to write file output routines that are guaranteed either to succeed completely or to fail completely.
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
Kernel Transaction Manager
Kernel Transaction Manager is a component of the Windows operating system kernel in Windows Vista and Windows Server 2008 that enables applications to use atomic transactions on resources by making them available as kernel objects...
(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
Journaling file system
A journaling file system is a file system that keeps track of the changes that will be made in a journal before committing them to the main file system...
of low-level operations, such as writing a block of data. Transactional NTFS expands on this capability to include:
- Atomic operations on a single file:
- 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.
- Atomic operations spanning multiple files:
- 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.
- Atomic operations spanning multiple computers:
- Performing the same operation on multiple computers is a fairly common administrative task in a corporate network; Transactional NTFS integrates with the Distributed Transaction CoordinatorDistributed Transaction CoordinatorThe Distributed Transaction Coordinator service is a component of modern versions of Microsoft Windows that is responsible for coordinating transactions that span multiple resource managers, such as databases, message queues, and file systems...
to ensure that the change is successfully applied to all machines.
Using Transactional NTFS for transactions on Encrypting File System
Encrypting File System
The Encrypting File System on Microsoft Windows is a feature introduced in version 3.0 of NTFS that provides filesystem-level encryption...
files is not supported until Windows Vista Service Pack 1 (SP1) and Windows Server 2008.
External links
- Because We Can, a Microsoft developer blog that discusses TxF both conceptually and in code
- Kernel Transaction Manager documentation on the Microsoft Developer Network.