Modern computer systems are complex and often require many hardware components working in concert to accomplish a single task. However, at any instant of time, it is highly unlikely that every component is being used, or being used at its full capacity. This results in idling system resources, e.g., idle CPU cycles, unoccupied memory and disk capacity, unused network bandwidth. Instead of wasting these resources, my research has shown they can often be harnessed to enhance a system’s energy-efficiency, performance, and/or fault-tolerance.
Although, there are many types of wasted resources, this talk will primarily focus on storage resources. Specifically, I will show how to use free disk capacity to improve a disk’s performance and energy-efficiency via my work on Free Space File System (FS2). Unlike traditional file systems, where unused disk capacity is simply wasted, FS2 actively takes advantage of it by replicating temporally-related data blocks that were poorly placed by the file system and then using it to place them closer to one another on the disk, thus allowing the disk drive to work harder but more efficiently. The performance and energy benefits of FS2 cost users nothing as only idle system resources are used. Ongoing work extends these techniques in the direction of fault-tolerance improvement of data on disk.