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

Efficient Write Caching for Asynchronous Write Requests

IP.com Disclosure Number: IPCOM000110014D
Original Publication Date: 1992-Oct-01
Included in the Prior Art Database: 2005-Mar-25
Document File: 2 page(s) / 65K

Publishing Venue

IBM

Related People

Corrigan, MJ: AUTHOR [+2]

Abstract

Disclosed is an efficient technique for caching disk write requests in environments where there is no dependency on the timely completion of the write requests.

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

Efficient Write Caching for Asynchronous Write Requests

       Disclosed is an efficient technique for caching disk
write requests in environments where there is no dependency on the
timely completion of the write requests.

      In computing systems, interfaces are often provided to allow
the asynchronous scheduling of disk writes.  This allows changed data
no longer needed by an application (or not needed in the near future)
to be written back to disk, thereby freeing up main storage for use
by other pages of data.  Frequently, however, write requests for the
same virtual pages are made repeatedly, resulting in excessive disk
activity.  This technique addresses this situation.

      The solution to this problem is to introduce a form of very
efficient write caching that allows the bundling of several disk
write requests that occur over a long period of time to be grouped
together and done in far fewer disk I/Os.

      With this method, attempts will be made to block together write
requests that are contained within a contiguous range of virtual
address space (and hence contiguous disk space, in most cases).  The
width of this range for a single blocked write is set to the maximum
physical I/O size supported by the machine.

      A circular queue of ranges that have one or more pending I/O
requests is maintained.  This queue can be easily implemented as a
simple array, with a head and tail index maintained.

      As each new write request comes in, the queue is checked to see
if...