Abstract:
An indexing system and method for a filesystem, such as a database using the POSIX application programming interface, uses two fractal tree indices, a metadata index mapping the full pathname of files to file metadata, preferably data such as returned with a struct stat call, and a data index mapping pathname and block number to a datablock of a predetermined size, optionally a fixed size. The data index has keys ordered lexicographically, and the system and method allows for modifying existing keys, and creating new keys if there is no existing key, for writes smaller than the predetermined block size and for unaligned writes. The invention provides at least about an order of magnitude improvement in microdata operations (such as creating and scanning files smaller than a predetermined size, such as 512-byte files), and has write times comparable with existing file systems.