Hare is a new file system for multikernel operating systems running
on multicore processors. Hare provides to applications a shared file
system, implementing most of the POSIX file system API, without relying
on cache-coherent shared memory. Kernels on different cores communicate
through messages to file server processes, which maintain file system
metadata and provide consistent shared state. Hare partitions the buffer
cache among file server processes, and allows application cores to have
direct access to these buffers. Hare distributes directory entries across
several servers so that processes can perform operations on a shared
directory in a scalable manner. Furthermore, Hare allows processes to
share file descriptors. These three techniques allow Hare to achieve good
scalability and performance for file-system-intensive POSIX applications.
Experiments with several applications and microbenchmarks on a 40-core
machine show that Hare allows these benchmarks to scale.
Thesis Supervisor(s): Frans Kaashoek, Nickolai Zeldovich