IP Library Granted Patent US 9,043,499
Granted Patent B2
US 9,043,499 · App. 14/103,141 · Granted May 26, 2015

Modifying a dispersed storage network memory data access response plan

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,043,499
App. No.
14/103,141
Granted
May 26, 2015
Kind
B2
Abstract

A dispersed storage network memory includes a pool of storage nodes, where the pool of storage nodes stores a multitude of encoded data files. A storage node obtains and analyzes data access response performance data for each of the storage nodes to produce a modified data access response plan that includes identity of an undesired performing storage node and an alternative data access response for the undesired performing storage node. The storage nodes receive corresponding portions of a data access request for at least a portion of one of the multitude of encoded data files. The undesired performing storage node or another storage node processes one of the corresponding portions of the data access request in accordance with the alternative data access response.

Claims (89)

1. Dispersed storage network (DSN) memory comprises:

a pool of storage nodes, wherein each storage node of the pool of storage nodes includes a processing module, a network interface, and memory, and wherein the pool of storage nodes stores a multitude of encoded data files;

the processing module of one or more storage nodes of the pool of storage nodes is operable to:

obtain data access response performance data for each of the storage nodes in the pool of storage nodes;

analyze the data access response performance data for the pool of storage nodes to modify a data access response plan to produce a modified data access response plan, wherein the data access response plan includes, for at least a portion of one of the multitude of encoded data files:

a per data segment encoded data slice response level,

identity of a set of storage nodes storing encoded data slices of the at least a portion of the one of the multitude of encoded data files, and

identity of preferred storage nodes of the set of storage nodes to respond to a data access request for the at least a portion of the one of the multitude of encoded data files,

wherein the data access response plan is modified to include an indication that one of the preferred storage nodes has an undesired performance level and to include an alternative data access response for the one of the preferred storage nodes having the undesired performance level; and

distribute the modified data access response plan to the pool of storage nodes; and

the processing modules of the preferred storage nodes operable to receive, via the network interfaces of the preferred storage nodes, corresponding portions of the data access request for the at least a portion of the one of the multitude of encoded data files; and

the processing module of the one of the preferred storage nodes having the undesired performance level or the processing module of another storage node of the pool of storage nodes operable to process one of the corresponding portions of the data access request in accordance with the alternative data access response.

2. The DSN memory of claim 1 , wherein the processing module of the one of the preferred storage nodes having the undesired performance level functions to process the one of the corresponding portions of the data access request by:

discarding the one of the corresponding portions of the data access request when the alternative data access response includes an indication that data access requests for the at least a portion of the one of the multitude of encoded data files are to be discarded.

3. The DSN of claim 1 , wherein the processing module of the other storage node functions to process the one of the corresponding portions of the data access request by:

sending, via the network interface of the other storage node, a copy of at least some of the encoded data slices of the at least a portion of the one of the multitude of encoded data files to a requesting entity when the alternative data access response indicates that the other storage node is to respond to data access requests for the at least a portion of the one of the multitude of encoded data files.

4. The DSN memory of claim 1 , wherein the processing module of the one of the preferred storage nodes having the undesired performance level functions to process the one of the corresponding portions of the data access request by:

forwarding, via the network interface of the one of the preferred storage nodes, the one of the corresponding portions of the data access request to the other storage node when the alternative data access response indicates forwarding data access requests for the at least a portion of the one of the multitude of encoded data files to the other storage node.

5. The DSN memory of claim 1 , wherein the processing module of the one or more storage nodes of the pool of storage nodes is further operable to:

when the one of the preferred storage nodes has the undesired performance level:

identify the encoded data slices of the at least a portion of the one of the multitude of encoded data files;

select the other storage node based on an availability to perform the alternative data access response; and

facilitate the other storage node storing a copy of at least some of the encoded data slices of the at least a portion of the one of the multitude of encoded data files.

6. The DSN memory of claim 1 , wherein the processing module of the one or more storage nodes of the pool of storage nodes is further operable to:

when the one of the preferred storage nodes has the undesired performance level:

identify the encoded data slices of the at least a portion of the one of the multitude of encoded data files;

select a set of other storage nodes from the pool of storage nodes based on an availability to perform the alternative data access response, wherein the set of other storage nodes includes the other storage node;

facilitate the set of other storage nodes storing a copy of at least some of the encoded data slices of the at least a portion of the one of the multitude of encoded data files; and

select one of the set of other storage nodes to function as the other storage node.

7. The DSN memory of claim 1 , wherein the one of the multitude of encoded data files further comprises:

a plurality of data partitions, wherein a data partition of the plurality of data partitions includes one portion of the at least a portion of the one of the multitude of encoded data files, wherein the data partition includes a plurality of data segments, and wherein a data segment of the plurality of data segments is dispersed storage error encoded to produce a set of encoded data slices.

8. The DSN memory of claim 1 , wherein the processing module of the one or more storage nodes of the pool of storage nodes is further operable to:

distribute the modified data access response plan to one or more requesting entities by at least one of:

sending, via the network interface of the one or more storage nodes, the modified data access response plan to the one or more requesting entities;

updating a system registry to include the modified data access response plan; and

issuing a slice access response to one of the one or more requesting entities, wherein the slice access response includes the modified data access response plan, when receiving a slice access request from the one of the one or more requesting entities.

9. The DSN memory of claim 1 , wherein the multitude of encoded data files comprises:

a first data file encoded in accordance with a first set of dispersed storage error encoding parameters; and

a second data file encoded in accordance with a second set of dispersed storage error encoding parameters.

10. The DSN memory of claim 1 further comprises:

the processing module of the one of the preferred storage nodes having the undesired performance level or another of the preferred storage nodes is operable to process another of the corresponding portions of the data access request by sending, via the network interface of the one of the preferred storage nodes or via the network interface of the other of the preferred storage nodes, at least some of the encoded data slices of the at least a portion of the one of the multitude of encoded data files to a requesting entity in accordance with the modified data access response plan.

11. A computer readable storage medium comprises:

a first storage section that stores operational instructions that, when executed by one or more processing modules, causes the one or more processing modules to:

obtain data access response performance data for each storage node in a pool of storage nodes, wherein the pool of storage nodes stores a multitude of encoded data files;

analyze the data access response performance data for the pool of storage nodes to modify a data access response plan to produce a modified data access response plan, wherein the data access response plan includes, for at least a portion of one of the multitude of encoded data files:

a per data segment encoded data slice response level,

identity of a set of storage nodes storing encoded data slices of the at least a portion of the one of the multitude of encoded data files, and

identity of preferred storage nodes of the set of storage nodes to respond to a data access request for the at least a portion of the one of the multitude of encoded data files,

wherein the data access response plan is modified to include an indication that one of the preferred storage nodes has an undesired performance level and to include an alternative data access response for the one of the preferred storage nodes having the undesired performance level; and

distribute the modified data access response plan to the pool of storage nodes; and

a second storage section that stores operational instructions that, when executed by the one or more processing modules, causes the one or more processing modules to:

receive, via one or more network interfaces, corresponding portions of the data access request for the at least a portion of the one of the multitude of encoded data files;

access the modified data access response plan; and

process one of the corresponding portions of the data access request in accordance with the alternative data access response when the one of the corresponding portions of the data access request is directed towards the one of the preferred storage nodes having the undesired performance level.

12. The computer readable storage medium of claim 11 , wherein the one or more processing modules functions to process the one of the corresponding portions of the data access request by:

discarding the one of the corresponding portions of the data access request when the alternative data access response includes an indication that data access requests for the at least a portion of the one of the multitude of encoded data files are to be discarded when the one of the corresponding portions of the data access request is directed towards the one of the preferred storage nodes having the undesired performance level.

13. The computer readable storage medium of claim 11 , wherein the one or more processing modules functions to process the one of the corresponding portions of the data access request by:

identifying another storage node of the pool of storage nodes when the alternative data access response indicates that the other storage node is to respond to data access requests for the at least a portion of the one of the multitude of encoded data files when the one of the corresponding portions of the data access request is directed towards the one of the preferred storage nodes having the undesired performance level;

obtaining a copy of at least some of the encoded data slices of the at least a portion of the one of the multitude of encoded data files from the other storage node; and

sending, via a network interface of the one or more network interfaces, the copy the at least some of the encoded data slices of the at least a portion of the one of the multitude of encoded data files to a requesting entity.

14. The computer readable storage medium of claim 11 , wherein the one or more processing modules functions to process the one of the corresponding portions of the data access request by:

forwarding the one of the corresponding portions of the data access request to another storage node of the pool of storage nodes when the alternative data access response indicates forwarding data access requests for the at least a portion of the one of the multitude of encoded data files to the other storage node when the one of the corresponding portions of the data access request is directed towards the one of the preferred storage nodes having the undesired performance level.

15. The computer readable storage medium of claim 11 further comprises:

the first storage section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more processing modules to:

when the one of the preferred storage nodes has the undesired performance level:

identify the encoded data slices of the at least a portion of the one of the multitude of encoded data files;

selecting another storage node of the pool of storage nodes based on an availability to perform the alternative data access response; and

facilitate the other storage node storing a copy of at least some of the encoded data slices of the at least a portion of the one of the multitude of encoded data files.

16. The computer readable storage medium of claim 11 further comprises:

the first storage section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more processing modules to:

when the one of the preferred storage nodes has the undesired performance level:

identify the encoded data slices of the at least a portion of the one of the multitude of encoded data files;

select a set of other storage nodes from the pool of storage nodes based on an availability to perform the alternative data access response; and

facilitate the set of other storage nodes storing a copy of at least some of the encoded data slices of the at least a portion of the one of the multitude of encoded data files.

17. The computer readable storage medium of claim 11 , wherein the one of the multitude of encoded data files further comprises:

a plurality of data partitions, wherein a data partition of the plurality of data partitions includes one portion of the at least a portion of the one of the multitude of encoded data files, wherein the data partition includes a plurality of data segments, and wherein a data segment of the plurality of data segments is dispersed storage error encoded to produce a set of encoded data slices.

18. The computer readable storage medium of claim 11 further comprises:

the first storage section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more processing modules to:

distribute the modified data access response plan to one or more requesting entities by at least one of:

sending, via the one or more network interfaces, the modified data access response plan to the one or more requesting entities;

updating a system registry to include the modified data access response plan; and

issuing a slice access response to one of the one or more requesting entities, wherein the slice access response includes the modified data access response plan, when receiving a slice access request from the one of the one or more requesting entities.

19. The computer readable storage medium of claim 11 , wherein the multitude of encoded data files comprises:

a first data file encoded in accordance with a first set of dispersed storage error encoding parameters; and

a second data file encoded in accordance with a second set of dispersed storage error encoding parameters.

20. The computer readable storage medium of claim 11 further comprises:

the second storage section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more processing modules to:

process the one of the corresponding portions of the data access request by sending, via the one or more network interfaces, at least some of the encoded data slices of the at least a portion of the one of the multitude of encoded data files to a requesting entity in accordance with the modified data access response plan; and

process another one of the corresponding portions of the data access request by sending, via the one or more network interfaces, another at least some of the encoded data slices of the at least a portion of the one of the multitude of encoded data files to the requesting entity in accordance with the modified data access response plan.

Assignments (6)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2014
From: STORM, MICHAEL COLIN; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 031890/0983 →