Sunday, November 16, 2003
asks about WinFS being an “object storage layer over top of terabytes of geographically distributed files
.” This is one of the scenarios we are thinking about. In my explanation
of WinFS, I talked about schemas that are “likely to be used for file backed items most of the time.” The idea is that the schema doesn't dictate if it is a file backed item or not (file backedness isn't part of the type). That allows for situations where you have the object, but want to point to a file in a different location. Of course, this leads to synchronization issues
but is acceptable in many circumstances.
In a comment to my explanation
of WinFS, Shawn Smith wonders
why we would not store all the data (including the file) in the database. In fact we are. The file storage itself is managed by the database engine. In the relational schema, there is a column with a binary type and an attribute that tells the system to store the data in a file in NTFS. Transactions are coordinated between the database and NTFS to maintain consistency. The advantage you get over just a normal binary column is that you can ask the system for a special UNC path that can be used to open the file for I/O, leveraging all the performance of NTFS. It really is the best of both worlds.