1. Technical Field
This application generally relates to servicing requests, and more particularly to techniques used in connection with prioritizing requests.
2. Description of Related Art
Computer systems may include different resources used by one or more host processors. Resources and host processors in a computer system may be interconnected by one or more communication connections. These resources may include, for example, data storage devices such as those included in the data storage systems manufactured by EMC Corporation. These data storage systems may be coupled to one or more host processors and provide storage services to each host processor. Multiple data storage systems from one or more different vendors may be connected and may provide common data storage for one or more host processors in a computer system.
A host processor may perform a variety of data processing tasks and operations using the data storage system. For example, a host processor may perform basic system I/O operations in connection with data requests, such as data read and write operations.
Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units, disk drives, and disk interface units. Such storage devices are provided, for example, by EMC Corporation of Hopkinton, Mass. and disclosed in U.S. Pat. No. 5,206,939 to Yanai et al., U.S. Pat. No. 5,778,394 to Galtzur et al., U.S. Pat. No. 5,845,147 to Vishlitzky et al., and U.S. Pat. No. 5,857,208 to Ofek. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units. The logical disk units may or may not correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data stored therein.
In a computing environment, multiple storage devices, hosts, and perhaps other computing devices service requests that may be initiated from many independent other devices. For example, a number of independent hosts and other storage devices may request I/Os from a particular storage system. The data storage system may store the data from multiple applications executing on multiple hosts. The resource may service requests in accordance with an appropriate priority level or quality of service (QOS) selected for each of the different requesters. For example, the data storage system may service I/O requests from the different applications using different QOS levels. A QOS level may be associated with servicing an application's I/O requests in accordance with the particular priority objectives of the application.
One problem that may occur in connection with servicing requests is that the lower priority requests may not always be serviced within a reasonable or acceptable amount of time adversely affecting the requester. For example, an I/O request not serviced within a defined time period may cause the host and/or application to experience a timeout. The host may wait a defined amount of time for the I/O request to be serviced. If the I/O request is not serviced within the defined amount of time, the host may assume that the data storage system is unable to service the I/O request resulting in the timeout. Repeated occurrences of such timeouts may cause the requester, such as the application, to be unable to meet its performance objectives and may also have other adverse affects on the requester. For example, repeated I/O timeouts may cause the application and/or host to crash (e.g., taking the host and/or application offline and cease performing its operations.)