← Back to Patent Explorer
US5680539A Expired / Lapsed US ⏱️ 0.0 years remaining

Disk array system which performs data reconstruction with dynamic load balancing and user-specified disk array bandwidth for reconstruction operation to maintain predictable degradation

Assignee: Dell USA LP
•
Filing: 1995-07-11
•
Granted: 1997-10-21
•
Expires: 2015-07-11
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A disk controller and method which dynamically compensates for host command queue depth during the data rebuild process and thus maintains a predictable level of performance during data reconstruction operations. During non-idle periods, a rebuild task monitors the current host command queue depth generated by the host and submits additional rebuild requests accordingly. Rebuild requests are preferably sized based on the current rebuild queue depth and the user-selected performance allotment for rebuild operations to maintain a predictable level of performance degradation. Therefore, the rebuild task dynamically compensates for host command queue depth by queueing an appropriate number of rebuild requests of varying size so that neither requesting task dominates. This compensates for instances when the host queues requests deeply, such as during write cache flushing, while also preserving responsiveness when the host has one single thread of activity. In an alternate embodiment, the disk controller includes a first queue which is relatively deep and a second intermediate queue which is relatively shallow. Host requests are queued into the first queue and are then filtered into the intermediate queue. The rebuild task queues rebuild requests directly into the intermediate level queue, whose command queue depth is limited to very few requests. In this embodiment, the variation in command queue depth due to host requests is filtered out and by the first queue, and performance degradation is controlled more consistently.

Inventors

  • 👤 Craig Jones

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 21:00
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1402; G06F11/1415; G06F11/1435

Claims Analysis

Total Claims: 28
Claim 1
Independent Claim 278 words
A method for maintaining predictable performance of a disk array system during data reconstruction operations under varying disk loads, wherein the disk array system comprises a disk controller and a disk array coupled to the disk controller, wherein the disk array comprises a plurality of disk drives, wherein when a new drive is inserted in the disk array, the disk controller performs data reconstruction operations to place data on the new drive, the method comprising the steps of: receiving one or more requests from a host, wherein said host requests comprise reads or writes of data on the disk array, wherein said one or more host requests are stored on an execution queue for execution; determining a number of said host requests on said execution queue; creating one or more rebuild requests to rebuild data on the new drive; placing a number of said rebuild requests on said execution queue, wherein said number of said rebuild requests placed on said execution queue is determined in response to said step of determining said number of said host requests on said execution queue, wherein said step of placing places said number of said rebuild requests on said execution queue to dynamically compensate for said number of host requests on said execution queue, and receiving a user-specified amount of disk array bandwidth to be used by the disk controller for said data reconstruction operations, wherein said step of creating said one or more rebuild requests includes creating said rebuild requests of a certain size based on said determined number of host requests on said execution queue and said user-specified amount of disk array bandwidth to be used for said reconstruction operations.
Claim 2
Independent Claim 278 words
A method for maintaining predictable performance of a disk array system during data reconstruction operations under varying disk loads, wherein the disk array system comprises a disk controller and a disk array coupled to the disk controller, wherein the disk array comprises a plurality of disk drives, wherein when a new drive is inserted in the disk array, the disk controller performs data reconstruction operations to place data on the new drive, the method comprising the steps of: receiving one or more requests from a host, wherein said host requests comprise reads or writes of data on the disk array, wherein said one or more host requests are stored on an execution queue for execution; determining a number of said host requests on said execution queue; creating one or more rebuild requests to rebuild data on the new drive; placing a number of said rebuild requests on said execution queue, wherein said number of said rebuild requests placed on said execution queue is determined in response to said step of determining said number of said host requests on said execution queue, wherein said step of placing places said number of said rebuild requests on said execution queue to dynamically compensate for said number of host requests on said execution queue, and receiving a user-specified amount of disk array bandwidth to be used by the disk controller for said data reconstruction operations, wherein said step of creating said one or more rebuild requests includes creating said rebuild requests of a certain size based on said determined number of host requests on said execution queue and said user-specified amount of disk array bandwidth to be used for said reconstruction operations.
Claim 3
Dependent Claim 58 words
The method of claim 1, further comprising: repeatedly performing said steps of determining said number of host requests on said execution queue, creating one or more rebuild requests to rebuild data on the new drive, and placing said number of said rebuild requests on said execution queue until said data reconstruction operations have completed on said new drive.
Claim 4
Dependent Claim 50 words
The method of claim 1, further comprising: executing said number of said host requests and said number of said rebuild requests on said execution queue, wherein execution of said number of said rebuild requests results in a predictable level of degradation to execution of said number of said host requests.
Claim 5
Dependent Claim 93 words
The method of claim 3, further comprising: repeatedly performing said steps of determining said number of host requests on said execution queue, creating one or more rebuild requests to rebuild data on the new drive, placing said number of said rebuild requests on said execution queue, and executing said number of said host requests and said number of said rebuild requests until said data reconstruction operations have completed on said new drive; wherein said disk array system maintains a predictable level of performance of said host requests during said step of repeatedly performing.
Claim 6
Dependent Claim 67 words
The method of claim 1, wherein said step of placing comprises placing said number of said rebuild requests on said execution queue to maintain an approximately constant proportion of said number of said rebuild requests to said determined number of said host read requests on said execution queue, wherein execution of said rebuild requests results in a predictable level of degradation to execution of said host requests.
Claim 7
Dependent Claim 28 words
The method of claim 1, wherein said step of receiving said one or more host requests receives a varying load of host requests from said host over time.
Claim 8
Dependent Claim 63 words
The method of claim 1, further comprising: adjusting a Desired Rebuild Queue Depth variable in response to said step of determining said number of host requests on said execution queue; wherein said step of placing comprises: examining said Desired Rebuild Queue Depth variable; and placing a number of said rebuild requests on said execution queue based on said Desired Rebuild Queue Depth variable.
Claim 9
Dependent Claim 68 words
The method of claim 7, wherein said step of determining said number of host requests on said execution queue determines if host queue depth is increasing, wherein said step of adjusting said Desired Rebuild Queue Depth variable further comprises: increasing said Desired Rebuild Queue Depth variable if said host queue depth is increasing; and decreasing said Desired Rebuild Queue Depth variable if said host queue depth is decreasing.
Claim 10
Dependent Claim 39 words
The method of claim 1, further comprising the steps of: a disk drive failing in the disk array; and replacing said failed disk drive with the new drive prior to said step of creating said plurality of rebuild requests.
Claim 11
Dependent Claim 259 words
A disk array system which maintains predictable performance during data reconstruction operations under varying disk loads, comprising: a disk array comprising a plurality of disk drives, said plurality of disk drives including a new drive; an execution queue for storing data requests for said disk array; and a disk controller coupled to said execution queue and said disk array which performs data reconstruction operations to place data on the new drive in said disk array, wherein the disk controller comprises: means for receiving one or more requests from a host, wherein said host requests comprise reads or writes of data on the disk array, wherein said receiving means places said one or more host requests on said execution queue for execution; means for determining a number of host requests on said execution queue; means for creating a plurality of rebuild requests to rebuild data on the new drive; means for placing a number of said rebuild requests on said execution queue, wherein said means for placing places said number of said rebuild requests on said execution queue to dynamically compensate for said number of host requests on said execution queue; and means for receiving a user-specified amount of disk array bandwidth to be used by the disk controller for said data reconstruction operations, wherein said means for creating said one or more rebuild requests creates said rebuild requests of a certain size based on said determined number of host requests on said execution queue and said user-specified amount of disk array bandwidth to be used for said reconstruction operations.
Claim 12
Dependent Claim 259 words
A disk array system which maintains predictable performance during data reconstruction operations under varying disk loads, comprising: a disk array comprising a plurality of disk drives, said plurality of disk drives including a new drive; an execution queue for storing data requests for said disk array; and a disk controller coupled to said execution queue and said disk array which performs data reconstruction operations to place data on the new drive in said disk array, wherein the disk controller comprises: means for receiving one or more requests from a host, wherein said host requests comprise reads or writes of data on the disk array, wherein said receiving means places said one or more host requests on said execution queue for execution; means for determining a number of host requests on said execution queue; means for creating a plurality of rebuild requests to rebuild data on the new drive; means for placing a number of said rebuild requests on said execution queue, wherein said means for placing places said number of said rebuild requests on said execution queue to dynamically compensate for said number of host requests on said execution queue; and means for receiving a user-specified amount of disk array bandwidth to be used by the disk controller for said data reconstruction operations, wherein said means for creating said one or more rebuild requests creates said rebuild requests of a certain size based on said determined number of host requests on said execution queue and said user-specified amount of disk array bandwidth to be used for said reconstruction operations.
Claim 13
Dependent Claim 58 words
The disk array system of claim 10, wherein the disk controller further comprises: means for executing said number of said host requests and said number of said rebuild requests on said execution queue, wherein execution of said number of said rebuild requests results in a predictable level of degradation to execution of said number of said host requests.
Claim 14
Dependent Claim 62 words
The disk array system of claim 11, wherein said means for determining, said means for creating, said means for placing, and said means for executing repeatedly operate in said disk controller until said data reconstruction operations have completed on said new drive; wherein said disk array system maintains a predictable level of performance of said host requests during said data reconstruction operations.
Claim 15
Dependent Claim 68 words
The disk array system of claim 10, wherein said means for placing in said disk controller places said number of said rebuild requests on said execution queue to maintain an approximately constant proportion of said number of said rebuild requests to said determined host requests on said execution queue, wherein execution of said rebuild requests results in a predictable level of degradation to execution of said host requests.
Claim 16
Dependent Claim 272 words
A disk array system which maintains predictable performance during data reconstruction operations under varying disk loads, comprising: a disk array comprising a plurality of disk drives, said plurality of disk drives including a new drive; an execution queue for storing data requests for said disk array; and a disk controller coupled to said execution queue and said disk array which performs data reconstruction operations to place data on the new drive in said disk array, wherein the disk controller comprises: means for receiving one or more requests from a host, wherein said host requests comprise reads or writes of data on the disk array, wherein said receiving means places said one or more host requests on said execution queue for execution; means for determining a number of host requests on said execution queue; means for creating a plurality of rebuild requests to rebuild data on the new drive; means for placing a number of said rebuild requests on said execution queue, wherein said means for placing places said number of said rebuild requests on said execution queue to dynamically compensate for said number of host requests on said execution queue, and a memory including one or more bits for storing a Desired Rebuild Queue Depth variable; wherein the disk controller further comprises: means for adjusting said Desired Rebuild Queue Depth variable based on said determination of said number of host requests on said execution queue; wherein said means for placing comprises: means for examining said Desired Rebuild Queue Depth variable; and means for placing a number of said rebuild requests on said execution queue based on said Desired Rebuild Queue Depth variable.
Claim 17
Dependent Claim 272 words
A disk array system which maintains predictable performance during data reconstruction operations under varying disk loads, comprising: a disk array comprising a plurality of disk drives, said plurality of disk drives including a new drive; an execution queue for storing data requests for said disk array; and a disk controller coupled to said execution queue and said disk array which performs data reconstruction operations to place data on the new drive in said disk array, wherein the disk controller comprises: means for receiving one or more requests from a host, wherein said host requests comprise reads or writes of data on the disk array, wherein said receiving means places said one or more host requests on said execution queue for execution; means for determining a number of host requests on said execution queue; means for creating a plurality of rebuild requests to rebuild data on the new drive; means for placing a number of said rebuild requests on said execution queue, wherein said means for placing places said number of said rebuild requests on said execution queue to dynamically compensate for said number of host requests on said execution queue, and a memory including one or more bits for storing a Desired Rebuild Queue Depth variable; wherein the disk controller further comprises: means for adjusting said Desired Rebuild Queue Depth variable based on said determination of said number of host requests on said execution queue; wherein said means for placing comprises: means for examining said Desired Rebuild Queue Depth variable; and means for placing a number of said rebuild requests on said execution queue based on said Desired Rebuild Queue Depth variable.
Claim 18
Dependent Claim 73 words
The disk array system of claim 14, wherein said means for determining said number of host requests on said execution queue determines if host queue depth is increasing, wherein said means for adjusting said Desired Rebuild Queue Depth variable comprises: means for increasing said Desired Rebuild Queue Depth variable if said host queue depth is increasing; and means for decreasing said Desired Rebuild Queue Depth variable if said host queue depth is decreasing.
Claim 19
Independent Claim 217 words
A method for maintaining predictable performance of a disk system during data reconstruction operations under a wide variety of disk loads, wherein the disk system comprises a disk controller and a disk array coupled to the disk controller, wherein the disk controller comprises a plurality of disk drives, wherein when a new drive is inserted in the system, the disk controller performs data reconstruction operations to place data on the new drive, the method comprising the steps of: receiving one or more requests from a host, wherein said host requests comprise reads or writes of data on the disk array; placing said one or more host requests on a first queue, wherein said first queue has a first depth; transferring said one or more host requests from said first queue to a second queue, wherein said second queue has a second depth less than said first depth creating one or more rebuild requests to rebuild data on the new drive; placing one or more of said rebuild requests directly on said second queue; and executing said one or more host requests and said one or more rebuild requests from said second queue, wherein execution of said one or more rebuild requests results in a predictable level of degradation to execution of said one or more host requests.
Claim 20
Independent Claim 217 words
A method for maintaining predictable performance of a disk system during data reconstruction operations under a wide variety of disk loads, wherein the disk system comprises a disk controller and a disk array coupled to the disk controller, wherein the disk controller comprises a plurality of disk drives, wherein when a new drive is inserted in the system, the disk controller performs data reconstruction operations to place data on the new drive, the method comprising the steps of: receiving one or more requests from a host, wherein said host requests comprise reads or writes of data on the disk array; placing said one or more host requests on a first queue, wherein said first queue has a first depth; transferring said one or more host requests from said first queue to a second queue, wherein said second queue has a second depth less than said first depth creating one or more rebuild requests to rebuild data on the new drive; placing one or more of said rebuild requests directly on said second queue; and executing said one or more host requests and said one or more rebuild requests from said second queue, wherein execution of said one or more rebuild requests results in a predictable level of degradation to execution of said one or more host requests.
Claim 21
Dependent Claim 62 words
The method of claim 16, wherein said step of placing comprises placing a number of said rebuild requests on said second queue to maintain an approximately constant proportion of said rebuild requests to said host requests on said second queue, wherein execution of said number of said rebuild requests results in a predictable level of degradation to execution of said host requests.
Claim 22
Dependent Claim 111 words
The method of claim 16, further comprising: repeatedly performing said steps of placing said one or more host requests on said first queue, transferring said one or more host requests from said first queue to said second queue, creating one or more rebuild requests to rebuild data on the new drive, placing one or more of said rebuild requests directly on said second queue, and executing said one or more host requests and said one or more rebuild requests until said data reconstruction operations have completed on said new drive; wherein said disk array system maintains a predictable level of performance of said host requests during said step of repeatedly performing.
Claim 23
Dependent Claim 63 words
The method of claim 16, further comprising: receiving a user-specified amount of disk array bandwidth to be used by the disk controller for said data reconstruction operations, wherein said step of creating said one or more rebuild requests includes creating said rebuild requests of a certain size based on said user-specified amount of disk array bandwidth to be used for said reconstruction operations.
Claim 24
Dependent Claim 20 words
The method of claim 16, wherein said step of receiving receives a varying load of host requests from said host.
Claim 25
Dependent Claim 258 words
A disk array system which maintains predictable performance during data reconstruction operations under varying disk loads, comprising: a disk array comprising a plurality of disk drives, said plurality of disk drives including a new drive; a first queue for storing host requests for said disk array, wherein said first queue has a first size; a second queue for storing host requests and rebuild requests, wherein said second queue has a second size less than said first size, wherein host requests propagate from said first queue to said second queue prior to execution; and a disk controller coupled to said first and second queues and said disk array which performs data reconstruction operations to place data on the new drive in said disk array, wherein the disk controller comprises: means for receiving one or more requests from said host, wherein said host requests comprise reads or writes of data on the disk array; means for placing said one or more host requests on said first queue; means for transferring said one or more host requests from said first queue to said second queue; means for creating one or more rebuild requests to rebuild data on the new drive; means for placing one or more of said rebuild requests directly on said second queue; and means for executing said one or more host requests and said one or more rebuild requests from said second queue, wherein execution of said one or more rebuild requests results in a predictable level of degradation to execution of said one or more host requests.
Claim 26
Dependent Claim 258 words
A disk array system which maintains predictable performance during data reconstruction operations under varying disk loads, comprising: a disk array comprising a plurality of disk drives, said plurality of disk drives including a new drive; a first queue for storing host requests for said disk array, wherein said first queue has a first size; a second queue for storing host requests and rebuild requests, wherein said second queue has a second size less than said first size, wherein host requests propagate from said first queue to said second queue prior to execution; and a disk controller coupled to said first and second queues and said disk array which performs data reconstruction operations to place data on the new drive in said disk array, wherein the disk controller comprises: means for receiving one or more requests from said host, wherein said host requests comprise reads or writes of data on the disk array; means for placing said one or more host requests on said first queue; means for transferring said one or more host requests from said first queue to said second queue; means for creating one or more rebuild requests to rebuild data on the new drive; means for placing one or more of said rebuild requests directly on said second queue; and means for executing said one or more host requests and said one or more rebuild requests from said second queue, wherein execution of said one or more rebuild requests results in a predictable level of degradation to execution of said one or more host requests.
Claim 27
Dependent Claim 63 words
The disk array system of claim 21, wherein said means for placing places a number of said rebuild requests on said second queue to maintain an approximately constant proportion of said rebuild requests to said host requests on said second queue, wherein execution of said number of said rebuild requests results in a predictable level of degradation to execution of said host requests.
Claim 28
Dependent Claim 125 words
The disk array system of claim 21, further comprising: wherein said means for placing said one or more host requests on said first queue, said means for transferring said one or more host requests from said first queue to said second queue, said means for creating one or more rebuild requests to rebuild data on the new drive, said means for placing one or more of said rebuild requests directly on said second queue, and said means for executing said one or more host requests and said one or more rebuild requests repeatedly operate until said data reconstruction operations have completed on said new drive; wherein said disk array system maintains a predictable level of performance of said host requests during said data reconstruction operations.

References Cited (Backward Citations)

US5072368A Cited
US5542062A Cited
US5278838A Cited
US5537566A Cited
US5446855A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-10-20 2001-04-21 2001-10-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-10-20 2005-04-21 2005-10-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-10-20 2009-04-21 2009-10-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag