IP Library Granted Patent US 10,503,596
Granted Patent B2
US 10,503,596 · App. 15/143,988 · Granted Dec 10, 2019

Accessing an encoded data slice in a dispersed 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/0605G06F3/065G06F3/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,503,596
App. No.
15/143,988
Granted
Dec 10, 2019
Kind
B2
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 (22)

1. A method for execution by a dispersed storage and task (DST) execution unit that includes a processor, the method comprises:

receiving a slice access request for execution by the DST execution unit, wherein the slice access request includes a read request to read a first, pre-encoded data slice from a memory of the DST execution unit and wherein the slice access request includes a write request to write a second data slice to a memory of the DST execution unit;

identifying a plurality of ordered codec algorithms by reproducing a codec algorithm identifier associated with the first pre-encoded data slice, wherein the plurality of ordered codec algorithms is identified based on at least one of: a storage unit capability, a storage set capability, a request from another storage unit, a data type, a slice size, a performance requirement, a security requirement, or system registry information;

executing the slice access request by retrieving the first pre-encoded data slice from the memory and by performing the plurality of ordered codec algorithms in a reverse order to generate a decoded data slice from the first pre-encoded data slice, wherein the slice access request is further executed by performing the plurality of ordered codec algorithms in a forward order on the second data slice to generate an encoded data slice for storage in the memory of the DST execution unit; and

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

2. The method of claim 1 , wherein the plurality of ordered codec algorithms is identified based on at least one of: a slice name or a codec algorithm identifier associated with the slice access request.

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

4. A processing system of a dispersed storage and task (DST) execution unit comprises:

at least one processor;

a memory that stores operational instructions, that when executed by the at least one processor cause the processing system to:

receive a slice access request for execution by the DST execution unit, wherein the slice access request includes a read request to read a first, pre-encoded data slice from a memory of the DST execution unit and wherein the slice access request includes a write request to write a second data slice to a memory of the DST execution unit;

identify a plurality of ordered codec algorithms by reproducing a codec algorithm identifier associated with the first pre-encoded data slice, wherein the plurality of ordered codec algorithms is identified based on at least one of: a storage unit capability, a storage set capability, a request from another storage unit, a data type, a slice size, a performance requirement, a security requirement, or system registry information;

execute the slice access request by retrieving the first pre-encoded data slice from the memory and by performing the plurality of ordered codec algorithms in a reverse order to generate a decoded data slice from the first pre-encoded data slice, wherein the slice access request is further executed by performing the plurality of ordered codec algorithms in a forward order on the second data slice to generate an encoded data slice for storage in the memory of the DST execution unit; and

generate a slice access response indicating an outcome of the slice access request.

5. The processing system of claim 4 , wherein the plurality of ordered codec algorithms is identified based on at least one of: a slice name or a codec algorithm identifier associated with the slice access request.

6. The processing system of claim 4 , wherein the slice access response includes the decoded data slice.

7. 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 dispersed storage network (DSN) that includes a processor and a memory, causes the processing system to:

receive a slice access request for execution by a DST execution unit, wherein the slice access request includes a read request to read a first, pre-encoded data slice from a memory of the DST execution unit and wherein the slice access request includes a write request to write a second data slice to a memory of the DST execution unit;

identify a plurality of ordered codec algorithms by reproducing a codec algorithm identifier associated with the first pre-encoded data slice, wherein the plurality of ordered codec algorithms is identified based on at least one of: a storage unit capability, a storage set capability, a request from another storage unit, a data type, a slice size, a performance requirement, a security requirement, or system registry information;

execute the slice access request by retrieving the first pre-encoded data slice from the memory and by performing the plurality of ordered codec algorithms in a reverse order to generate a decoded data slice from the first pre-encoded data slice, wherein the slice access request is further executed by performing the plurality of ordered codec algorithms in a forward order on the second data slice to generate an encoded data slice for storage in the memory of the DST execution unit; and

generate a slice access response indicating an outcome of the slice access request.

Assignments (5)
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 DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2016
From: BAPTIST, ANDREW D.; MOTWANI, MANISH; RESCH, JASON K.; VOLVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038435/0839 →
Continuity (2)
Provisional Application 62199816 · Jul 31, 2015
Related Publication 20170034273A1 · Feb 2, 2017