Electrical computers and digital data processing systems: input/ – Input/output data processing – Input/output command process
Reexamination Certificate
2000-12-06
2003-12-16
Gaffin, Jeffrey (Department: 2182)
Electrical computers and digital data processing systems: input/
Input/output data processing
Input/output command process
C710S006000, C710S033000, C710S036000, C710S038000
Reexamination Certificate
active
06665739
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention generally relates to data processing systems including one or more hosts and one or more data storage systems, such as a disk array, or direct access, storage device, with multiple physical disk drives and more specifically to a method and apparatus for enabling multiple hosts to issue optimized overlapping input-output, or I/O, requests to a particular logical device in the data storage system.
2. Description of Related Art
As the capabilities of data processing systems have increased, applications for use in those data processing systems have become more sophisticated. Now a data processing system may contain multiple hosts operating with independent host applications that access data in a large capacity data storage system either directly or over a network. Today, data storage systems are generally divided into logical devices or into blocks called by other names, such as logical volumes, data sets, files, etc. It is highly desirable that a data storage system in which a single logical device, that may store multiple files, be enabled to handle multiple concurrent requests for access to different files even from one or more different hosts and host applications.
A conventional data processing system includes a main frame computer or host including multiple central processors that interact with a data storage system. The data storage system generally includes a “disk array storage device,” or “direct access storage device” (e.g., a “DASD”) in which multiple physical disk drives are organized in multiple logical devices. The host communicates with the DASD through I/O requests provided by the operating system associated with the host. The host operating system heretofore has generally limited accesses to a given logical device to a single access at a time. For example, in the known MVS operating system, one unit control block (UCB) is assigned to each logical device. When a first I/O request identifies a file or dataset in a logical device, a UCB assigned to that logical device is set to a busy state until the entire I/O request is completed. Any following requests for the same logical device generated during the interval of the first request were queued to await the availability of that one UCB even though the I/O request was to a different file or dataset. Consequently, this feature forced all the I/O requests to a single logical device to be handled in seriatim.
There are some applications in which such an I/O request serialization may not adversely effect all operations. For example, in data storage systems that incorporate cache memory with the physical disk drives write operations merely transfer data to the cache memory. Read operations that identify data within the cache memory are handled in a minimal time so there is a minimal delay until a next read or write operation can be started. If it could be assured that all such requests could be handled in the cache memory, serialization would impose a minimal penalty. However, in most applications data will be required that is not in the cache memory, so access to a physical disk drive for the data will be necessary. The resulting interval for transferring data from the physical disk drive to the cache memory is significantly longer than the time to transfer data between the host and the cache memory. Consequently, other write and read requests, that might otherwise access data already in the cache, are delayed until the read miss operation has been completed. In these situations serialization adversely affects host processing significantly.
In accordance with one new approach an operating system that normally uses one unit control block, or UCB, defines that UCB as a “base UCB”. A number of unassigned UCB's are allocated to the same logical device. These are known as alias UCB's. In accordance with this approach a host can issue concurrent or overlapped I/O requests by assigning each different request to one of the base or alias UCB's up to the total number of UCB's allocated to the logical device. However, this approach is imbedded in an upgrade to an existing operating system. It has not been possible to retrofit existing operating systems with this feature. As a result in many installations there is a strong reluctance to adopt this desirable feature because significant personnel and equipment resources must be allocated to the installation of such an upgrade. What is needed is an ability to provide existing operating systems with a parallel access feature.
In the MVS operating system an I/O request takes the form of a number of channel command words (or CCW's). An access method in MVS responds to an I/O request by generating, as its first CCW, a Define Extent CCW that defines the total range of locations that will be locked during any given I/O request. Some prior software tends to assign a default value in the Define Extent CCW that includes the entire logical device as the extent. Following channel command words in the I/O request specify read or write operations which identify the starting and ending locations of one or more blocks of data or whole tracks to be actually transferred. Typically this “required extent” is significantly smaller than the size of the defined extent established by the Define Extent CCW. When this occurs, it becomes very difficult to realize the full benefit of the parallel access activity. Locking large portions of or the entirety of a logical device effectively serializes operations in the DASD as successive I/O requests are generated by the operating system.
Multiple reads to the same logical device can be readily accommodated particularly when the data being read lies in the cache memory. Such situations generally occur when multiple host systems have access to the same data. When a write operation occurs, it is necessary to block any subsequent read operations to avoid any overlaps that could generate corrupt data. In accordance with the prior art, the entire extent established by the Define Extent command is blocked for a write operation. Consequently, the introduction of a write operation can materially effect the throughput of subsequent read operations. What is needed is a way to optimize the extents to minimize any delays that are produced and to enable a greater flexibility in handling multiple I/O requests, especially when writing data.
SUMMARY
Therefore it is an object of this invention to provide a method and apparatus for allowing multiple concurrent accesses to a single logical device in a data storage system.
Another object of this invention is to provide multiple concurrent accesses to a single logical device in a data storage system utilizing a conventional operating system.
Still another object of this invention is to provide a method and apparatus for optimizing multiple input/output requests directed to a single logical device in a data storage system.
Yet another object of this invention is to provide a method and apparatus for optimizing multiple input/output requests to a single logical device in a data storage system capable of accommodating multiple concurrent or overlapped accesses.
Yet still another object of this invention is to provide the capability of accessing the same logical device in a data storage system from multiple hosts with explicit allegiances.
Still another object of this invention is to provide the capability of accessing the same logical device in a data storage system from multiple hosts with explicit allegiances where the requests for access are overlapped.
Still another object of this invention is to enable multiple hosts to access a logical device in a data storage system with explicit allegiances wherein each I/O request is optimized.
Still another object of this invention is to provide the ability to direct multiple I/O requests from multiple hosts with explicit allegiances in combination with the capability of accommodating multiple concurrent or overlapped I/O requests.
In accordance with this invention a host can generate overlapped input-ou
Fairchild William R.
Farley Martin
LeCrone Douglas E.
Moreshet Hana
Murphy Daniel P.
EMC Corporation
Gaffin Jeffrey
Herbster George A.
Schneider Joshua D
LandOfFree
Method for enabling overlapped input/output requests to a... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method for enabling overlapped input/output requests to a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method for enabling overlapped input/output requests to a... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3145100