IP Library Granted Patent US 11,463,420
Granted Patent B1
US 11,463,420 · App. 16/858,839 · Granted Oct 4, 2022

Storage unit partial task processing

Inventors: Andrew D. Baptist (Mt. Pleasant, WI); Greg R. Dhuse (Chicago, IL); Wesley B. Leggette (Chicago, IL); Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
H04L63/0428G06F3/064G06F3/067G06F3/0619H04L9/085H04L9/0825H04L9/0894H04L67/10H04L67/1097G06F11/1076G06F2211/1028H03M13/1515H04L2463/061
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,463,420
App. No.
16/858,839
Granted
Oct 4, 2022
Kind
B1
Abstract

A method for execution by one or more storage units of a dispersed storage network (DSN). The method begins by receiving, at a first storage unit, a request for a partial task. The method continues by generating a slice request, to one or more additional storage units, when the first storage unit does not contain all encoded data slices required to execute the partial task. The method continues by receiving the at least one additional encoded data slice from the one or more additional storage units and performing the partial task on the first encoded data slice and the at least one additional encoded data slice to produce at least partial results.

Claims (38)

1. A method for execution by a storage unit, the method comprises:

receiving, at a first storage unit, a request for a partial task associated with a first encoded data slice;

generating a slice request, to one or more additional storage units, when the first storage unit does not contain all encoded data slices required to execute the partial task;

receiving at least one additional encoded data slice from the one or more additional storage units; and

performing the partial task on the first encoded data slice from the first storage unit and the at least one additional encoded data slice to produce at least partial results.

2. The method of claim 1 further comprises identifying a data record associated with the first encoded data slice based on one or more of: obtaining a slice name of the first encoded data slice, performing a data record identifier lookup in a slice name to data list, or extracting a data record identifier from the first encoded data slice.

3. The method of claim 2 , wherein it is determined that the data record includes the at least one additional encoded data slice by at least one of: performing a data record ID to slice name lookup, receiving a list of slice names, or a query.

4. The method of claim 1 , wherein the generating the slice request includes one or more of: identifying a slice name associated with the at least one additional encoded data slice, identifying the one or more additional storage units associated with the at least one additional encoded data slice, generating a partial task field entry that includes at least a portion of the partial task, or generating a credential field entry that includes a signature.

5. The method of claim 1 , wherein the performing the partial task on the first encoded data slice and the at least one additional encoded data slice to produce the at least partial results includes one or more of: aggregating at least a portion of the first encoded data slice and at least a portion of the at least one additional encoded data slice to produce a data record and executing at least a portion of the partial task on the data record to produce the partial results.

6. The method of claim 1 , wherein the first storage unit includes a distributed storage and task (DST) execution unit.

7. The method of claim 1 , wherein the one or more additional storage units each include a distributed storage and task (DST) execution unit.

8. The method of claim 1 , wherein the first storage unit and the one or more additional storage units each include a processing module.

9. A storage unit comprises:

an interface;

a local memory; and

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

receive, at a first storage unit, a request for a partial task associated with a first encoded data slice;

generate a slice request, to one or more additional storage units, when the first storage unit does not contain all encoded data slices required to execute the partial task;

receive at least one additional encoded data slice from the one or more additional storage units; and

perform the partial task on the first encoded data slice from the first storage unit and the at least one additional encoded data slice to produce at least partial results.

10. The storage unit of claim 9 further comprises identifying a data record associated with the first encoded data slice based on one or more of: obtaining a slice name of the first encoded data slice, performing a data record identifier lookup in a slice name to data list, or extracting a data record identifier from the first encoded data slice.

11. The storage unit of claim 10 , wherein it is determined that the data record includes the at least one additional encoded data slice by at least one of: performing a data record ID to slice name lookup, receiving a list of slice names, or a query.

12. The storage unit of claim 9 , wherein the generate a slice request includes one or more of: identifying a slice name associated with the at least one additional encoded data slice, identifying the one or more additional storage units associated with the at least one additional encoded data slice, generating a partial task field entry that includes at least a portion of the partial task, or generating a credential field entry that includes a signature.

13. The storage unit of claim 9 , wherein the perform the partial task on the first encoded data slice and the at least one additional encoded data slice to produce the at least partial results includes one or more of: aggregating at least a portion of the first encoded data slice and at least a portion of the at least one additional encoded data slice to produce a data record and executing at least a portion of the partial task on the data record to produce the partial results.

14. The storage unit of claim 9 , wherein the first storage unit and the one or more additional storage units each include a processing module.

15. A system, the system comprises:

an interface;

a local memory; and

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

receive, at a first storage unit, a request for a partial task associated with a first encoded data slice;

generate a slice request, to one or more additional storage units, when the first storage unit does not contain all encoded data slices required to execute the partial task;

receive at least one additional encoded data slice from the one or more additional storage units; and

perform the partial task on the first encoded data slice from the first storage unit and the at least one additional encoded data slice to produce at least partial results.

16. The system of claim 15 further comprises identify a data record associated with the first encoded data slice based on one or more of: obtaining a slice name of the first encoded data slice, performing a data record identifier lookup in a slice name to data list, or extracting a data record identifier from the first encoded data slice.

17. The system of claim 16 , wherein it is determined that the data record includes the at least one additional encoded data slice by at least one of: performing a data record ID to slice name lookup, receiving a list of slice names, or a query.

18. The system of claim 15 , wherein the generate a slice request includes one or more of: identifying a slice name associated with the at least one additional encoded data slice, identifying the one or more additional storage units associated with the at least one additional encoded data slice, generating a partial task field entry that includes at least a portion of the partial task, or generating a credential field entry that includes a signature.

19. The system of claim 15 , wherein the perform the partial task on the first encoded data slice and the at least one additional encoded data slice to produce the at least partial results includes one or more of: aggregating at least a portion of the first encoded data slice and at least a portion of the at least one additional encoded data slice to produce a data record and executing at least a portion of the partial task on the data record to produce the partial results.

20. The system of claim 15 , wherein the first storage unit and the one or more additional storage units each include a processing module.

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 Apr 27, 2020
From: BAPTIST, ANDREW D.; DHUSE, GREG R.; LEGGETTE, WESLEY B.; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 052503/0437 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052589/0071 →