Trinity: Microsoft Research’s Hypergraph Database
infoq.com
infoq.com
I had to do this back in 2003 to create dynamic sites for users of a build-your-own-website app (who needed to have their data stored in their local filesystem - and they wouldn't let me use sqlite).
It turns out to be really good for expressing websites structures. The downside is that, as you can't create on-the-fly relationships, you need to either store your data in a tree that describes its use, e.g.:
blogs/2009/03/05
or you need to add links that point to the same data to create the relationships, e.g.: blogs/2009/03/05 -> stories/a_blog_post
Obviously you can add these relationships later in much the same way as you might add indexes to a traditional database.My system also had a notion of arrays. An index to the next auto_increment was held in a file named '.#'.
I also has a file called '.class' which would tell my object system how to process a node like this as if it was an object (each class had a a set of scripts that acted as methods).
It all worked amazingly well.
There were a couple of issues: old Solaris, I recall, used a linear search of directories so the system would crawl if a node got too big (I overcame that first with some simple a/b/c style hashing and second by upgrading Solaris) and directories were 4k each so users (who had file-usage limits) might have had grounds for complaint.
I think it's a problem space that we've only see the tip of the iceberg and Microsoft recognizes this. I also think this is one area where the MS stack doesn't scale well, hence why they'll address it. Sadly, I wouldn't be surprised to see this research get packaged into SQL Server (or worse, Azure).
Is there a reason for this? I would have thought that finding a practical application for research is actually a good thing?
http://msdn.microsoft.com/en-us/windowsserver/ee695849
Not to be confused with Windows Azure AppFabric.
I'm not sure Velocity really included any interesting research or novel ideas, though.
MSR does a lot of very wild, interesting, off the wall, crazy things. They also do a lot of incredibly practical, pragmatic, evolutionary things. It's a large organization, filled with researchers of an incredible range of skills and interests. Any projects coming out of MSR should not be perceived as commitment or desired focus from Microsoft. Some projects simply inspire project teams, others grow into products, but most just die on the drawing board.
That said, they are a gravely under appreciated research body, especially by both the open source community and the Microsoft rank and file.
Why, or why not?
Now, I admit, Microsoft is not the first company to create a graph centric db, but them weighing into this market gives the market further credibility. At the moment, I think graph is seen as an edge case. Maybe people will take another look now and start getting more serious about it.
Is it sad that it takes a big company jumping on the bandwagon to give it credibility?? Sure, a bit, but that is how the adoption curve goes.
We also had this argument last time this was posted, albeit not surrounded by infoq blogspam.
they even have the name derived!