IP Library Patent Application 15846527
Patent Application
App. No. 15/846,527

STORAGE POOL MIGRATION EMPLOYING PROXY SLICE REQUESTS

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 None
App. No.
15/846,527
Abstract

A first storage unit included in a first storage pool of a distributed storage network (DSN) receives a read-slice request associated with an encoded data slice. The first storage unit determines that the encoded data slice is unavailable, and that a migration process is active. The migration process includes migration of an encoded data slice between the first storage unit and a second storage unit included in a second storage pool. The first storage unit determines a status of a migration task associated with migration of the encoded data slice, and conditionally issues a proxy read-slice request from the present storage unit to the previous storage unit based, at least in part, on that status.

Claims (61)

1 . A method for use in a processing device configured to implement a storage unit, the storage unit 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:

receiving, at a first storage unit included in a first storage pool, a read-slice request associated with an encoded data slice;

determining, at the first storage unit, that the encoded data slice is unavailable at the first storage unit;

determining, at the first storage unit, that a migration process is active in the first storage unit, the migration process including migration of an encoded data slice between the first storage unit included in the first storage pool and a second storage unit included in a second storage pool;

determining, at the first storage unit, a migration status associated with migration of the encoded data slice; and

conditionally issuing a proxy read-slice request from the first storage unit to the second storage unit based, at least in part, on the status migration associated with migration of the encoded data slice.

2 . The method of claim 1 , further comprising:

issuing the proxy read-slice request from the first storage unit in response to determining that the migration status is incomplete.

3 . The method of claim 1 , further comprising:

in response to a determination that the encoded data slice is not stored in the first storage unit, issuing a read-slice-request response indicating that the encoded data slice is missing.

4 . The method of claim 1 , further comprising:

determining whether the first storage unit is also the second storage unit based on a result of a distributed agreement function protocol.

5 . The method of claim 4 , further comprising:

issuing a read slice response indicating that the encoded data slice is not available at the first storage unit in response to a determination that the first storage unit is also the second storage unit.

6 . The method of claim 1 , further comprising:

determining whether a migration task associated with migration of the encoded data slice has been completed prior to expiration of a migration timeframe.

7 . The method of claim 1 , further comprising:

issuing, by the first storage unit, a read-slice-request response indicating a namespace error in response to a distributed agreement function protocol indicating that a slice name associated with the encoded data slice is associated with a different storage pool.

8 . A storage unit for use in a distributed storage network (DSN) configured to store data objects as sets of encoded data slices in a plurality of storage units organized as storage pools, the storage unit comprising:

a processor and associated memory;

a plurality of memory portions coupled to the processor and associated memory, and configured to store encoded data slices;

a network interface coupled to the processor and associated memory, the network interface further configured to couple the storage unit to other storage units included in a first storage pool and to a requesting device included in the DSN;

the processor and associated memory configured to:

receive a read-slice request from the requesting device, the read-slice request associated with an encoded data slice;

determine that the encoded data slice is unavailable at the storage unit;

determine that a migration process is active in the storage unit, the migration process including migration of an encoded data slice between the storage unit and a second storage unit included in a second storage pool;

determine a status of a migration task associated with migration of the encoded data slice; and

conditionally issuing a proxy read-slice request to the second storage unit based, at least in part, on the status of the migration task associated with migration of the encoded data slice.

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

issue the proxy read-slice request in response to determining that the status of the migration task indicates incomplete.

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

in response to a determination that the encoded data slice is not present in the storage unit, issue a read-slice-request response to the requesting device indicating that the encoded data slice is missing.

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

determine, based on a result of a distributed agreement function protocol, whether the storage unit is also the second storage unit.

12 . The storage unit of claim 11 , the processor and associated memory further configured to:

issue a read slice response indicating that the encoded data slice is not available at the storage unit in response to a determination that the storage unit is also the second storage unit.

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

determine whether the migration task has been completed prior to expiration of a migration timeframe.

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

issue a read-slice-request response indicating a namespace error in response to a distributed agreement function protocol indicating that a slice name associated with the encoded data slice is associated with a different storage pool.

15 . A distributed storage network (DSN) comprising:

a plurality of storage units organized as storage pools, each of the plurality of storage units including:

a processor and associated memory;

a plurality of memory portions coupled to the processor and associated memory, and configured to store encoded data slices;

a requesting device including a processor and associated memory configured to implement a client module, the client module configured to communicate with the plurality of storage units via a communications network;

the plurality of storage units including a first storage unit included in a first storage pool, the first storage unit configured to:

receive a read-slice request from the requesting device, the read-slice request associated with an encoded data slice;

determine that the encoded data slice is unavailable at the first storage unit;

determine that a migration process is active in the first storage unit, the migration process including migration of an encoded data slice between the first storage unit and a second storage unit included in a second storage pool;

determine a status of a migration task associated with migration of the encoded data slice; and

conditionally issuing a proxy read-slice request to the second storage unit based, at least in part, on the status of the migration task associated with migration of the encoded data slice.

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

issue the proxy read-slice request in response to determining that the status of the migration task indicates incomplete.

17 . The distributed storage network (DSN) of claim 15 , the first storage unit further configured to:

in response to a determination that the encoded data slice is not present in the first storage unit, issue a read-slice-request response to the requesting device indicating that the encoded data slice is missing.

18 . The distributed storage network (DSN) of claim 15 , the first storage unit further configured to:

determine, based on a result of a distributed agreement function protocol, whether the first storage unit is also the second storage unit.

19 . The distributed storage network (DSN) of claim 18 , the first storage unit further configured to:

issue a read slice response indicating that the encoded data slice is not available at the first storage unit in response to a determination that the first storage unit is also the second storage unit.

20 . The distributed storage network (DSN) of claim 15 , the first storage unit further configured to:

determine whether the migration task has been completed prior to expiration of a migration timeframe.

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 20, 2017
From: MOTWANI, MANISH; RESCH, JASON K.; BAPTIST, ANDREW D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044453/0576 →