IP Library Granted Patent US 11,728,964
Granted Patent B2
US 11,728,964 · App. 17/663,566 · Granted Aug 15, 2023

Performance aided data migration in a distributed storage network

Inventors: Jason K. Resch (Warwick, RI); Greg R. Dhuse (Chicago, IL); Bart R. Cilfone (Marina del Rey, CA)
Assignee: Pure Storage, Inc.
H04L9/002G06F21/31G06F21/602G06F21/6218H04L9/085H04L9/0863H04L9/0869H04L9/3226H04L63/04H04L63/06H04L67/1097H04L67/535
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 11,728,964
App. No.
17/663,566
Granted
Aug 15, 2023
Kind
B2
Abstract

A method begins by a processing module of a storage unit of a storage network identifying a first storage format used to store a plurality of encoded data slices in a first memory of the storage unit and continues with the processing module determining to utilize another storage format for storage of the plurality of encoded data slices. The method then continues, with the storage unit selecting a second storage format for storage of the plurality of encoded data slices and initiating migration of the plurality of encoded data slices from the first storage format to storage using the second storage format. Finally, the method continues with updating a performance metric for at least a portion of the storage network while initiating migrating the plurality of encoded data slices.

Claims (67)

1. A method for execution by a storage unit of a storage network comprises:

identifying a first storage format used to store a plurality of encoded data slices in a first memory of a storage unit of a set of storage units, wherein a data object is segmented into a plurality of data segments, wherein each data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices;

determining to utilize another storage format for storage of the plurality of encoded data slices;

selecting a second storage format for storage of the plurality of encoded data slices; initiating migration of the plurality of encoded data slices from the first storage format to storage using the second storage format; and

while initiating migrating the plurality of encoded data slices, updating a performance metric for at least a portion of the storage network.

2. The method of claim 1 , wherein the determining to utilize another storage format for storage of the first plurality of encoded data slices is based on at least one of interpreting a request, identifying a data type, receiving new storage configuration information, detecting a storage efficiency level that compares unfavorably to a threshold level, and detecting an unfavorable performance level.

3. The method of claim 1 , wherein the migration of the plurality of encoded data slices from the first storage format to storage using the second storage format includes migrating the plurality of encoded data slices from a first memory to a second memory, wherein the first memory and the second memory are common to a same memory device.

4. The method of claim 1 , wherein the determining to utilize another storage format for storage of the first plurality of encoded data slices is associated with at least one of rebuilding encoded data slices, writing encoded data slices, retrieving encoded data slices, listing encoded data slices, performing maintenance tasks for the storage unit and performing balancing tasks for the storage unit.

5. The method of claim 1 , further comprising:

determining to migrate the set of encoded data slices, wherein the determining is based on at least one of detecting a storage inefficiency, receiving an error message, interpreting an error message and detecting an available storage level that compares favorably to an available storage threshold level.

6. The method of claim 1 , wherein the selecting the second storage format for the set of encoded data slices comprises at least one of:

identifying one or more storage formats;

estimating a level of storage performance for each of the one or more storage formats; and

selecting a second storage format that corresponds to a favorable estimated storage performance level.

7. The method of claim 1 , wherein the initiating migration of the plurality of encoded data slices from the first storage format to storage using the second storage format includes retrieving a first subset of the set of encoded data slices from the first memory using the first storage format and storing the first subset of the set of encoded data slices using the second storage format.

8. A computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by one or more processing modules of a storage unit of a storage network, causes the storage unit to:

identify a first storage format used to store a plurality of encoded data slices in a first memory of a storage unit of a set of storage units, wherein a data object is segmented into a plurality of data segments, wherein each data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices;

determine to utilize another storage format for storage of the plurality of encoded data slices;

select a second storage format for storage of the plurality of encoded data slices;

initiate migration of the plurality of encoded data slices from the first storage format to storage using the second storage format; and

while initiating migrating the plurality of encoded data slices, update a performance metric for at least a portion of the storage network.

9. The computer readable storage medium of claim 8 , wherein the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the storage unit to:

initiate migration of the plurality of encoded data slices based on at least one of interpreting a request, identifying a data type, receiving new storage configuration information, detecting a storage efficiency level that compares unfavorably to a threshold level, and detecting an unfavorable performance level.

10. The computer readable storage medium of claim 8 , wherein the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the storage unit to:

migrate the plurality of encoded data slices from the first storage format to storage using the second storage format by migrating the plurality of encoded data slices from a first memory to a second memory, wherein the first memory and the second memory are common to a same memory device.

11. The computer readable storage medium of claim 8 , wherein the determination to utilize another storage format for storage of the first plurality of encoded data slices is associated with at least one of rebuilding encoded data slices, writing encoded data slices, retrieving encoded data slices, listing encoded data slices, performing maintenance tasks for the storage unit and performing balancing tasks for the storage unit.

12. The computer readable storage medium of claim 8 , wherein the determination to migrate the set of encoded data slices from the first storage format to the second storage format is based on at least one of detecting a storage inefficiency, receiving an error message, interpreting an error message and detecting an available storage level that compares favorably to an available storage threshold level.

13. The computer readable storage medium of claim 8 wherein the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the storage unit to:

select the second storage format for the set of encoded data slices based on at least one of:

identifying one or more storage formats;

estimating a level of storage performance for each of the one or more storage formats; and

selecting the se storage format that corresponds to a favorable estimated storage performance level.

14. The computer readable storage medium of claim 8 wherein the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the storage unit to:

migrate a first subset of the set of encoded data slices from the first memory to the second memory by retrieving the first subset of the set of encoded data slices from the first DSN memory using the first storage format; and

store the first subset of the set of encoded data slices using the second storage format;

initiate migration of the plurality of encoded data slices from the first storage format to storage using the second storage format by retrieving a first subset of the set of encoded data slices from the first memory using the first storage format and storing the first subset of the set of encoded data slices using the second storage format.

15. A storage unit of a group of storage units of a storage network, the storage unit comprising:

an interface;

a local memory; and

a processing module operably coupled to the interface and the local memory, wherein the processing module functions to:

identify a first storage format used to store a plurality of encoded data slices in a first memory of a storage unit of a set of storage units, wherein a data object is segmented into a plurality of data segments, wherein each data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices;

determine to utilize another storage format for storage of the plurality of encoded data slices;

select a second storage format for storage of the plurality of encoded data slices;

select a second memory for the set of encoded data slices, wherein the second memory is configured to store the set of encoded data slices based on the second storage format;

migrate the plurality of encoded data slices from the first storage format to storage using the second storage format by migrating the plurality of encoded data slices from the first memory to a second memory;

determine a first migration rate to be used when migrating the set of encoded data slices from the first memory to the second memory;

determine to migrate a first subset of the set of encoded data slices from the first memory to the second memory based on the first migration rate;

monitor at least one of data access request activity or data access response activity associated with at least one of the first memory or the second memory;

select a second migration rate based on the at least one of data access request activity or data access response activity associated with the at least one of the first memory or the second memory; and

migrate a second subset of the set of encoded data slices from the first memory to the second memory based on the second migration rate.

16. The storage unit of claim 15 , wherein the processing module further functions to:

determine to migrate the first subset of the set of encoded data slices from the first memory to the second memory based on the first migration rate further based on at least one of:

interpreting a request;

identifying a data type;

receiving new storage configuration information;

detecting a storage efficiency level that compares unfavorably to a threshold level;

and detecting an unfavorable performance level.

17. The storage unit of claim 15 , wherein the first memory and the second memory are common to a same memory device.

18. The storage unit of claim 15 , wherein the at least one of data access request activity or data access response activity comprises at least one of rebuilding encoded data slices, writing encoded data slices, retrieving encoded data slices, listing encoded data slices, performing SU maintenance tasks and performing SU balancing tasks.

19. The storage unit of claim 15 , wherein the processing module further functions to:

determine to migrate the set of encoded data slices from the first storage format to the second storage format based on at least one of detecting a storage inefficiency, receiving an error message, interpreting an error message and detecting an available storage level that compares favorably to an available storage threshold level.

20. The storage unit of claim 15 , wherein the processing module further functions to:

select the second storage format for the set of encoded data slices based on at least one of:

identifying one or more storage formats;

estimating a level of storage performance for each of the one or more storage formats; and

selecting the second storage format that corresponds to a favorable estimated storage performance level.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2022
From: RESCH, JASON K.; DHUSE, GREG R.; CILFONE, BART R.
To: PURE STORAGE, INC.
Reel/Frame 059974/0103 →
Continuity (6)
Continuation In Part 16855395 · Apr 22, 2020
Continuation 16053466 · Aug 2, 2018
Continuation In Part 15827073 · Nov 30, 2017
Continuation In Part 14721838 · May 26, 2015
Provisional Application 62031342 · Jul 31, 2014
Related Publication 20220278821A1 · Sep 1, 2022
Cited By (1)
US 12,219,358