IP Library › Granted Patent US 9,557,938
Granted Patent B2
US 9,557,938 · App. 14/276,506 · Granted Jan 31, 2017

Data retrieval based on storage device activation schedules

Inventor: David Slik (Burnaby, CA)
Assignee: NetApp, Inc.
G06F3/0685G06F3/06G06F3/0608G06F3/0619G06F3/0625G06F3/0631G06F3/0634G06F3/0641G06F3/0652G06F3/0665G06F3/0683G06F3/0689
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,557,938
App. No.
14/276,506
Granted
Jan 31, 2017
Kind
B2
Abstract

In at least one embodiment, a method of operating a multiple-data-storage-devices enclosure is disclosed. The method includes: receiving a first read request from a first requester device for a first requested data fragment; identifying a first target data storage device storing the first requested data fragment based at least partly on the first read request; activating, independently of receiving the first read request, only a subset of data storage devices in the enclosure, wherein the subset includes the first target data storage device; retrieving, based at least partly on the first read request and in response to activating the subset, the first requested data fragment from the first target data storage device; and transmitting the first requested data fragment to the first requester device.

Claims (48)

1. A method of operating an enclosure comprising:

based on receiving a first read request for a first data fragment,

identifying a first target storage device of a first subset of storage devices as storing the first data fragment based, at least in part, on the first read request;

determining whether the first subset of storage devices is active based, at least in part, on a cyclical activation schedule; and

based on determining that the first subset of storage devices is not active based, at least in part, on the cyclical activation schedule, indicating the first read request in a first read request queue for the first subset of storage devices;

based on indicating the first read request in the first read request queue, determining a number of read requests in the first read request queue and a number of read requests in a second read request queue corresponding to a second subset of storage devices to determine whether the cyclical activation schedule should be modified to prioritize the first subset of storage devices based, at least in part, on the determined numbers of read requests; and

in association with activation of the first subset of storage devices in accordance with the cyclical activation schedule,

removing the first read request from the first read request queue; and

retrieving the first data fragment from the first target storage device.

2. The method of claim 1 , wherein the first read request includes a storage device identifier of the first target storage device, wherein identifying the first target storage device is based on the storage device identifier.

3. The method of claim 1 , wherein the first read request is broadcast to a plurality of enclosures comprising the enclosure.

4. The method of claim 1 , wherein the first read request includes an identifier of the first data fragment, wherein the identifier of the first data fragment comprises a fragment identifier or an object identifier of a data object that originated the first data fragment; and wherein identifying the first target storage device is based on the identifier and a mapping of the identifier to the first target storage device stored in a memory of the enclosure.

5. The method of claim 1 , wherein the first read request includes a group identifier associated with each storage device in the first subset of storage devices, wherein identifying the first target storage device is based, at least in part, on the association of the group identifier with the first target storage device.

6. The method of claim 1 , further comprising:

based on receiving a second read request for a second data fragment after receiving the first read request, identifying a second target storage device storing the second data fragment based, at least in part, on the second read request, wherein the second subset of storage devices comprises the second target storage device; and

based on determining that the second subset of storage devices is active in accordance with the cyclical activation schedule, retrieving the second data fragment from the second target storage device prior to retrieving the first data fragment.

7. The method of claim 1 , wherein the cyclical activation schedule is based, at least in part, on health statistics of the first subset of storage devices and the second subset of storage devices.

8. The method of claim 1 , further comprising:

determining a first risk factor for the first subset of storage devices and a second risk factor for the second subset of storage devices, wherein a risk factor indicates a likelihood that a storage device in a subset of storage devices will fail; and

modifying the cyclical activation schedule based, at least in part, on the first risk factor and the second risk factor.

9. The method of claim 8 , wherein modifying the cyclical activation schedule comprises reducing an activation duration of the first subset of storage devices based, at least in part, on the first risk factor exceeding a threshold.

10. An enclosure comprising:

a processor; and

a machine-readable medium comprising program code executable by the processor to cause the enclosure to,

based on receiving a first read request for a first data fragment,

identify a first target storage device of a first subset of storage devices as storing the first data fragment based, at least in part, on the first read request;

determine whether the first subset of storage devices is active based, at least in part, on a cyclical activation schedule; and

based on a determination that the first subset of storage devices is not active based, at least in part, on the cyclical activation schedule, indicate the first read request in a first read request queue for the first subset of storage devices;

based on indication of the first read request in the first read request queue, determine a number of read requests in the first read request queue and a number of read requests in a second read request queue corresponding to a second subset of storage devices to determine whether the cyclical activation schedule should be modified to prioritize the first subset of storage devices based, at least in part, on the determined numbers of read requests; and

based on activation of the first subset of storage devices,

remove the first read request from the first read request queue; and

retrieve the first data fragment from the first target storage device.

11. The enclosure of claim 10 , wherein the cyclical activation schedule is based at least in part, on health statistics of the first subset of storage devices and the second subset of storage devices.

12. The enclosure of claim 10 , wherein the machine-readable medium further comprises program code executable by the processor to cause the enclosure to:

based on receiving a second read request for a second data fragment after receiving the first read request, identify a second target storage device storing the second data fragment based, at least in part, on the second read request, wherein the second subset of storage devices comprises the second target storage device; and

based on determining that the second subset of storage devices is active in accordance with the cyclical activation schedule, retrieve the second data fragment from the second target storage device prior to retrieving the first data fragment.

13. One or more non-transitory machine-readable media having program code for asynchronously servicing a read request stored therein, the program code to:

based on receiving a first read request for a first data fragment,

identify a first target storage device of a first subset of storage devices as storing the first data fragment based, at least in part, on the first read request;

determine whether the first subset of storage devices is active based, at least in part, on a cyclical activation schedule; and

based on a determination that the first subset of storage devices is not active based, at least in part, on the cyclical activation schedule, indicate the first read request in a first read request queue for the first subset of storage devices;

based on indication of the first read request in the first read request queue, determine a number of read requests in the first read request queue and a number of read requests in a second read request queue corresponding to a second subset of storage devices to determine whether the cyclical activation schedule should be modified to prioritize the first subset of storage devices based, at least in part, on the determined numbers of read requests; and

based on activation of the first subset of storage devices,

remove the first read request from the first read request queue; and

retrieve the first data fragment from the first target storage device.

14. The machine-readable media of claim 13 , further comprising program code to:

based on receiving a second read request for a second data fragment after receiving the first read request, identify a second target storage device storing the second data fragment based, at least in part, on the second read request, wherein the second subset of storage devices comprises the second target storage device; and

based on determining that the second subset of storage devices is active in accordance with the cyclical activation schedule, retrieve the second data fragment from the second target storage device prior to retrieving the first data fragment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2014
From: SLIK, DAVID
To: NETAPP, INC.
Reel/Frame 032959/0264 →
Continuity (1)
Related Publication 20150331621A1 · Nov 19, 2015