How Hyppocampus Works

Hyppocampus is now implemented as a FUSE ( http://fuse.sf.net ) module, so it seams a real filesystem but operate over the real filesystem installed in the target machine. At the moment of installation, a folder is installed in the user's home directory, ~/.hyppocampus : this contains the file .hyppo, that contains the relational filesystem, and a copy of all files added into the system, named not with their names but with the unique ID assigned at the time of insertion.

The file .hyypo is a binary file so structured:

To all new files added into the filesystem is assigned an unique 64-bit ID, and a new node in the first metadata array is created. The entire file is composed by the linked list of metadata that refers to the file.
All metadata are placed in the array indicized as (metadata ID % META_KEY_HASH), so to organize all into a sort of simple hash table. Each node for metadata contains the file ID at which it refers, the ID of the next and of the previous metadata related to the file, and the value assigned. All nodes that represents a particular kind of metadata are grouped into a sub array that starts with a special node called "header" (that differs from others having the value HEADER_INODE_IDENTIFIER in place of file ID, and store informations about the number of metadata into the sub array and the number of free nodes).


Generato il Thu Aug 10 16:04:58 2006 per Hyppocampus da  doxygen 1.4.7