Method and apparatus for processing input/output commands in a storage system having a command queue

Number of patents in Portfolio can not be more than 2000

United States of America Patent

PATENT NO 5426736
SERIAL NO

08067368

Stats

ATTORNEY / AGENT: (SPONSORED)

Importance

Loading Importance Indicators... loading....

Abstract

See full text

An apparatus and method for dynamically tuning queue depths to provide improved storage subsystem throughput and resource utilization across a full range of I/O loads is described. The maximum allowable queue depth for a command queue is adjusted at predetermined cycle intervals on the basis of an I/O workload measured during the cycle. In one embodiment of the invention, the interval is a fixed system parameter, but in an alternative embodiment, the interval size is automatically adjusted to keep the rate of adjustment of the maximum allowable queue depth within a preferred range. In a preferred embodiment, the size of each I/O command is stored before it is sent to the device queue. Read, write and miscellaneous I/O commands may be queued and managed separately. After a predetermined number of commands have been stored, the predominant command size during the cycle interval is determined. The predominant command size is used to select a new maximum allowable queue depth, from a set of established values preferably selected so that, at least to a first order approximation, the maximum allowable queue depth is inversely proportional to the predominant command size. Preferably, this value is selected from a set of values which have been predetermined for all possible command sizes allowed for the system.

Loading the Abstract Image... loading....

First Claim

See full text

Family

Loading Family data... loading....

Patent Owner(s)

Patent OwnerAddressTotal Patents
HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.HOUSTON, TX13415

International Classification(s)

  • [Classification Symbol]
  • [Patents Count]

Inventor(s)

Inventor Name Address # of filed Patents Total Citations
Guineau, III William J Nashua, NH 1 76

Cited Art Landscape

Patent Info (Count) # Cites Year
 
INTERNATIONAL BUSINESS MACHINES CORPORATION (3)
* 4603382 Dynamic buffer reallocation 159 1984
* 4860193 System for efficiently transferring data between a high speed channel and a low speed I/O device 114 1986
* 5179662 Optimized I/O buffers having the ability to increase or decrease in size to meet system requirements 42 1989
 
MAXTOR CORPORATION (1)
* 5210829 Adjustable threshold for buffer management 73 1990
 
NEC CORPORATION (1)
* 5276677 Predictive congestion control of high-speed wide area networks 48 1992
 
HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. (2)
* 4392200 Cached multiprocessor system with pipeline timing 102 1981
* 4449182 Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems 205 1981
 
DIGITAL EQUIPMENT CORPORATION (1)
* 4349871 Duplicate tag store for cached multiprocessor system 48 1980
 
WISTRON CORPORATION (1)
* 5276840 Disk caching method for writing data from computer memory including a step of writing a plurality of physically adjacent blocks in a single I/O operation 50 1991
 
INTELLECTUAL VENTURES I LLC (1)
* 5247626 FDDI controller having flexible buffer management 93 1990
 
MICROSOFT TECHNOLOGY LICENSING, LLC (1)
* 5257370 Method and system for optimizing data caching in a disk-based computer system 37 1989
 
TCI-DELAWARE INCORPORATED, A CORP. OF DEL. (1)
* 4378588 Buffer control for a data path system 81 1980
 
HITACHI, LTD. (1)
* 5046039 Buffer management system 28 1988
* Cited By Examiner

Patent Citation Ranking

Forward Cite Landscape

Patent Info (Count) # Cites Year
 
Other [Check patent profile for assignment information] (2)
* 2005/0193,168 Storage subsystem and performance tuning method 4 2005
* 2007/0283,112 Method and apparatus for increasing an amount of memory on demand when monitoring remote mirroring performance 9 2007
 
Microunity Systems Engineering, Inc. (2)
8769248 System and apparatus for group floating-point inflate and deflate operations 1 2012
8683182 System and apparatus for group floating-point inflate and deflate operations 7 2012
 
MEDIATEK INC. (1)
* 2008/0270,657 Management of Transfer of Commands 2 2008
 
HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP (7)
7917903 Quality of service controller and method for a data storage system 11 2003
* 7643983 Data storage system emulation 4 2003
* 2004/0194,095 Quality of service controller and method for a data storage system 36 2003
* 2004/0193,397 Data storage system emulation 34 2003
* 9323473 Virtual tape library 0 2009
* 2010/0180,074 VIRTUAL TAPE LIBRARY 6 2009
9690506 Virtual tape library 0 2016
 
FREESCALE SEMICONDUCTOR, INC. (1)
* 5673396 Adjustable depth/width FIFO buffer for variable width data transfers 24 1994
 
JUNIPER NETWORKS, INC. (1)
* 5978355 System and method for controlling re-assembling buffer for transmission data in a form of data cell 13 1997
 
YOUNGTEK ELECTRONICS CORPOSRATION (2)
8375114 Device loading in storage networks 0 2004
* 2005/0229,182 Device loading in storage networks 10 2004
 
HGST NETHERLANDS B.V. (1)
* 6640258 Method and apparatus for command queue ordering with a sort time reduction algorithm 6 2001
 
DOT HILL SYSTEMS CORPORATION (2)
7606944 Dynamic input/output optimization within a storage controller 6 2007
* 2008/0282,030 DYNAMIC INPUT/OUTPUT OPTIMIZATION WITHIN A STORAGE CONTROLLER 17 2007
 
SERVICENOW, INC. (2)
7624208 Method, system, and computer program for managing a queuing system 0 2005
* 2006/0161,920 Method, system, and computer program for managing a queuing system 12 2005
 
PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA (1)
* 6473809 Scheduling method and apparatus for network-attached storage devices and other systems 8 1999
 
HITACHI, LTD. (16)
7039785 Method and apparatus for increasing an amount of memory on demand when monitoring remote mirroring performance 8 2004
7809906 Device for performance tuning in a system 5 2004
* 2005/0193,167 Storage subsystem and performance tuning method 31 2004
* 7155587 Storage subsystem and performance tuning method 6 2005
7136983 Method and apparatus for increasing an amount of memory on demand when monitoring remote mirroring performance 7 2006
7278007 Method and apparatus for increasing an amount of memory on demand when monitoring remote mirroring performance 5 2006
7624241 Storage subsystem and performance tuning method 7 2006
* 2007/0055,820 Storage subsystem and performance tuning method 7 2006
7555622 Method and apparatus for increasing an amount of memory on demand when monitoring remote mirroring performance 6 2007
7725676 Method and apparatus for increasing an amount of memory on demand when monitoring remote mirroring performance 3 2009
* 2009/0216,978 METHOD AND APPARATUS FOR INCREASING AN AMOUNT OF MEMORY ON DEMAND WHEN MONITORING REMOTE MIRRORING PERFORMANCE 1 2009
7917721 Method and apparatus for increasing an amount of memory on demand when monitoring remote mirroring performance 2 2010
8046554 Storage subsystem and performance tuning method 0 2010
8112599 Method and apparatus for increasing an amount of memory on demand when monitoring remote mirroring performance 1 2011
8281098 Storage subsystem and performance tuning method 2 2011
8392688 Method and apparatus for increasing an amount of memory on demand when monitoring remote mirroring performance 0 2012
 
ORACLE AMERICA, INC. (14)
6246680 Highly integrated multi-layer switch element architecture 91 1997
* 6128666 Distributed VLAN mechanism for packet field replacement in a multi-layered switched network element using a control field/signal for indicating modification of a packet with a database search engine 183 1997
* 6119196 System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates 129 1997
* 6088356 System and method for a multi-layer network element 219 1997
* 6081512 Spanning tree support in a high performance network device 144 1997
* 6081522 System and method for a multi-layer network element 137 1997
* 6052738 Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory 33 1997
* 6049528 Trunking ethernet-compatible networks 223 1997
* 6044087 Interface for a highly integrated ethernet network element 25 1997
* 6044418 Method and apparatus for dynamically resizing queues utilizing programmable partition pointers 34 1997
* 6016310 Trunking support in a high performance network device 127 1997
* 6014380 Mechanism for packet field replacement in a multi-layer distributed network element 113 1997
* 5938736 Search engine architecture for a high performance multi-layer switch element 201 1997
* 5920566 Routing in a multi-layer distributed network element 230 1997
 
SEAGATE TECHNOLOGY LLC (6)
7890696 Command queue ordering with directional and floating write bands 8 2006
* 2008/0005,458 Command queue ordering with directional and floating write bands 0 2006
8244975 Command queue ordering by flipping active write zones 7 2006
7644206 Command queue ordering by positionally pushing access commands 2 2006
* 2008/0059,708 Command queue ordering by positionally pushing access commands 2 2006
* 2008/0005,463 Command queue ordering by flipping active write zones 2 2006
 
MARVELL INTERNATIONAL LTD. (4)
* 8566652 Command queuing in disk drives 5 2012
8935593 Method and apparatus for flexible buffers in an XOR engine 2 2013
9021147 Command queuing in disk drives 2 2013
9244762 Method and apparatus for flexible buffers in an XOR engine 0 2014
 
XIOTECH CORPORATION (1)
* 2005/0278,704 Method, apparatus, and program storage device for detecting failures in data flow in high-availability storage systems 2 2004
 
GOOGLE TECHNOLOGY HOLDINGS LLC (1)
6724776 Method and system for providing optimal discard fraction 13 1999
 
Creative Technology Ltd (1)
* 5659799 System for controlling disk drive by varying disk rotation speed when buffered data is above high or below low threshold for predetermined damping period 20 1995
 
INTERNATIONAL BUSINESS MACHINES CORPORATION (15)
* 6460133 Queue resource tracking in a multiprocessor system 13 1999
7986625 Resource-aware system, method and program product for managing request traffic based on a management policy 10 2002
* 2004/0109,410 Resource-aware system, method and program product for managing request traffic based on a management policy 35 2002
* 7756863 System and method of enhancing decoding performance of text indexes 1 2005
* 7849167 Dynamic distributed adjustment of maximum use of a shared storage resource 1 2008
* 2009/0259,752 DYNAMIC DISTRIBUTED ADJUSTMENT OF MAXIMUM USE OF A SHARED STORAGE RESOURCE 9 2008
* 8468299 Virtualized storage performance controller 0 2008
* 2011/0047,329 Virtualized Storage Performance Controller 4 2008
8898403 Self-adjusting SCSI storage port queue 0 2010
* 2011/0225,374 SELF-ADJUSTING SCSI STORAGE PORT QUEUE 3 2010
* 8234270 System for enhancing decoding performance of text indexes 1 2010
* 2010/0217,761 System and Method of Enhancing Decoding Performance of Text Indexes 0 2010
* 9372815 Estimating processor load using peripheral adapter queue behavior 0 2011
8904122 Self-adjusting SCSI storage port queue 0 2012
9755989 Resource-aware system, method and program product for managing request traffic based on a management policy 0 2014
 
SUMMIT DATA SYSTEMS LLC (3)
* 6134630 High-performance bus architecture for disk array system 24 1998
6421760 Disk array controller, and components thereof, for use with ATA disk drives 33 2000
6549981 Disk array system with controllers that automate host side of ATA interface 31 2002
 
VMWARE, INC. (2)
* 8892716 Quality of service management using host specific values 0 2014
* 2014/0215,044 QUALITY OF SERVICE MANAGEMENT USING HOST SPECIFIC VALUES 1 2014
 
WESTERN DIGITAL TECHNOLOGIES, INC. (2)
* 5991825 System for handling missed revolution in a disk drive by aborting the execution of primary command and executing secondary command if a missed revolution occurs 38 1997
* 6272565 Method, system, and program for reordering a queue of input/output (I/O) commands into buckets defining ranges of consecutive sector numbers in a storage medium and performing iterations of a selection routine to select and I/O command to execute 35 1999
 
NETAPP, INC. (1)
* 6157963 System controller with plurality of memory queues for prioritized scheduling of I/O requests from priority assigned clients 107 1998
 
SK HYNIX INC. (2)
* 6898664 Optimizing performance for a storage device within a computer system 10 2002
* 2004/0044,846 Optimizing performance for a storage device within a computer system 7 2002
 
SUN MICROSYSTEMS, INC. (2)
* 6094435 System and method for a quality of service in a multi-layer network element 184 1997
* 6061362 Interface for a highly integrated ethernet network element 31 1999
 
DELL PRODUCTS L.P. (2)
* 6421723 Method and system for establishing a storage area network configuration 68 1999
7225242 System and method for matching storage device queue depth to server command queue depth 12 2001
 
ARM LIMITED (2)
* 8260991 Data processing apparatus and method for measuring a value of a predetermined property of transactions 0 2009
* 2011/0066,780 Data processing apparatus and method for measuring a value of a predetermined property of transactions 2 2009
 
INTEL CORPORATION (1)
* 6931486 Method and apparatus for coalescing two or more transacting requests 27 2001
 
NVIDIA CORPORATION (1)
* 5805930 System for FIFO informing the availability of stages to store commands which include data and virtual address sent directly from application programs 18 1997
 
TEAC CORPORATION (1)
* 5991835 Peripheral data storage device in which time interval used for data transfer from relatively fast buffer memory to relatively slower main memory is selected in view of average of time intervals during which data blocks were recently received from host 14 1995
 
UNISYS CORPORATION (1)
* 5546550 Method for assuring equal access to all input/output devices coupled to a SCSI bus 9 1994
* Cited By Examiner