IP Library Granted Patent US 9,203,625
Granted Patent B2
US 9,203,625 · App. 13/683,964 · Granted Dec 1, 2015

Transferring encoded data slices in a distributed storage network

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,203,625
App. No.
13/683,964
Granted
Dec 1, 2015
Kind
B2
Abstract

A method begins by a distributed storage (DS) processing module identifying encoded data slices of stored encoded data slices to transfer, wherein the stored encoded data slices are assigned addresses within a local distributed storage network (DSN) address range, wherein a global DSN address space is divided into a plurality of address sectors, and wherein the local DSN address range is a portion of an address sector. The method continues with the DS processing module determining whether another local DSN address range in the address sector exists and when the other local DSN address range in the address sector exists, determining whether to transfer identified encoded data slices into the other local DSN address range. When the at least some of the identified encoded data slices are to be transferred, the method continues with the DS processing module initiating a data transfer protocol to transfer the identified encoded data slices.

Claims (54)

1. A distributed storage (DS) unit comprises:

a plurality of memory devices for storing encoded data slices, wherein data segments of data are encoded using a dispersed storage error coding function to produce a plurality of sets of encoded data slices, wherein the stored encoded data slices includes one or more encoded data slices of at least some sets of the plurality of sets of encoded data slices, wherein the DS unit is assigned a local distributed storage network (DSN) address range, wherein a global DSN address space is divided into a plurality of address sectors, and wherein the local DSN address range is a portion of an address sector of the plurality of address sectors; and

a processing module operably coupled to the plurality of memory devices, wherein the processing module is operable to:

identify encoded data slices of the stored encoded data slices to transfer to produce identified encoded data slices;

determine whether another DS unit has another local DSN address range in the address sector based on the global DSN address space;

when the other DS unit has the other local DSN address range in the address sector, determine whether to transfer at least some of the identified encoded data slices to the other DS unit based on a DSN data protocol; and

when the at least some of the identified encoded data slices are to be transferred to the other DS unit, initiate a data transfer protocol with the other DS unit.

2. The DS unit of claim 1 further comprises:

the plurality of sets of encoded data slices having a plurality of sets of slice names, wherein a slice name of the plurality of sets of slices names includes an address sector field that identifies one of the plurality of address sectors, which corresponds to an ordering of the dispersed storage error coding function.

3. The DS unit of claim 1 further comprises:

the DS unit and the other DS unit are assigned to the address sector by a system management function.

4. The DS unit of claim 1 , wherein the processing module is further operable to identify encoded data slices to transfer by:

identifying a memory device of the plurality of memory devices based on a memory device maintenance protocol; and

identifying encoded data slices stored by the memory device as the identified encoded data slices.

5. The DS unit of claim 1 , wherein the processing module is further operable to:

identify the identified encoded data slices by determining that the identified encoded data slices have a security level that indicates a requirement for data transfer; and

determine whether to transfer at least some of the identified encoded data slices to the other DS unit by determining whether the other DS unit has a desired security level.

6. The DS unit of claim 1 , wherein the processing module is further operable to determine whether the other DS unit has the other local DSN address range by at least one of:

accessing a mapping of the global DSN address space;

transmitting a request to a DSN management unit; and

transmitting a global request to DS units of the DSN.

7. The DS unit of claim 1 , wherein the DSN data protocol comprises one of:

determining DSN operational factors and, when the DSN operational factors are favorable, indicating that the identified encoded data slices are to be transferred;

accessing a predetermined data transfer plan; and

querying DS units of the DSN to identify the other DS unit.

8. The DS unit of claim 1 , wherein the processing module is further operable to initiate the data transfer protocol by:

communicating with the other DS unit to confirm transferring of the at least some of the identified encoded data slices; and

when the transferring of the at least some of the identified encoded data slices is confirmed, transmitting a set of write messages regarding the at least some of the identified encoded data slices to other DS unit, wherein the set of write messages is in accordance with a DSN write protocol.

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

a first section for storing operational instructions that, when executed by a processing module, causes the processing module to identify encoded data slices of stored encoded data slices to transfer to produce identified encoded data slices, wherein data segments of data are encoded using a dispersed storage error coding function to produce a plurality of sets of encoded data slices, wherein the stored encoded data slices includes one or more data slices of at least some sets of the plurality of sets of encoded data slices, wherein the stored encoded data slices are assigned addresses within a local distributed storage network (DSN) address range, wherein a global DSN address space is divided into a plurality of address sectors, and wherein the local DSN address range is a portion of an address sector of the plurality of address sectors;

a second section for storing operational instructions that, when executed by the processing module, causes the processing module to determine whether another local DSN address range in the address sector exists based on the global DSN address space;

a third section for storing operational instructions that, when executed by the processing module, causes the processing module to, when the other local DSN address range in the address sector exists, determine whether to transfer at least some of the identified encoded data slices into the other local DSN address range based on a DSN data protocol; and

a fourth section for storing operational instructions that, when executed by the processing module, causes the processing module to, when the at least some of the identified encoded data slices are to be transferred, initiate a data transfer protocol to transfer the identified encoded data slices.

10. The non-transitory computer readable storage medium of claim 9 further comprises:

the plurality of sets of encoded data slices having a plurality of sets of slice names, wherein a slice name of the plurality of sets of slices names includes an address sector field that identifies one of the plurality of address sectors, which corresponds to an ordering of the dispersed storage error coding function.

11. The non-transitory computer readable storage medium of claim 9 further comprises:

the local DSN address range and the other local DSN address range are assigned to the address sector by a system management function.

12. The non-transitory computer readable storage medium of claim 9 , wherein the first section further comprises operational instructions that cause the processing module to identify the encoded data slices to transfer by:

identifying a memory device of a plurality of memory devices based on a memory device maintenance protocol; and

identifying encoded data slices stored by the memory device as the identified encoded data slices.

13. The non-transitory computer readable storage medium of claim 9 further comprises:

the first section further including operational instructions that cause the processing module to identify the identified encoded data slices by determining that the identified encoded data slices have a security level that indicates a requirement for data transfer; and

the third section further including operational instructions that cause the processing module to determine whether to transfer at least some of the identified encoded data slices to the other local DSN address range by determining whether the other local DSN address range has a desired security level.

14. The non-transitory computer readable storage medium of claim 9 , wherein the second section further comprises operational instructions that cause the processing module to determine whether the other local DSN address range in the address sector exists by at least one of:

accessing a mapping of the global DSN address space;

transmitting a request to a DSN management unit; and

transmitting a global request to DS units of the DSN.

15. The non-transitory computer readable storage medium of claim 9 , wherein the DSN data protocol comprises one of:

determining DSN operational factors and, when the DSN operational factors are favorable, indicating that the identified encoded data slices are to be transferred;

accessing a predetermined data transfer plan; and

querying DS units of the DSN to identify the other local DSN address range.

16. The non-transitory computer readable storage medium of claim 9 , wherein the fourth section further comprises operational instructions that cause the processing module to initiate the data transfer protocol by:

communicating messages to confirm transferring of the at least some of the identified encoded data slices; and

when the transferring of the at least some of the identified encoded data slices is confirmed, transmitting a set of write messages regarding the at least some of the identified encoded data slices, wherein the set of write messages is in accordance with a DSN write protocol.

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 Nov 30, 2012
From: MOTWANI, MANISH; VOLVOVSKI, ILYA
To: CLEVERSAFE, INC.
Reel/Frame 029388/0599 →