Recently, The NT Insider published an article entitled Don't be Afraid to Commit -- The Transactional Filesystem (TxFS) in Windows. The article deserves mention for a number of reasons, mainly because it's a really good conceptual explanation of what we're working on.

There are some small nits that should probably also be explained.  If you see the term TxFS, or TxF, this term refers to the same feature: Transactional NTFS.  In this blog, I'm trying to use the latter term, just to be clear: this support is integrated into NTFS.  Transactions aren't supported on FAT32, and nor do you need a new filesystem to support this functionality.  In fact, we've done a lot of work to make sure the on-disk format doesn't change at all: when you boot into Longhorn, the necessary structures will be created; you don't need to reformat.

Seeing as I'm linking to this article from a Microsoft blog, I should also make one small correction: we changed our mind on namespace isolation.  Prior to commit, changes made to the namespace from within a transaction are only visible inside the transaction, and upon commit, those changes are visible to both non-transacted applications, and other transactions.  That is, if you delete a file transactionally and commit, other uncommitted transactions will see the delete; prior to commit, only the deleting transaction will see the change.

The article is very correct that Transactional NTFS has a huge impact on filter drivers.  If you're writing a filesystem filter driver, and we haven't heard from you at plugfests or similar events, we'd like to hear from you now.  In many cases the impact for filters is huge, and it'd be great to have filters ready for these changes in Longhorn; this will help users migrate to Longhorn, and help your customers from being inconvenienced in the process.