Flexible Organization in the OrcFS Relational File System for Efficient File Searching
The need for efficient organization of files grows with the computer storage capabilities. However, a classical hierarchical file system offers little help in this matter, excepting maybe the case of links and shortcuts. OrcFS proposes a solution to this problem. By redefining several file system concepts, it allows the user to set custom metadata, in the form of '(property,value)' pairs, to express relationships between files. Using it, the system automatically creates a classified view of its components, in which those having similar characteristics are grouped together. A virtual hierarchy is generated, which provides multiple access paths to the same file. This assures that the data can be classified in a more flexible way and the navigation can be done more intuitively. The traditional concept of directory is extended, to accommodate the user-defined properties. In OrcFS, both classical navigation and query interrogation are possible. The enhanced system is compliant with the Linux's VFS interface, thus no changes need to be made to existing applications and they may be used in OrcFS. A prototype of the project was implemented in user-space using the FUSE library to reimplement system calls. The performed tests proved that even if introducing new data in the OrcFS implies some overhead, this is negligible compared with the gain obtained when searching for files in an immense file tree structure.