In this talk, I will argue for a new paradigm for designing system software, called self-tuning, using our experience in designing the xFS network file system as a concrete example. Traditionally, file systems have been developed and optimized for a fixed set of technology and workload assumptions dominant at the time when the system was designed; unfortunately, the long lifetimes of file system software coupled with the dramatic rate of change in hardware technology has led many systems (e.g., UNIX FFS) to be used well beyond their applicability. The result has been systems with brittle performance characteristics, behaving well in some cases and poorly in others.
A self-tuning system, by contrast, (i) measures the underlying hardware characteristics, (ii) tracks changes in the offered workload, and (iii) adapts system behavior to match. Of course, the self-tuning paradigm requires careful attention to algorithm design. Our work in this area is still very preliminary, but I will demonstrate that significant performance improvements are possible even for common case workloads by using self-tuning algorithms in the design of network file systems.
Back to LESSLast modified: December 4, 1997