Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Intelligent, Adaptive Read-Ahead Buffering Mechanism

IP.com Disclosure Number: IPCOM000115428D
Original Publication Date: 1995-May-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 4 page(s) / 224K

Publishing Venue

IBM

Related People

Greer, TD: AUTHOR [+2]

Abstract

Disclosed is a method for activating and deactivating readahead buffering in a file server based on the behavior of the client that is invoking the read requests. Also provided is a method for determining when a file server client is reading sequentially, even when the network transport (and hence, the order of arrival of the read requests at the server) is unreliable. Definitions The following two terms are used throughout this paper to mean very specific portions of a file: segment in this paper will refer to a large segment of data from a file that fills a readahead buffer. block refers to the amount of data that a client will actually request in a single read operation.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 23% of the total text.

Intelligent, Adaptive Read-Ahead Buffering Mechanism

      Disclosed is a method for activating and deactivating readahead
buffering in a file server based on the behavior of the client that
is invoking the read requests.  Also provided is a method for
determining when a file server client is reading sequentially, even
when the network transport (and hence, the order of arrival of the
read requests at the server) is unreliable.
  Definitions
  The following two terms are used throughout this paper to mean
very specific portions of a file:
  segment   in this paper will refer to a large segment of data from
a
             file that fills a readahead buffer.
  block     refers to the amount of data that a client will actually
             request in a single read operation.  It is assumed that
a
             block is significantly smaller than a segment, although
the
             invention will still function properly (however, with
much
             less gain in performance) even if this premise is
untrue.

Parameters to Measure Client Behavior - The addition of the following
tuning parameters enables a method for intelligent, adaptive
readahead buffering by providing the information necessary for a file
server to help make decisions as to when readahead buffering should
be started, stopped, or resumed.

Minimum file size
       A file must be at least this large before readahead buffering
        will be started.  This allows for saving scarce resources for
        files and clients that will get the most benefit from them.

Minimum number of sequential reads
        This value is called the seqread_threshold.  This number of
        read requests for sequential file offsets must be received
        before readahead buffering is invoked.  For example, assuming
        seqread_threshold is set to 3, the client is reading in 4K
        blocks, readahead buffering will begin when 3 read requests
        are received for consecutive file blocks (such as file
        offsets 0, 4096, and 8192) from the target file.  Note that
        the detecting 'consecutive reads' may be nontrivial in the
        case of a file server in an unreliable network environment
        (for example, a UDP/IP network) or where client reads are
        made in parallel (as they are in many Network File System*
        (NFS*) clients).  A method for making this determination is
        offered below.

      Based on these parameters and a method for detecting sequential
reads (as described below), the file server can easily adapt its
behavior to that of the client.  For example, if the client stops
reading sequentially, readaheads are stopped.  Likewise, if
sequential reads resume later (according to the seqread_threshold),
readaheads will resume.

      Note that depending...