Browse Prior Art Database

Method for Improving the Host I/O Performance during Concurrent Copy

IP.com Disclosure Number: IPCOM000111189D
Original Publication Date: 1994-Feb-01
Included in the Prior Art Database: 2005-Mar-26
Document File: 2 page(s) / 129K

Publishing Venue

IBM

Related People

Bhatnagar, N: AUTHOR [+2]

Abstract

Concurrent Copy (a.k.a. remote dual copy) is IBM's new storage subsystem function. It is a method for getting a consistent copy of data that is actively being read and/or updated while a backup or dump operation is in progress. Concurrent Copy is one of a class of storage related functions in which it is necessary to retrieve a very large volume of data from disk drives. Other functions in this class having similar requirement includes rebuild for disk arrays and garbage collection in log structured storage systems. All these functions are carried out in the background, allowing a data set or disk drive volume to remain available continuously for foreground application activity.

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

Method for Improving the Host I/O Performance during Concurrent Copy

      Concurrent Copy (a.k.a.  remote dual copy) is IBM's new storage
subsystem function.  It is a method for getting a consistent copy of
data that is actively being read and/or updated while a backup or
dump operation is in progress.  Concurrent Copy is one of a class of
storage related functions in which it is necessary to retrieve a very
large volume of data from disk drives.  Other functions in this class
having similar requirement includes rebuild for disk arrays and
garbage collection in log structured storage systems.  All these
functions are carried out in the background, allowing a data set or
disk drive volume to remain available continuously for foreground
application activity.

      In order to complete a concurrent copy of a data set (or any of
the other functions in this class) in a reasonable amount of time, it
is important that the read operations required to retrieve the source
data be fairly efficient.  Each disk read access involves potentially
a seek and some rotational latency, so one way to attain good
efficiency is to read large amount (multiple tracks worth) of data
with each access.  This helps the efficiency and therefore the
completion time.  However, a normal system I/O arriving will
encounter long delay waiting for the background read to finish,
increasing the system I/O's response time.  This greatly degrades the
system's normal performance.

      A technique is described here by which the amount of
interference caused by the background function's reads is greatly
reduced without sacrificing its efficiency.  This technique takes
advantage of the fact that many newer disk drives come equipped with
a Look Ahead Buffer (LAB).  Furthermore, the LAB is segmented so as
to hold different threads of data.  Each buffer segment can hold
multiple sectors of data which is used for prefetch only, and not for
reuse caching.  When a read is serviced by such a disk drive, after
the data has been sent back to the host via the control unit, the
disk drive will autonomously continue to read the subsequent sectors
into one of the segments of the buffer.  Each segment functions as a
circular buffer, thus when a sector prefetched into the segment is
requested by any read command to the disk drive, the space occupied
by that sector and all preceding sectors is freed up for more
prefetching.  For example, if a segment contains sectors 519-537 and
sector 524 is accessed by the control unit, then the space for
sectors 519-524 is freed up.  This read-ahead action continues until
the segment is completely filled up, or until it is preempted by a
new I/O request arriving.  The read-ahead action is preemptable at
sector boundaries, therefore it produces negligible delay for the new
I/O request.  The delay is negligible because the time to read a
sector from the disk drive is only a small fraction of a disk
revolution time.  If some subseque...