Extensible file system (ELFS): an object-oriented approach to high performance file I/O

  • Authors:
  • John F. Karpovich;Andrew S. Grimshaw;James C. French

  • Affiliations:
  • Department of Computer Science, University of Virginia;Department of Computer Science, University of Virginia;Department of Computer Science, University of Virginia

  • Venue:
  • OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
  • Year:
  • 1994

Quantified Score

Hi-index 0.00

Visualization

Abstract

Scientific applications often manipulate very large sets of persistent data. Over the past decade, advances in disk storage device performance have consistently been outpaced by advances in the performance of the rest of the computer system. As a result, many scientific applications have become I/O-bound, i.e. their run-times are dominated by the time spent performing I/O operations. Consequently, the performance of I/O operations has become critical for high performance in these applications. The ELFS approach is designed to address the issue of high performance I/O by treating files as typed objects. Typed file objects can exploit knowledge about the file structure and type of data. Typed file objects can selectively apply techniques such as prefetching, parallel asynchronous file access, and caching to improve performance. Also, by typing objects, the interface to the user can be improved in two ways. First, the interface can be made easier to use by presenting file operations in a more natural manner to the user. Second, the interface can allow the user to provide an “oracle” about access patterns, that can allow the file object to improve performance. By combining these concepts with the object-oriented paradigm, the goal of the ELFS methodology is to create flexible, extensible file classes that are easy to use while achieving high performance. In this paper we present the ELFS approach and our experiences with the design and implementation of two file classes: a two dimensional dense matrix file class and a multidimensional range searching file class.