IP Library Granted Patent US 10,852,957
Granted Patent B2
US 10,852,957 · App. 15/842,127 · Granted Dec 1, 2020

Migration agent employing moveslice request

Inventors: Manish Motwani (Chicago, IL); Jason K. Resch (Chicago, IL); Andrew D. Baptist (Mt. Pleasant, WI)
Assignee: PURE STORAGE, INC.
G06F3/0619G06F3/061G06F3/067G06F3/0644G06F3/0647H04L67/1097
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,852,957
App. No.
15/842,127
Granted
Dec 1, 2020
Kind
B2
Abstract

A migration agent, which is part of a distributed storage network, identifies one or more data objects stored as sets of encoded data slices in a first storage pool, and determines, for each of those data objects, whether to migrate corresponding sets of encoded data slices from the first storage pool to another storage pool. For at least one of the data objects, the migration agent determines to migrate a set of encoded data slices, and issues a set of MoveSlice requests to storage units included in the first storage pool, from which the data slices will be migrated. In response to the MoveSlice requests, the migration agent receives MoveSlice responses from the storage units in the first storage pool. If a threshold number of favorable MoveSlice responses is received, the migration agent facilitates deletion of the migrated encoded data slices from the first storage pool.

Claims (72)

1. A method for use in a processing device configured to implement a migration agent, the migration agent operating within a distributed storage network (DSN) configured to store data objects as sets of encoded data slices in a plurality of distributed storage units organized as storage pools, the method comprising:

identifying, at the migration agent, one or more data objects stored as sets of encoded data slices in a first storage pool;

for each data object of the one or more data objects, determining whether to migrate corresponding sets of encoded data slices from the first storage pool to another storage pool;

for at least one data object of the one or more data objects:

determining to migrate a set of encoded data slices associated with the at least one data object from the first storage pool to another storage pool;

issuing a set of MoveSlice requests to storage units included in the first storage pool;

receiving, at the migration agent, MoveSlice responses from at least some storage units included in the first storage pool; and

in response to receiving a threshold number of favorable MoveSlice responses, facilitating deletion of the corresponding sets of encoded data slices stored in the first storage pool.

2. The method of claim 1 , further comprising:

determining whether to migrate corresponding sets of encoded data slices by performing a distributed agreement protocol (DAP) function on a DSN address of the at least one data object utilizing location weights of the storage pools to produce ranked scoring information.

3. The method of claim 2 , further comprising:

identifying an associated storage pool based on the ranked scoring information; and

determining to migrate if the associated storage pool is different than the first storage pool.

4. The method of claim 3 , wherein:

the DAP function is performed using a decentralized agreement module included in the migration agent; and

a MoveSlice request includes an identifier specifying the associated storage pool.

5. The method of claim 3 , wherein:

the associated storage pool is identified by performing the DAP function at each storage unit receiving a MoveSlice request.

6. The method of claim 1 , wherein:

identifying the one or more data objects includes at least one of: interpreting a DSN directory, interpreting entries of a dispersed hierarchical index, interpreting one or more list slice responses, or interpreting a received request.

7. The method of claim 1 , wherein determining whether to migrate corresponding sets of encoded data slices from the first storage pool to another storage pool includes:

detecting a change in a location weight of one or more storage pools.

8. A migration agent, comprising:

a processing module including a processor and associated memory;

a decentralized agreement module coupled to the processing module;

the processing module configured to:

identify one or more data objects stored as sets of encoded data slices in a first storage pool of a distributed storage network (DSN) configured to store data objects as sets of encoded data slices in a plurality of distributed storage units organized into storage pools;

determine, for each data object of the one or more data objects, whether to migrate corresponding sets of encoded data slices from the first storage pool to another storage pool;

for at least one data object of the one or more data objects:

determine to migrate a set of encoded data slices associated with the at least one data object from the first storage pool to another storage pool;

issue a set of MoveSlice requests to storage units included in the first storage pool;

receive, at the migration agent, MoveSlice responses from at least some storage units included in the first storage pool; and

in response to receiving a threshold number of favorable MoveSlice responses, facilitate deletion of the corresponding sets of encoded data slices stored in the first storage pool.

9. The migration agent of claim 8 , wherein the processing module is further configured to:

determine whether to migrate corresponding sets of encoded data slices by performing a distributed agreement protocol (DAP) function on a DSN address of the at least one data object utilizing location weights of the storage pools to produce ranked scoring information.

10. The migration agent of claim 9 , the processing module configured to:

identify an associated storage pool based on the ranked scoring information; and

determine to migrate if the associated storage pool is different than the first storage pool.

11. The migration agent of claim 10 , wherein:

the DAP function is performed using the decentralized agreement module; and

a MoveSlice request includes an identifier specifying the associated storage pool.

12. The migration agent of claim 8 , wherein:

identifying the one or more data objects includes at least one of: interpreting a DSN directory, interpreting entries of a dispersed hierarchical index, interpreting one or more list slice responses, or interpreting a received request.

13. The migration agent of claim 8 , wherein determining whether to migrate corresponding sets of encoded data slices from the first storage pool to another storage pool includes:

detecting a change in a location weight of one or more storage pools.

14. A distributed storage network (DSN) comprising:

a plurality of distributed storage task execution (DST EX) units organized as storage pools, each of the plurality of DST EX units including a plurality of distributed storage (DS) memories configured to store data objects as sets of encoded data slices;

a migration agent coupled to the plurality of DST EX units via a communication network, the migration agent including:

a processing module including a processor and associated memory;

a decentralized agreement module coupled to the processing module;

the processing module configured to:

identify one or more data objects stored as sets of encoded data slices in a first storage pool;

determine, for each data object of the one or more data objects, whether to migrate corresponding sets of encoded data slices from the first storage pool to another storage pool;

for at least one data object of the one or more data objects:

determine to migrate a set of encoded data slices associated with the at least one data object from the first storage pool to another storage pool;

issue a set of MoveSlice requests to storage units included in the first storage pool;

receive, at the migration agent, MoveSlice responses from at least some storage units included in the first storage pool; and

in response to receiving a threshold number of favorable MoveSlice responses, facilitate deletion of the corresponding sets of encoded data slices stored in the first storage pool.

15. The distributed storage network (DSN) of claim 14 , the migration agent further configured to:

determine whether to migrate corresponding sets of encoded data slices by performing a distributed agreement protocol (DAP) function on a DSN address of the at least one data object utilizing location weights of the storage pools to produce ranked scoring information.

16. The distributed storage network (DSN) of claim 15 , the migration agent further configured to:

identify an associated storage pool based on the ranked scoring information; and

determine to migrate if the associated storage pool is different than the first storage pool.

17. The distributed storage network (DSN) of claim 16 , wherein:

the DAP function is performed using the decentralized agreement module and

the migration agent is configured to generate a MoveSlice request including an identifier specifying the associated storage pool.

18. The distributed storage network (DSN) of claim 16 , each of the plurality of DST EX units is further configured to:

identify the associated storage pool by performing the DAP function.

19. The distributed storage network (DSN) of claim 14 , the migration agent further configured to:

identify the one or more data objects includes at least one of: interpreting a DSN directory, interpreting entries of a dispersed hierarchical index, interpreting one or more list slice responses, or interpreting a received request.

20. The distributed storage network (DSN) of claim 14 , the migration agent further configured to:

detect a change in a location weight of one or more storage pools.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 050451/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2017
From: MOTWANI, MANISH; RESCH, JASON K.; BAPTIST, ANDREW D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044415/0328 →
Continuity (3)
Continuation In Part 15006845 · Jan 26, 2016
Provisional Application 62141034 · Mar 31, 2015
Related Publication 20180107415A1 · Apr 19, 2018