Method and system for adaptive resource management

Electrical computers and digital data processing systems: input/ – Input/output data processing – Input/output command process

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C710S036000, C710S061000, C710S062000, C710S073000, C712S225000

Reexamination Certificate

active

06721812

ABSTRACT:

FIELD OF THE INVENTION
This invention relates to a method and system for managing resources for processing I/O requests from a host to a target device. The host has multiple adapters for transmitting the I/O requests to the target device. More specifically, the host assigns a number of I/O resources for issuing I/O requests to each adapter such that I/O requests are issued taking into account the number of I/O requests needed by each adapter and the number of I/O requests that can be processed by the system.
BACKGROUND OF THE INVENTION
In a host server with a connection to a target device, input/output (I/O) requests are used to establish an I/O connection for transferring information with the target device. As would be readily understood by one of ordinary skill in the art, an I/O request is any software operation that transfers data to or from a processor, and an I/O connection is a path or route through which I/O requests are transferred. A host is one or more computer processors, and a target device is any device external to the host that is connected to the host such that information may be exchanged with an I/O request. Target devices may be any device that adds capacity to the host, such as a disk storage device, any array of disk drives, printers or similar devices.
An adapter, or alternatively, a host bus adapter, is a physical device that allows one hardware or electronic interface to be accommodated and transmitted without a loss of functionality to another hardware or electronic interface. As used herein, an adapter is a device that establishes an I/O connection for transferring I/O requests, by adapting and transmitting information that is exchanged between the host and the target device.
Target devices generally have only a limited number of I/O requests that may be active at any given time. When the target device is unable to process a new I/O request, it returns the unfinished I/O request to the host with a “queue full” status. When the host issues an I/O request, the target device either accepts the I/O request and an I/O connection is established, or the target device returns the I/O with a queue full status. The host must reissue the unfinished I/O requests. Target devices generally are able to return only a limited number of I/O requests with a “queue full” status. If this number is surpassed, the target device never receives the request and thus, never responds to it. This situation is especially problematic because if the target device does not respond to multiple requests, the host may treat the connection to the target device as a bad connection. If the host treats the connection to the target device as a bad connection, it stops sending any I/O requests to the target device through the connection. In such a case, the connection may need to be reestablished manually.
One method for ensuring that all I/O requests are processed is to reissue the I/O request returned with a queue full status. The I/O request may be reissued multiple times until the target device accepts it. If the host does not receive any response from the target device as in the case discussed above, the host is configured to wait for a period of time for a response before it reissues the I/O request.
However, issuing I/O requests requires processor resources, and thus, if I/O requests must be reissued repeatedly, the system encounters decreased performance. Therefore, it becomes desirable to decrease the number of times an I/O request is reissued before it is accepted by the target device. One current method for decreasing the number of times an I/O request must be issued is to delay for a period of time before reissuing an I/O request that has been returned with a queue full status. There is an increased chance that the target device may have completed enough I/O requests, and thus, may have the necessary resources to process a new I/O request.
A disadvantage of this method is that the delay is an imprecise estimate of the amount of time the target device will take to process enough I/O requests such that new I/O requests may be processed. If the target device is able to accept new requests at the end of the delay, it is possible that the I/O request could have been processed before the end of the delay. In other words, the delay as an estimate of the amount of time that the target device needs to process enough I/O requests such that new I/O requests may be processed was too long. If the target device is not able to accept new requests at the end of the delay, the I/O request must be reissued, thus using processor time unnecessarily and decreasing performance in the system.
Another method involves reissuing a single I/O request after a delay until the target device accepts it. No other I/O requests are issued until the target device accepts the designated I/O request. Thus, all I/O requests are held by the host as “waiting” I/O requests until the designated I/O request is successfully accepted by the target device. Once the designated I/O request is accepted, all other waiting I/O requests are issued.
This method has one advantage of being able to use a shorter delay than the previously discussed method because only one I/O request will be issued repeatedly. Therefore, the I/O request does not have to compete with multiple I/O requests issued by the host. Because of the shorter delay, this method increases the precision with which the host determines that I/O requests may be sent to the target device.
One disadvantage of this method is that if a significant number of I/O requests are waiting on the host machine, the target device may be overwhelmed by I/O requests once the designated I/O request is accepted. This method does not provide for a way of monitoring the number of I/O requests that are issued simultaneously once the designated I/O request is accepted.
In order to minimize the number of I/O requests that are issued repeatedly, it is desirable in part to manage the I/O requests within the system such that the maximum number of I/O requests may be issued by the host with a minimal number of I/O requests returned by the target with a queue full status. These advantages and other advantages are provided by the system and method described herein, and numerous disadvantages of existing techniques are avoided.
SUMMARY OF THE INVENTION
In accordance with the system and method disclosed herein, a host manages and allocates I/O resources to issue I/O requests to a target device. By I/O resource is meant a software construct residing on the host that assigns the ability to issue a single I/O request. The host is configured such that it cannot issue an I/O request without an I/O resource, and each issued I/O request is associated with an I/O resource. As used herein, a used I/O resource is an I/O resource that has an issued I/O request associated therewith and an unused or available I/O resource is an I/O resource for which no I/O request has been issued.
A host is connected to the target device and has at least one adapter for sending I/O requests to the target device. Each I/O request is associated with one particular adapter. The host assigns a local resource to each adapter. By local resource is meant a variable number of I/O resources associated with each adapter.
As used herein, an I/O request that is sent from the host to the target device is called an issued I/O request. If there are no available I/O resources with which to issue an I/O request, then the I/O request remains unissued on the host and is called a waiting I/O request. Because I/O requests are associated with a particular adapter, the waiting I/O request are also associated with a particular adapter and thus, the waiting I/O requests must wait until the adapter with which they are associated has an available I/O resource.
In one aspect, a method involves sending I/O requests from a host to a target device. The host has at least one adapter for sending the I/O requests to the target device. If the target device cannot accept the I/O request, it returns a queue full status to the host, and the host sets the local resou

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and system for adaptive resource management 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 and system for adaptive resource management, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for adaptive resource management will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3197356

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.