Longhorn: WinFS looks cool!
The WinFS data storage system used in Longhorn seems cool... A short list of some powerful features:
- There is a concept of Items and relations between Items
- An Item is something like a file, a folder, a contact, or a user defined type
- There are two types of relations: holding relationships and reference relationships
- With holding relationship you can model the well known folder hierarchy, but also much more because an item can be "hold" in more than one relationship (although cycles in the "hold" graph are not permitted)
- An item has a reference count of its holding relationships. When it has no more references it is removed from the store.
- Security is on Item level (which could indicate that Yukon, presumably the storage engine in a slimmed down version, has row level security)
- Every store Item has an unique ID that identifies the Item in the store (although not guaranteed over multiple stores)
- WinFS supports: Asynchrony (multiple queries and data retrieval at the same time), Transactions, Notifications (on Item changes, relation changes, and many more subtile things going on), Blob/stream support, Cursoring and paging (a query can result into many Items!)
- A powerful API is available to interogate the store
- Within the API powerful querying and filtering functionality is available
- Also direct SQL queries can be executed on the store for really powerful aggregation and grouping
For more info have look at the Longhorn SDK section on WinFS: http://longhorn.msdn.microsoft.com/lhsdk/winfs/daovrWelcomeToWinFS.aspx
For a more conceptual view: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaero/html/wux_topic_storage.asp