05-18-2006, 04:17 PM
I've been preaching this idea on and off for 15 years now, and no one's been listening. Now all of a sudden Microsoft is claiming it's their big idea. I just found this site and I think that maybe this is the right venue to pitch the idea.
Take a good relational database and make it run on an unformatted hard drive partition. Add some security features as needed. Use it as your filing system. Write a "normal" filing system interface to it so every program in the world can use it. Then give a set of query tools. With a little easy SQL you can keep a scrolling window of "most recent documents" that goes back to the beginning of time and can be filtered by anything.
You have several tables:
Location (directory, compound file like a database, archive, etc.)
FileName (a file within a location)
File (the actual file data)
Block (just like a block in a normal file system)
Locations contain file names.
Files contain blocks.
Users can set up their own indexes if they want, but here are some you should start with:
Location.ParentLocation (for use by ls and such)
Location.Name (for searching)
FileName.Location (for use by ls and so on)
FileName.Name (wow - find any file anywhere instantly by what its name starts with)
FileName.type FileName.Name
FileName.CreationDate
FileName.AccessDate
FileName.ModifyDate
Since blocks have to have a physical size and a size used, you could even use this kind of filing system to insert data into the middle of a file without having to move everything that followed. Just insert some blocks in the middle and go.
The possibilities are endless. Just think of the cool file management tools you could write if it were all just SQL to do the hard work.
Anyone interested?
Take a good relational database and make it run on an unformatted hard drive partition. Add some security features as needed. Use it as your filing system. Write a "normal" filing system interface to it so every program in the world can use it. Then give a set of query tools. With a little easy SQL you can keep a scrolling window of "most recent documents" that goes back to the beginning of time and can be filtered by anything.
You have several tables:
Location (directory, compound file like a database, archive, etc.)
FileName (a file within a location)
File (the actual file data)
Block (just like a block in a normal file system)
Locations contain file names.
Files contain blocks.
Users can set up their own indexes if they want, but here are some you should start with:
Location.ParentLocation (for use by ls and such)
Location.Name (for searching)
FileName.Location (for use by ls and so on)
FileName.Name (wow - find any file anywhere instantly by what its name starts with)
FileName.type FileName.Name
FileName.CreationDate
FileName.AccessDate
FileName.ModifyDate
Since blocks have to have a physical size and a size used, you could even use this kind of filing system to insert data into the middle of a file without having to move everything that followed. Just insert some blocks in the middle and go.
The possibilities are endless. Just think of the cool file management tools you could write if it were all just SQL to do the hard work.
Anyone interested?
