Information and control in file system buffer management

  • Authors:
  • Andrea C. Arpaci-Dusseau;Remzi H. Arpaci-Dusseau;Nathan Christopher Burnett

  • Affiliations:
  • The University of Wisconsin - Madison;The University of Wisconsin - Madison;The University of Wisconsin - Madison

  • Venue:
  • Information and control in file system buffer management
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

By implementing file system caching within the operating system, applications are required to cede to the OS a degree of control over memory utilization and IO scheduling. This dissertation explores ways in which applications can rediscover information hidden by the file system buffer cache and reclaim some of the control ceded to it. We find that this can be achieved without a wholesale redesign of either the operating systems or applications concerned. We present Dust a tool to automatically determine the buffer cache replacement policy of an operating system. We describe a cache-aware web server. Using the information gained through Dust, our cache-aware web server is able to infer the contents of the buffer cache. It uses this information to schedule web connections on an in-cache-first basis, improving throughput and response time. Implicit information can be imprecise. To address this limitation, we modify Linux and NetBSD to expose a list of pages which are about to be evicted. This explicit information is always accurate. We present InfoReplace, a user library which observes that list and touches pages that should remain cached, allowing applications to transform the kernel policy into one of the application's choice. Some applications, such as those that use write-ahead logging, require control over the order in which data is written to disk. We propose two new interfaces by which applications can express write ordering constraints to the operating system. File system barriers introduce the barrier( ) system call. The operating system guarantees that no write operations will be reordered across a barrier. Asynchronous graphs allows applications to specify ordering constraints on a per-write-operation basis. Both would be difficult to implement with only information.