Directory entries are stored within AFS3 directory objects in directory vnodes. The directory objects provide a fast lookup of directory entry names to vnode id numbers. Code exists to do reverse id to name lookup. However, reverse lookups are computationally expensive, so do not perform well. In this project, an experimental per volume index has been introduced which provides an id to path name(s) lookup for a given file id within the volume. The index can be created when the volume is created or restored, and updated on directory updates. An experimental RPC has been implemented to test the reverse id to name lookup. Test cases have been added to the external OpenAFS Robot Framework test suites available on github.com.
A client stress test was developed to stress the OpenAFS filesystem accesses using a "monkey test" methodology. A tool was developed in C to play a list of filesystem operations based on a random distribution function. The test program runs the operations over a configurable number of files and directories in a random order and sequence. Users can edit configuration to alter the frequency of certain file operations occurring and the length of the test alongside other features. Throughout the test certain metrics are recorded and dumped into corresponding text files in the metrics directory. A sample python script is provided to render charts of the captured metrics.