Method and system for allocating memory for a command queue

Electrical computers and digital processing systems: memory – Storage accessing and control – Memory configuring

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S111000, C711S112000, C711S147000, C711S148000, C711S153000, C711S171000, C711S172000, C711S173000, C710S001000, C710S036000, C710S039000

Reexamination Certificate

active

06311257

ABSTRACT:

BACKGROUND OF THE INVENTION
The invention relates generally to methods and apparatus for improving the performance of a mass storage system.
Disk drive systems have grown enormously in both size and sophistication in recent years. These systems can typically include many large disk drive units controlled by a complex, multi-tasking, disk drive controller such as the EMC Symmetrix disk drive controller (a product of EMC Corporation, Hopkinton, Mass.). A large scale disk drive system can typically receive commands from a number of host computers and can control a number of disk drive mass storage devices, each mass storage device capable of storing in excess of several gigabytes of data. Each mass storage device can be representative of one or more logical volumes. Alternatively, a physical disk drive element may represent several of the logical volumes. The EMC Symmetrix data storage system is configured to include as many 4096 logical volumes.
Each logical volume has an associated command queue for receiving input/output command requests from one or more hosts connected to the disk drive system. A “queue”, in general, is nothing more than a multi-element data structure from which elements (e.g., command requests) can be removed in the same order in which they were inserted; that is, the queue follows a first-in-first-out (FIFO) constraint. Thus, input/output command requests are typically received in the command queue and executed in the order in which they are received. A command queue typically has a finite maximum length (i.e., predetermined number of records) so that when the queue is full, a host is not able to make a command request until a previously stored command request has been transferred and executed. Hosts of different types respond differently to a “queue full” message. For example, one type of host will simply wait and periodically poll the particular logical volume with its request. Another type of host, upon receiving a “queue full” message will change its mode of operation, for example, to limit the number of requests made in a give period of time. To return to its original mode of operation may require resetting the host (e.g., reboot).
SUMMARY OF THE INVENTION
The invention features a method, as well as a data storage system using the method, for efficiently allocating a static amount of buffer space (e.g., records) among a number of logical volumes of a data storage system on the basis of the computing environment within which the data storage system is used. By “computing environment” it is meant the number, type (i.e., manufacturer, model), and characteristics (e.g., communication protocol) of hosts connected to the data storage system.
In a general aspect of the invention, the method for providing input/output allocation between a number of hosts and a data storage system in a computing environment includes the following steps. The data storage system is provided from a plurality of logical volumes, each of the logical volumes including a command queue. Each command queue includes records, each for storing a command request. A memory pool is established from which records can be allocated to each command queue associated with each logical volume. The memory pool has a predetermined number of records which can be allocated by the command queues of the logical volumes. Based on the computing environment, one of a number of allocation schemes for allocating records to a command queue of a logical volume is selected.
Allocating records to command queues on the basis of the computing environment has numerous advantages, particularly for enterprise data storage systems which interface with different types of hosts. In general, the method reduces the possibility that any of a number of hosts connected to the data storage system will receive a “queue full” message from the storage system. The method recognizes that hosts of different types generally behave differently when communicating with a data storage system and their tolerance to changes may be different. For example, one type of host may be configured to operate with a data storage system in which certain data objects (e.g., stack or queue) and their size are predefined. Changing the size of these data objects may cause problems during communication between the storage system and host. On the other hand, a host of a different type may be less sensitive to such changes. The method allows each of the different hosts to be connected to and simultaneously use the data storage system by selecting the most efficient and effective allocation scheme that the host is able to use.
Embodiments of this aspect of the invention may include one or more of the following steps. Selecting one of the allocation schemes includes determining the type of hosts connected to the data storage system, for example, whether the host can tolerate a variable-length command queue.
If the host cannot tolerate a variable-length command queue, a strict allocation scheme is generally preferred. The strict allocation scheme includes determining the number of logical devices in the data storage system, and then determining the number of records for each command queue by dividing the predetermined number of records associated with the memory pool by the total number of logical devices. Using the strict allocation scheme is preferably used if all of the hosts connected to the data storage system cannot tolerate a variable-length command queue. In this case, the method recognizes that the most effective way of allocating records from the memory pool is to divide them evenly among the command queues of each logical volume.
If all of the hosts can tolerate a variable-length command queue, a no-maximum allocation scheme may be preferable. In this scheme, each logical volume can add as many records as there are available from the memory pool.
In applications where one host connected to the data storage system can tolerate a variable-length command queue, and another host connected to the storage system cannot, a pseudo-maximum allocation scheme can be used. The pseudo-maximum allocation scheme includes determining the number of logical devices in the data storage system, and then determining a maximum number of records which can be added to a logical volume, the maximum number being greater than the predetermined number of records associated with the memory pool divided by the number of logical devices. Thus, the method recognizes that at any given point of time, the total number of command requests sent by all of the hosts will almost always be less than the total number of available queue records.
The command queues for each logical volume are configured as free list data structures and allocating records to a command queue is performed one record at a time.
In another aspect of the invention, a data storage system includes a controller which implements the method approach described above.
Other advantages and features of the invention will be apparent from the following description and from the claims.


REFERENCES:
patent: 5561785 (1996-10-01), Blandy et al.
patent: 5651111 (1997-07-01), McKeeman et al.
patent: 5796413 (1998-08-01), Shipp et al.
patent: 6000011 (1999-12-01), Freerksen et al.
patent: 6141707 (2000-10-01), Halligan et al.

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

Rate now

     

Profile ID: LFUS-PAI-O-2569397

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