IP Library Granted Patent US 10,169,229
Granted Patent B2
US 10,169,229 · App. 15/347,132 · Granted Jan 1, 2019

Protocols for expanding existing sites in a dispersed storage network

Inventors: Andrew D. Baptist (Mt. Pleasant, WI); Greg R. Dhuse (Chicago, IL); Manish Motwani (Chicago, IL); Ilya Volvovski (Chicago, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F12/0284G06F11/1076H03M13/00G06F11/1658G06F11/1662G06F11/3034G06F11/3055G06F2212/154
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,169,229
App. No.
15/347,132
Granted
Jan 1, 2019
Kind
B2
Abstract

A dispersed storage and task network (DSTN) includes a site housing current distributed storage and task (DST) execution units. A determination is made to add new DST execution units to the site. A first address range assigned to the plurality of current DST execution units is obtained, and a common magnitude of second address ranges to be assigned to each of the new DST execution units and the current DST execution units is determined based, at least in part, on the first address range. Insertion points for each of the plurality of new DST execution units are determined, and transfer address ranges are determined in accordance with the insertion points. Transfer address ranges correspond to at least the part of the first address ranges to be transferred to the new DST execution units. Address range assignments are transferred from particular current DST execution units to particular new DST execution units.

Claims (67)

1. A method for execution by computing device within a dispersed storage and task network (DSTN) including at least one site housing a plurality of current distributed storage and task (DST) execution units, the method comprising:

determining that a plurality of new DST execution units are to be added to the at least one site;

in response to determining that the plurality of new DST execution units are to be added to the at least one site, assigning the new DST execution units to positions within the at least one site to limit a number of DST execution units through which data must be moved during migration of data to the new DST execution units to a maximum number, the maximum number being less than the number of current DST execution units included in the at least one site, wherein assigning the new DST execution units to positions within the at least one site includes:

obtaining first address ranges assigned to the plurality of current DST execution units;

determining a common magnitude of second address ranges to be assigned to the plurality of new DST execution units and the plurality of current DST execution units;

determining insertion points for each of the plurality of new DST execution units, wherein the insertion points are selected to intersperse the plurality of new DST execution units among the current DST execution units in a pattern arranged so that each current DST execution unit is no more than a predetermined number of current DST execution units distant from one of the plurality of new DST execution units;

determining transfer address ranges, where transfer address ranges correspond to at least a portion of the first address ranges to be transferred to the plurality of new DST execution units in accordance with the insertion points; and

facilitating transfer of address range assignments from particular current DST execution units to particular new DST execution units.

2. The method of claim 1 , further comprising:

facilitating transfer of encoded slices having addresses in the transfer address ranges from the plurality of current DST execution units to the plurality of new DST execution units.

3. The method of claim 1 , further comprising:

determining that a plurality of new DST execution units are to be added to the at least one site based on a storage capacity utilization level associated with the plurality of current DST execution units.

4. The method of claim 1 , further comprising:

determining the common magnitude of second address ranges by evenly dividing a total number of addresses included in the first address ranges assigned to the plurality of current DST execution units among a combined total number of current and new DST execution units.

5. The method of claim 1 , wherein determining the insertion points for each of the plurality of new DST execution units includes:

interspersing the plurality of new DST execution units between current DST execution units.

6. The method of claim 1 , further comprising:

determining the transfer address ranges so that each of the plurality of new and current DST execution units includes:

a number of addresses corresponding to the common magnitude; and

a contiguous address range with regards to an adjacent pair of DST execution units.

7. The method of claim 1 , further comprising:

facilitating transfer of address range assignments by updating address range tables in at least one of each DST execution unit and at a system level.

8. A dispersed storage and task network (DSTN) managing unit comprising:

a processor and associated memory configured to:

determine that a plurality of new distributed storage and task (DST) execution units are to be added to a site including a plurality of current DST execution units;

in response to determining that the plurality of new DST execution units are to be added to the at least one site, assign the new DST execution units to positions within the at least one site to limit a number of DST execution units through which data must be moved during migration of data to the new DST execution units to a maximum number, the maximum number being less than the number of current DST execution units included in the at least one site, wherein the processor and memory are configured to assign the new DST execution units to positions within the at least one site by:

obtaining first address ranges assigned to the plurality of current DST execution units;

determining a common magnitude of second address ranges to be assigned to the plurality of new DST execution units and the plurality of current DST execution units;

determining points for each of the plurality of new DST execution units, wherein the insertion points are selected to intersperse the plurality of new DST execution units among the current DST execution units in a pattern arranged so that each current DST execution unit is no more than a predetermined number of current DST execution units distant from one of the plurality of new DST execution units;

determining transfer address ranges corresponding to at least a portion of the first address ranges to be transferred to the plurality of new DST execution units, the transfer address ranges determined in accordance with the insertion points; and

facilitate transfer of address range assignments from particular current DST execution units to particular new DST execution units.

9. The DSTN managing unit of claim 8 , the processor and associated memory further configured to:

facilitate transfer of encoded slices having addresses in the transfer address ranges from the current DST execution units to the new DST execution units.

10. The DSTN managing unit of claim 8 , the processor and associated memory further configured to:

determine that a plurality of new DST execution units are to be added to the site based on a storage capacity utilization level associated with the plurality of current DST execution units.

11. The DSTN managing unit of claim 8 , the processor and associated memory further configured to:

determine the common magnitude of second address ranges by evenly dividing a total number of addresses included in the first address ranges assigned to the plurality of current DST execution units among a combined total number of current and new DST execution units.

12. The DSTN managing unit of claim 8 , the processor and associated memory further configured to:

intersperse, both within a namespace and physically, the plurality of new DST execution units between current DST execution units.

13. The DSTN managing unit of claim 8 , the processor and associated memory further configured to:

determine the transfer address ranges so that each of the plurality of new and current DST execution units includes:

a number of addresses corresponding to the common magnitude; and

a contiguous address range with regards to an adjacent pair of DST execution units.

14. The DSTN managing unit of claim 8 , the processor and associated memory further configured to:

facilitate transfer of address range assignments by updating address range tables in at least one of each DST execution unit and at a system level.

15. A dispersed storage and task network (DSTN) comprising:

a plurality of physical sites, each of the plurality of physical sites including a plurality of current distributed storage and task (DST) execution units arranged in a logical and physical order;

a DSTN managing unit including a processor and associated memory configured to:

determine that a plurality of new distributed storage and task (DST) execution units are to be added to at least one of the plurality of physical sites;

in response to determining that the plurality of new DST execution units are to be added to the at least one site, assign the new DST execution units to positions within the at least one site to limit a number of DST execution units through which data must be moved during migration of data to the new DST execution units to a maximum number, the maximum number being less than the number of current DST execution units included in the at least one site, wherein the DSTN managing unit is further configured to assign the new DST execution units to positions within the at least one site by:

obtaining first address ranges assigned to the plurality of current DST execution units;

determining a common magnitude of second address ranges to be assigned to the plurality of new DST execution units and the plurality of current DST execution units;

determining at least logical insertion points for each of the plurality of new DST execution units, wherein the logical insertion points are selected to intersperse the plurality of new DST execution units among the current DST execution units in a pattern arranged so that each current DST execution unit is no more than a predetermined number of current DST execution units distant from one of the plurality of new DST execution units;

determining transfer address ranges corresponding to at least a portion of the first address ranges to be transferred to the plurality of new DST execution units, the transfer address ranges determined in accordance with the at least logical insertion points; and

facilitate transfer of address range assignments from particular current DST execution units to particular new DST execution units.

16. The DSTN of claim 15 , the processor and associated memory further configured to:

determine that a plurality of new DST execution units are to be added to the at least one of the plurality of physical sites based on a storage capacity utilization level associated with the plurality of current DST execution units.

17. The DSTN of claim 15 , the DSTN managing unit further configured to:

determine the common magnitude of second address ranges by evenly dividing a total number of addresses included in the first address ranges assigned to the plurality of current DST execution units among a combined total number of current and new DST execution units.

18. The DSTN of claim 15 , the DSTN managing unit further configured to:

determine physical insertion points for each of the plurality of new DST execution units.

19. The DSTN of claim 15 , the DSTN managing unit further configured to:

determine the transfer address ranges so that each of the plurality of new and current DST execution units includes:

a number of addresses corresponding to the common magnitude; and

a contiguous address range with regards to an adjacent pair of DST execution units.

20. The DSTN of claim 15 , the DSTN managing unit further configured to:

facilitate transfer of encoded slices having addresses in the transfer address ranges from the plurality of current DST execution units to the plurality of new DST execution units by updating address range tables in at least one of each DST execution unit and at a system level.

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 Nov 9, 2016
From: BAPTIST, ANDREW D.; DHUSE, GREG R.; MOTWANI, MANISH; VOLVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040269/0511 →
Continuity (3)
Continuation In Part 13866457 · Apr 19, 2013
Provisional Application 61655753 · Jun 5, 2012
Related Publication 20170060739A1 · Mar 2, 2017