IP Library Granted Patent US 9,448,730
Granted Patent B2
US 9,448,730 · App. 12/778,701 · Granted Sep 20, 2016

Method and apparatus for dispersed storage data transfer

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,448,730
App. No.
12/778,701
Granted
Sep 20, 2016
Kind
B2
Abstract

The method begins with a processing module determining whether to reconstruct data corresponding to a plurality of data slices when the plurality of data slices is to be transferred from a first type of memory device to a second type of memory device. The method continues with the processing module retrieving the plurality of data slices from a first set of memory devices that are of the first type of memory, reconstructing at least a portion of the data from the plurality of data slice in accordance with a first error coding dispersal function to produce reconstructed data, encoding the reconstructed data in accordance with a second error coding dispersal function to produce a second plurality of data slices, and storing the second plurality of data slices in a second set of memory devices that are of the second type of memory when the data is to be reconstructed.

Claims (64)

1. A method for dispersed memory storage comprises:

determining whether to move storage of a first plurality of data slices from a first memory device to a second memory device, wherein the first memory device is of a first memory type that includes one or more of a flash memory and a random access memory, wherein the second memory device is of a second memory type that includes one or more of a magnetic hard disk and an optical disk, wherein the first memory device has first memory device capabilities based on the first memory type and the second memory device has second memory device capabilities based on the second memory type and the determining to move the first plurality of data slices is based on a difference between the first and second memory device capabilities;

determining whether to move the first plurality of data slices from the first memory device to the second memory device by reconstructing data or to move the first plurality of data slices without reconstruction;

moving storage of the first plurality of data slices from the first memory device to the second memory device when the first plurality of data slices is to be moved without reconstruction; and

wherein when the data is to be reconstructed:

retrieving the first plurality of data slices from the first memory device;

reconstructing at least a portion of the data from the first plurality of data slices in accordance with a first error coding dispersal function to produce reconstructed data, in which the first error coding dispersal function corresponds to the memory device capabilities of the first memory device;

encoding the reconstructed data in accordance with a second error coding dispersal function to produce a second plurality of data slices, wherein the second error coding dispersal function corresponds to the memory device capabilities of the second memory device; and

storing the second plurality of data slices in the second memory device.

2. The method of claim 1 , wherein the determining whether to move the first plurality of data slices is based on at least one of:

elapsed time period of storage in the first memory device;

elapsed time period since a last data slice retrieval from the first memory device;

a memory utilization indicator for the first memory device;

receiving a command; and

receiving a request.

3. The method of claim 1 further comprises:

when the data is to be moved without reconstruction:

retrieving the first plurality of data slices from the first memory device;

storing the first plurality of data slices in the second memory device; and

facilitating deletion of the first plurality of data slices from the first memory device.

4. The method of claim 1 , wherein the first error coding dispersal function comprises:

an error coding type that includes at least one of an error coding algorithm, an encryption algorithm, and a compression algorithm; and

operational parameters that include two or more of a pillar width, a read threshold, a slicing parameter, an integrity check method, a caching settings, and a parallelism settings.

5. The method of claim 1 , wherein the second error coding dispersal function comprises:

an error coding type that includes at least one of an error coding algorithm, an encryption algorithm, and a compression algorithm; and

operational parameters that include two or more of a pillar width, a read threshold, a slicing parameter, an integrity check method, a caching settings, and parallelism settings.

6. The method of claim 1 , wherein the first plurality of data slices correspond to a data segment.

7. The method of claim 1 , wherein the data is customized data or generic data.

8. A computer comprises:

a dispersal memory interface; and

a processing module operable to:

determine whether to move storage of a first plurality of data slices from a first memory device to a second memory device, wherein the first memory device is of a first memory type that includes one or more of a flash memory and a random access memory, wherein the second memory device is of a second memory type that includes one or more of a magnetic hard disk and an optical disk, wherein the first memory device has first memory device capabilities based on the first memory type and the second memory device has second memory device capabilities based on the second memory type and the determining to move the first plurality of data slices is based on a difference between the first and second memory device capabilities;

determine whether to move the first plurality of data slices from the first memory device to the second memory device by reconstructing data or to move the first plurality of data slices without reconstruction;

move storage of the first plurality of data slices from the first memory device to the second memory device when the first plurality of data slices is to be moved without reconstruction; and

when the data is to be reconstructed:

retrieve, via the dispersal memory interface, the first plurality of data slices from the first memory device;

reconstruct at least a portion of the data from the first plurality of data slices in accordance with a first error coding dispersal function to produce reconstructed data, in which the first error coding dispersal function corresponds to the memory device capabilities of the first memory device;

encode the reconstructed data in accordance with a second error coding dispersal function to produce a second plurality of data slices, wherein the second error coding dispersal function corresponds to the memory device capabilities of the second memory device; and

output, via the dispersal memory interface, the second plurality of data slices to the second memory device.

9. The computer of claim 8 further comprises:

a main memory and at least one of:

a local non-main memory; and

a non-local non-main memory.

10. The computer of claim 8 , wherein the dispersal memory interface may comprise at least one of:

a multi-general purpose input output unit; and

a plurality of interfaces.

11. The computer of claim 8 , wherein the processing module determines whether to transfer the first plurality of data slices based on at least one of:

elapsed time period of storage in the first memory device;

elapsed time period since a last data slice retrieval from the first memory device;

a memory utilization indicator for the first memory device;

obtaining a command; and

obtaining a request.

12. The computer of claim 8 , wherein when the data is to be moved without reconstruction, the processing module further functions to:

retrieve, via the dispersal memory interface, the first plurality of data slices from the first memory device;

output, via the dispersal memory interface, the first plurality of data slices to be stored in the second memory device; and

facilitate deletion, via the dispersal memory interface, of the first plurality of data slices from the first memory device.

13. The computer of claim 8 , wherein the first error coding dispersal function comprises:

an error coding type that includes at least one of an error coding algorithm, an encryption algorithm, and a compression algorithm; and

operational parameters that include two or more of a pillar width, a read threshold, a slicing parameter, an integrity check method, a caching settings, and a parallelism settings.

14. The computer of claim 8 , wherein the second error coding dispersal function comprises:

an error coding type that includes at least one of an error coding algorithm, an encryption algorithm, and a compression algorithm; and

operational parameters that include two or more of a pillar width, a read threshold, a slicing parameter, an integrity check method, a caching settings, and a parallelism settings.

15. The computer of claim 8 , wherein the first plurality of data slices correspond to a data segment.

16. The computer of claim 8 , wherein the data is customized data or generic data.

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 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2010
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 024375/0989 →