There's a lot of buzz on the MSDN blog site regarding their latest file system post. http://blogs.msdn.com/b/b8/archive/2012/01/16/building-the-next-generation-file-system-for-windows-refs.aspx - and plenty of insightful comments as well. I for one am happy to see people talking about file system features, especially Data Integrity, knowledge of Flash Media, and faster access through B+ trees. Of course, Datalight's own Reliance Nitro file system has had all this and more for some time now... Microsoft has a new term for a thing we've seen often in the case of unexpected power loss - a "Torn Write". They point this out as a specific problem for their journalling file system, NTFS, but updating any file system metadata in place can be problematic. It looks to me like this new file system, ReFS, handles this by bundling the metadata writes with other metadata writes or with the file data. If the former, this demonstrates the trade-off between Reliability and Performance that we are very familiar with at Datalight. Bundling smaller writes will help with spinning media and flash. In time we will see how much control the application developer has over this configuration - another important point for our customers. One of the commenters posted that error correction belongs at the block device layer, and I tend to agree. Microsoft's design goal "to detect and correct corruption" is a noble one, but how would they detect corruption for user data? Additional file checksums and ECC algorithms would be intrusive and potentially time consuming. Keeping a watch on vital file system structures is important, of course, and a good backup in case block level error detection fails. I look forward to reading more from Microsoft's file system team in the future, and especially hope to see a roadmap for when these important changes will make it down to the embedded space.
Learn more about what happens during a power interruption.