11

A database file system is a file system that is a database instead of a hierarchy. Not too complex an idea initially but I thought I'd ask if anyone has thought about how they might do something like this? What are the issues that a simple plan is likely to miss? My first guess at an implementation would be something like a filesystem to for a Linux platform (probably atop an existing file system) but I really don't know much about how that would be started. Its a passing thought that I doubt I'd ever follow through on but I'm hoping to at least satisfy my curiosity.

Dave
  • 7,589
  • 12
  • 36
  • 42
  • I have a few ideas, but would prefer to discuss them offline. Are you still interested? – Ries Feb 12 '10 at 10:04
  • 2
    While I still think that the idea is important, I've moved on to a large project where I've already hidden the file system from the user so the problem of file meta-data isn't visible to them. Not a terrific solution (doesn't play well with tools) but better than the user-unfriendly OS. I really don't have the time to invest in such a project so I won't be of any real help. That said, I'm excited to see what you come up with so let us know here! – Dave Feb 13 '10 at 01:43
  • I'm surprised this not-hundred-and-one-percent-un-ambiguous question hasn't been closed yet. – puk May 11 '12 at 04:00
  • Just a note - Oracle holds a couple of patents that cover the idea. The patents have been issued around '2000. So if you plan to implement something like this, be careful and check with the lawyers, how you can avoid patent litigation from Oracle in future. – Eugene Mayevski 'Callback Jul 05 '15 at 07:33

5 Answers5

5

DBFS is a really nice PoC implementation for KDE. Instead of implementing it as a file system directly, it is based on indexing on a traditional file system, and building a new user interface to make the results accessible to users.

Ravindra S
  • 6,302
  • 12
  • 70
  • 108
2

The easiest way would be to build it using fuse, with a database back-end.

A more difficult thing to do is to have it as a kernel module (VFS).

On Windows, you could use IFS.

Osama Al-Maadeed
  • 5,654
  • 5
  • 28
  • 48
1

I'm not really sure what you mean with "A database file system is a file system that is a database instead of a hierarchy".

Probably, using "Filesystem in Userspace" (FUSE), as mentioned by Osama ALASSIRY, is a good idea. The FUSE wiki lists a lot of existing projects about databased-backed filesystems as well as filesystems in which you can search by SQL-like queries.

dmeister
  • 34,704
  • 19
  • 73
  • 95
0

Its been a while since you asked this. I'm surprised no one suggested the obvious. Look at mainframes and minis, especially iSeries-OS (now called IBM-i used to be called iOS or OS/400).

How to do an relational database as a mass data store is relatively easy. Oracle and MySQL both have these. The catch is it must be essentially ubiquitous for end user applications.

So the steps for an app conversion are:

1) Everything in a normal hierarchical filesystem

2) Data in BLOBs with light metadata in the database. File with some catalogue information.

3) Large data in BLOBs with extensive metadata and complex structures in the database. File with substantial metadata associated with it that can be essentially to understanding the structure.

4) Internal structures of the BLOB exposed in an object <--> Relational map with extensive meta-data. While there may be an exportable form, the application naturally works with the database, the notion of the file as the repository is lost.

jbolden1517
  • 319
  • 1
  • 3
0

Maybe this is a good starting point for getting an idea how it could work.

It's a basic overview of the Firebird architecture.

Firebird is an opensource RDBMS, so you can have a real deep insight look, too, if you're interested.

Xn0vv3r
  • 17,766
  • 13
  • 58
  • 65