IP Library Granted Patent US 11,714,719
Granted Patent B2
US 11,714,719 · App. 17/937,365 · Granted Aug 1, 2023

Tiered storage of data in a storage network

Inventors: S. Christopher Gladwin (Chicago, IL); Timothy W. Markison (Mesa, AZ); Greg R. Dhuse (Chicago, IL); Thomas F. Shirley, Jr. (Oconomowoc, WI); Wesley B. Leggette (Chicago, IL); Jason K. Resch (Warwick, RI); Gary W. Grube (Barrington Hills, IL)
Assignee: Pure Storage, Inc.
G06F11/1076G06F3/06G06F3/061G06F3/064G06F3/067G06F3/0619G06F3/0635G06F3/0659G06F12/1458G06F21/00G06F21/6218H03M13/2903G06F12/1483G06F2211/1028H03M13/09H03M13/3761H04L67/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 11,714,719
App. No.
17/937,365
Granted
Aug 1, 2023
Kind
B2
Abstract

Apparatus for tiered storage of data in a storage network. In an example of operation, a computing device receives a data object for storage and forwards the data object for storage in a first plurality of memory devices of a first memory type. The computing device determines a system level storage efficiency for the data object based, at least in part, on a data attribute associated with the data object. The computing device further selects, based at least in part on the system level storage efficiency preference, a second plurality of memory devices comprised of a second memory type. The computing device determines error encoding parameters based on the second plurality of memory devices, retrieves the data object from the first plurality of memory devices, and encodes the data object with the error encoding parameters to generate a plurality of encoded data slices for storage in the second plurality of memory devices.

Claims (51)

1. A computing device comprising:

one or more network interfaces;

memory including operational instructions; and

a processing module operably coupled to the memory and the one or more network interfaces, the processing module configured to execute the operational instructions to:

receive a data object for storage in memory of a storage network;

forward, via the one or more network interfaces, the data object for storage in a first plurality of memory devices of the storage network, the first plurality of memory devices comprised of a first memory type;

determine a system level storage efficiency preference for the data object based, at least in part, on a data attribute associated with the data object;

select, based at least in part on the system level storage efficiency preference, a second plurality of memory devices of the storage network, the second plurality of memory devices comprised of a second memory type;

determine error encoding parameters based, at least in part, on the second plurality of memory devices;

retrieve the data object from the first plurality of memory devices;

encode the data object in accordance with the error encoding parameters to generate a plurality of encoded data slices; and

forward the plurality of encoded data slices to the second plurality of memory devices for storage therein.

2. The computing device of claim 1 , wherein the data attribute is a data size of the data object.

3. The computing device of claim 1 , wherein the data attribute is a data type of the data object.

4. The computing device of claim 1 , wherein determining the system level storage efficiency preference for the data object is further based on system storage node information.

5. The computing device of claim 1 , wherein determining the error encoding parameters is further based on the system level storage efficiency preference.

6. The computing device of claim 1 , wherein the first plurality of memory devices is included in a first set of storage nodes of the storage network and the second plurality of memory devices is included in a second set of storage nodes of the storage network.

7. The computing device of claim 6 , wherein determining the error encoding parameters includes determining the error encoding parameters based on a number of storage nodes of the second set of storage nodes.

8. The computing device of claim 1 , wherein the processing module is further configured to execute the operational instructions to:

generate system addressing information for the plurality of encoded data slices based, at least in part, on an identifier associated with the data object.

9. The computing device of claim 8 , wherein the processing module is further configured to execute the operational instructions to:

update an entry of at least one of a directory or a dispersed hierarchical index to associate the data object and the system addressing information.

10. A computing device comprising:

memory including operational instructions; and

a processing module operably coupled to the memory, the processing module configured to execute the operational instructions to:

receive a data object for storage in memory of a storage network;

forward the data object for storage in a first set of storage nodes of the storage network, the first set of storage nodes including a plurality of memory devices comprised of a first memory type;

determine a system level storage efficiency preference for the data object based, at least in part, on a data attribute associated with the data object;

select, based at least in part on the system level storage efficiency preference, a second set of storage nodes of the storage network, the second set of storage nodes including a plurality of memory devices comprised of a second memory type;

determine error encoding parameters based, at least in part, on the second set of storage nodes;

retrieve the data object from the first set of storage nodes;

encode the data object in accordance with the error encoding parameters to generate a plurality of encoded data slices; and

forward the plurality of encoded data slices to the second set of storage nodes for storage therein.

11. The computing device of claim 10 , wherein the data attribute is a data size of the data object.

12. The computing device of claim 10 , wherein the data attribute is a data type of the data object.

13. The computing device of claim 10 , wherein determining the system level storage efficiency preference for the data object is further based on system storage node information.

14. The computing device of claim 10 , wherein determining the error encoding parameters is further based on the system level storage efficiency preference.

15. The computing device of claim 10 , wherein determining the error encoding parameters includes determining the error encoding parameters based on a number of storage nodes of the second set of storage nodes.

16. A method for execution by one or more computing devices, the method comprising:

receiving a data object for storage in memory of a storage network;

forwarding the data object for storage in a first plurality of memory devices of the storage network, the first plurality of memory devices comprised of a first memory type;

determining a system level storage efficiency preference for the data object based, at least in part, on a data attribute associated with the data object;

selecting, based at least in part on the system level storage efficiency preference, a second plurality of memory devices of the storage network, the second plurality of memory devices comprised of a second memory type;

determining error encoding parameters based, at least in part, on the second plurality of memory devices;

retrieving the data object from the first plurality of memory devices;

encoding the data object in accordance with the error encoding parameters to generate a plurality of encoded data slices; and

forwarding the plurality of encoded data slices to the second plurality of memory devices for storage therein.

17. The method of claim 16 , wherein the data attribute is a data size of the data object.

18. The method of claim 16 , wherein the data attribute is a data type of the data object.

19. The method of claim 16 , wherein determining the error encoding parameters is further based on the system level storage efficiency preference.

20. The method of claim 16 , wherein the first plurality of memory devices is included in a first set of storage nodes of the storage network and the second plurality of memory devices is included in a second set of storage nodes of the storage network, and wherein determining the error encoding parameters includes determining the error encoding parameters based on a number of storage nodes of the second set of storage nodes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2022
From: GLADWIN, S. CHRISTOPHER; MARKISON, TIMOTHY W.; DHUSE, GREG R.; SHIRLEY, THOMAS F., JR.; LEGGETTE, WESLEY B.; RESCH, JASON K.; GRUBE, GARY W.
To: PURE STORAGE, INC.
Reel/Frame 061284/0416 →
Continuity (9)
Continuation 17806662 · Jun 13, 2022
Continuation 17151249 · Jan 18, 2021
Continuation 16580379 · Sep 24, 2019
Continuation In Part 16047942 · Jul 27, 2018
Continuation In Part 15224839 · Aug 1, 2016
Continuation 14792898 · Jul 7, 2015
Continuation 13889557 · May 8, 2013
Provisional Application 61663836 · Jun 25, 2012
Related Publication 20230027787A1 · Jan 26, 2023