IP Library Granted Patent US 10,997,023
Granted Patent B1
US 10,997,023 · App. 16/677,143 · Granted May 4, 2021

Processing a request for encoded data in a storage network

Inventors: Andrew D. Baptist (Mt. Pleasant, WI); Manish Motwani (Chicago, IL); Jason K. Resch (Chicago, IL); Ilya Volvovski (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/108G06F3/061G06F3/0604G06F3/065G06F3/0605G06F3/067G06F3/0619G06F3/0622G06F3/0643G06F3/0644G06F3/0647G06F3/0653G06F3/0668G06F3/0689G06F11/1076G06F11/1662G06F11/3034G06F13/4282G06F16/122G06F16/1824G06F16/24578G06F21/6218G06F21/645H03M13/2906H03M13/3761H04L9/0861H04L63/061H04L63/0853H04L63/108H04L67/1097H04L67/327G06F3/064G06F2201/805H03M13/1515H04L63/0428
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 10,997,023
App. No.
16/677,143
Granted
May 4, 2021
Kind
B1
Abstract

A method for execution by a dispersed storage and task (DST) execution unit includes receiving a slice access request for execution by the DST execution unit. At least one ordered codec algorithm is identified. The slice access request is executed by utilizing the at least one ordered codec algorithm. A slice access response indicating an outcome of the slice access request is generated by the DST execution unit.

Claims (45)

1. A method for execution by a storage unit that includes a processor, the method comprising:

receiving a first slice access request for execution by the storage unit, wherein the first slice access request includes a write request to write a first data slice to a memory of the storage unit;

identifying a first plurality of ordered codec algorithms based on a storage unit capability, a storage set capability, a request from another storage unit, a data type of the first data slice, a slice size of the first data slice, a performance requirement, a security requirement, or system registry information, wherein the first plurality of ordered codec algorithms includes a compression function, an encryption function, and an integrity adding function;

executing the first slice access request by performing the first plurality of ordered codec algorithms in a forward order on the first data slice to generate a first encoded data slice and storing, in the memory of the storage unit, the first encoded data slice and at least one identifier of the first plurality of ordered codec algorithms, wherein the forward order includes the compression function, then the encryption function, and then the integrity adding function;

receiving a second slice access request for execution by the storage unit, wherein the second slice access request includes a read request to read the first data slice from the memory of the storage unit;

identifying the first plurality of ordered codec algorithms based on the at least one identifier of the first plurality of ordered codec algorithms associated with the first data slice;

executing the second slice access request by retrieving the first encoded data slice from the memory and by performing the first plurality of ordered codec algorithms in a reverse order to generate a first decoded data slice from the first encoded data slice; and

generating a first slice access response indicating an outcome of the second slice access request.

2. The method of claim 1 , wherein the first plurality of ordered codec algorithms is identified further based on a slice name associated with the first data slice.

3. The method of claim 1 , wherein the first slice access response includes the first decoded data slice.

4. The method of claim 1 , wherein the reverse order includes the integrity adding function, then the encryption function, and then the compression function.

5. The method of claim 1 , wherein the at least one identifier of the first plurality of ordered codec algorithms includes an ordered list of identifiers associated with each of the first plurality of ordered codec algorithms.

6. The method of claim 1 , further comprising:

receiving a third slice access request for execution by the storage unit, wherein the third slice access request includes a write request to write a second data slice to the memory of the storage unit;

identifying a second plurality of ordered codec algorithms;

executing the third slice access request by performing the second plurality of ordered codec algorithms in a forward order on the second data slice to generate an second encoded data slice, and storing, in the memory of the storage unit, the second encoded data slice and at least one identifier of the second plurality of ordered codec algorithms.

7. The method of claim 6 , further comprising:

receiving a fourth slice access request for execution by the storage unit, wherein the fourth slice access request includes a read request to read the second data slice from the memory of the storage unit;

identifying the second plurality of ordered codec algorithms based on the at least one identifier of the second plurality of ordered codec algorithms associated with the second data slice;

executing the fourth slice access request by retrieving the second encoded data slice from the memory and by performing the second plurality of ordered codec algorithms in a reverse order to generate a second decoded data slice from the second encoded data slice;

generating a second slice access response indicating an outcome of the fourth slice access request.

8. A processing system of a storage unit comprises:

a memory that stores operational instructions; and

processing circuitry that includes a processor configured by the operational instructions to perform operations including:

receiving a first slice access request for execution by the storage unit, wherein the first slice access request includes a write request to write a first data slice to a memory of the storage unit;

identifying a first plurality of ordered codec algorithms based on a storage unit capability, a storage set capability, a request from another storage unit, a data type of the first data slice, a slice size of the first data slice, a performance requirement, a security requirement, or system registry information, wherein the first plurality of ordered codec algorithms includes a compression function, an encryption function, and an integrity adding function;

executing the first slice access request by performing the first plurality of ordered codec algorithms in a forward order on the first data slice to generate a first encoded data slice and storing, in the memory of the storage unit, the first encoded data slice and at least one identifier of the first plurality of ordered codec algorithms, wherein the forward order includes the compression function, then the encryption function, and then the integrity adding function;

receiving a second slice access request for execution by the storage unit, wherein the second slice access request includes a read request to read the first data slice from the memory of the storage unit;

identifying the first plurality of ordered codec algorithms based on the at least one identifier of the first plurality of ordered codec algorithms associated with the first data slice;

executing the second slice access request by retrieving the first encoded data slice from the memory and by performing the first plurality of ordered codec algorithms in a reverse order to generate a first decoded data slice from the first encoded data slice; and

generating a first slice access response indicating an outcome of the second slice access request.

9. The processing system of claim 8 , wherein the first plurality of ordered codec algorithms is identified further based on a slice name associated with the first data slice.

10. The processing system of claim 8 , wherein the first slice access response includes the first decoded data slice.

11. The processing system of claim 8 , wherein the reverse order includes the integrity adding function, then the encryption function, and then the compression function.

12. The processing system of claim 8 , wherein the at least one identifier of the first plurality of ordered codec algorithms includes an ordered list of identifiers associated with the first plurality of ordered codec algorithms.

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

at least one memory section that stores operational instructions that, when executed by a processing system of a storage unit that includes a processor and a memory, causes the processing system to perform operations including:

receiving a first slice access request for execution by the storage unit, wherein the first slice access request includes a write request to write a first data slice to a memory of the storage unit;

identifying a first plurality of ordered codec algorithms based on a storage unit capability, a storage set capability, a request from another storage unit, a data type of the first data slice, a slice size of the first data slice, a performance requirement, a security requirement, or system registry information, wherein the first plurality of ordered codec algorithms includes a compression function, an encryption function, and an integrity adding function;

executing the first slice access request by performing the first plurality of ordered codec algorithms in a forward order on the first data slice to generate a first encoded data slice and storing, in the memory of the storage unit, the first encoded data slice and at least one identifier of the first plurality of ordered codec algorithms, wherein the forward order includes the compression function, then the encryption function, and then the integrity adding function;

receiving a second slice access request for execution by the storage unit, wherein the second slice access request includes a read request to read the first data slice from the memory of the storage unit;

identifying the first plurality of ordered codec algorithms based on the at least one identifier of the first plurality of ordered codec algorithms associated with the first data slice;

executing the second slice access request by retrieving the first encoded data slice from the memory and by performing the first plurality of ordered codec algorithms in a reverse order to generate a first decoded data slice from the first encoded data slice; and

generating a first slice access response indicating an outcome of the second slice access request.

14. A non-transitory computer readable storage medium of claim 13 , wherein the at least one identifier of the first plurality of ordered codec algorithms includes an ordered list of identifiers associated with each of the first plurality of ordered codec algorithms.

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 Nov 8, 2019
From: BAPTIST, ANDREW D.; MOTWANI, MANISH; RESCH, JASON K.; VOLVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 050955/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 050968/0407 →