IP Library Granted Patent US 10,127,110
Granted Patent B2
US 10,127,110 · App. 15/143,815 · Granted Nov 13, 2018

Reallocating storage in a dispersed storage network

Inventors: Andrew D. Baptist (Mt. Pleasant, WI); Manish Motwani (Chicago, IL); Jason K. Resch (Chicago, IL)
Assignee: International Business Machines Corporation
G06F11/108G06F3/061G06F3/0604G06F3/0605G06F3/065G06F3/067G06F3/0619G06F3/0622G06F3/0643G06F3/0644G06F3/0647G06F3/0653G06F3/0668G06F3/0689G06F11/1076G06F11/1662G06F11/3034G06F13/4282G06F17/3053G06F17/30082G06F17/30197G06F21/6218G06F21/645H03M13/2906H03M13/3761H04L9/0861H04L63/061H04L63/0853H04L63/108H04L67/1097H04L67/327G06F3/064G06F2201/805H03M13/1515H04L63/0428
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 10,127,110
App. No.
15/143,815
Granted
Nov 13, 2018
Kind
B2
Abstract

A method for execution by a dispersed storage and task (DST) execution unit includes updating a plurality of weighting factors corresponding to each of a plurality of memories in response to an indication of a change in memory capacity of one of the plurality of memories. At least one encoded data slice is received for storage by the DST execution unit. A plurality of scores are generated corresponding to each of the plurality of memories, wherein each of the plurality of scores is based on one of the plurality of weighting factors of a corresponding one of the plurality of memories. One of the plurality of memories is selected based on the plurality of scores, and the at least one encoded data slice is stored in the selected memory.

Claims (41)

1. A method for execution by a dispersed storage and task (DST) execution unit that includes an interface and a processor, the method comprises:

updating a plurality of weighting factors corresponding to each of a plurality of memories of the DST execution unit in response to an indication of a change in memory capacity of one of the plurality of memories and in accordance with a Decentralized Agreement Protocol (DAP) that is implemented to maintain utilization across the plurality of memories to be substantially equal;

receiving, via the interface and via a dispersed or distributed storage network (DSN) and from a DST processing unit, at least one encoded data slice for storage by the DST execution unit;

generating a plurality of scores corresponding to each of the plurality of memories, wherein each of the plurality of scores is based on one of the plurality of weighting factors of a corresponding one of the plurality of memories;

selecting one of the plurality of memories based on the plurality of scores in accordance with a resource map that indicates relative remaining healthy storage capacities of the plurality of memories; and

storing the at least one encoded data slice in the selected one of the plurality of memories.

2. The method of claim 1 , wherein the indication of the change of the memory capacity is generated based on interpreting an error message.

3. The method of claim 1 , further comprising performing a memory test on the plurality of memories; and

wherein the indication of the change of memory capacity is generated based on comparing a result of the memory test to a previous result corresponding to a previous memory test.

4. The method of claim 1 , wherein the indication of the change of the memory capacity is generated based on one of: a failure or removal of a memory block of the one of the plurality of memories.

5. The method of claim 1 , wherein the plurality of weighting factors are updated in response to an indication that the change in memory capacity is greater than a predefined threshold.

6. The method of claim 1 , wherein the selected one of the plurality of memories is determined based on the corresponding one of the plurality of memories with the highest corresponding score.

7. The method of claim 1 , wherein each of the plurality of scores is further generated based on an attribute of the received encoded slice.

8. The method of claim 1 , wherein the indication of a change in the memory capacity indicates a lowered memory capacity of the one of the plurality of memories, and wherein the plurality of weighting factors are updated by decreasing a weighting factor of the plurality of weighting factors corresponding to the one of the plurality of memories with the lowered memory capacity, and increasing remaining ones of the weighting factors of remaining memories of the plurality of memories.

9. The method of claim 8 , wherein the decrease of the weighting factor of the corresponding one of the plurality of memories with the lowered memory capacity is proportional to a degree of change in the memory capacity, and remaining ones of the plurality of weighting factors corresponding to the remaining memories are increased based on the decrease in the weighting factor of the one of the plurality of memories with the lowered memory capacity.

10. The method of claim 1 , wherein the plurality of weighting factors are updated in response to an indication that at least one second encoded data slice has been one of: written to or deleted from the one of the plurality of memories.

11. A processing system of a dispersed storage and task (DST) execution unit comprises:

an interface configured to interface and communicate with a dispersed storage network (DSN);

at least one processor;

a memory that stores operational instructions, that when executed by the at least one processor causes the processing system to:

update a plurality of weighting factors corresponding to each of a plurality of memories of the DST execution unit in response to an indication of a change in memory capacity of one of the plurality of memories and in accordance with a Decentralized Agreement Protocol (DAP) that is implemented to maintain utilization across the plurality of memories to be substantially equal;

receive, via the interface and via the DSN from a DST processing unit, at least one encoded data slice for storage by the DST execution unit;

generate a plurality of scores corresponding to each of the plurality of memories, wherein each of the plurality of scores is based on one of the plurality of weighting factors of a corresponding one of the plurality of memories;

select one of the plurality of memories based on the plurality of scores in accordance with a resource map that indicates relative remaining healthy storage capacities of the plurality of memories; and

store the at least one encoded data slice in the selected one of the plurality of memories.

12. The processing system of claim 11 , wherein the indication of the change of the memory capacity is generated based on interpreting an error message.

13. The processing system of claim 11 , wherein execution of the operational instructions by the at least one processor further causes the processing system to perform a memory test on the plurality of memories; and

wherein the indication of the change of memory capacity is generated based on comparing a result of the memory test to a previous result corresponding to a previous memory test.

14. The processing system of claim 11 , wherein the indication of the change of the memory capacity is generated based on one of: a failure or removal of a memory block of the one of the plurality of memories.

15. The processing system of claim 11 , wherein the plurality of weighting factors are updated in response to an indication that the change in memory capacity is greater than a predefined threshold.

16. The processing system of claim 11 , wherein the selected one of the plurality of memories is determined based on the corresponding one of the plurality of memories with the highest corresponding score.

17. The processing system of claim 11 , wherein the indication of a change in the memory capacity indicates a lowered memory capacity of the one of the plurality of memories, and wherein the plurality of weighting factors are updated by decreasing a weighting factor of the plurality of weighting factors corresponding to the one of the plurality of memories with the lowered memory capacity, and increasing remaining ones of the weighting factors of remaining memories of the plurality of memories.

18. The processing system of claim 17 , wherein the decrease of the weighting factor of the corresponding one of the plurality of memories with the lowered memory capacity is proportional to a degree of change in the memory capacity, and remaining ones of the plurality of weighting factors corresponding to the remaining memories are increased based on the decrease in the weighting factor of the one of the plurality of memories with the lowered memory capacity.

19. The processing system of claim 11 , wherein the plurality of weighting factors are updated in response to an indication that at least one second encoded data slice has been one of: written to or deleted from the one of the plurality of memories.

20. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by a processing system of a dispersed storage network (DSN) that includes a processor and a memory, causes the processing system to:

update a plurality of weighting factors corresponding to each of a plurality of memories of a dispersed storage and task (DST) execution unit in response to an indication of a change in memory capacity of one of the plurality of memories and in accordance with a Decentralized Agreement Protocol (DAP) that is implemented to maintain utilization across the plurality of memories to be substantially equal;

receive, via the DSN from a DST processing unit, at least one encoded data slice for storage;

generate a plurality of scores corresponding to each of the plurality of memories, wherein each of the plurality of scores is based on one of the plurality of weighting factors of a corresponding one of the plurality of memories;

select one of the plurality of memories based on the plurality of scores in accordance with a resource map that indicates relative remaining healthy storage capacities of the plurality of memories; and

store the at least one encoded data slice in the selected one of the plurality of memories.

Assignments (5)
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 2, 2016
From: BAPTIST, ANDREW D.; MOTWANI, MANISH; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038434/0117 →
Continuity (2)
Provisional Application 62199816 · Jul 31, 2015
Related Publication 20170034271A1 · Feb 2, 2017