IP Library Granted Patent US 10,469,406
Granted Patent B2
US 10,469,406 · App. 16/378,703 · Granted Nov 5, 2019

Partial task execution in a dispersed storage network

Inventors: Andrew D. Baptist (Mt. Pleasant, WI); Greg R. Dhuse (Chicago, IL); S. Christopher Gladwin (Chicago, IL); Gary W. Grube (Barrington Hills, IL); Wesley B. Leggette (Chicago, IL); Manish Motwani (Chicago, IL); Jason K. Resch (Chicago, IL); Thomas F. Shirley, Jr. (Wauwatosa, WI); Ilya Volvovski (Chicago, IL)
Assignee: PURE STORAGE, INC.
H04L47/803G06F9/5077G06F9/5083G06F11/1076G06F11/1451G06F11/2058G06F11/2069G06F21/602G06F21/6218G06Q20/14H03M13/3761H04L67/10H04L67/1017H04L67/1097H04L67/2842G06F3/064G06F3/067G06F3/0619G06F2211/1028H03M13/09H03M13/1515H04L9/0861
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,469,406
App. No.
16/378,703
Granted
Nov 5, 2019
Kind
B2
Abstract

A processing system in a dispersed storage and a task network DSTN determines whether or not to execute a partial task. When determined to execute the partial task, the processing system operates by determining execution steps and a schedule; identifying a portion of the contiguous data for execution of one or more steps of the execution steps; retrieving the portion of the contiguous data from the disk drive; executing the one or more steps of the execution steps in accordance with the schedule on the portion of the contiguous data to produce a partial result; dispersed storage error encoding the partial result to produce a plurality of sets of slices in accordance with dispersal parameters associated with one or more of the group of slices and the partial task; and facilitating storing a plurality of sets of slices in the DSTN.

Claims (26)

1. A method for execution by a processing system of a dispersed storage and task (DST) execution unit that includes a processor, the method comprises: receiving a partial task with regards to a group of slices of data; receiving slices of the group of slices to produce received slices; determining when a threshold number of the received slices has been received; when the threshold number of the received slices has been received, sending the received slices to a disk drive for storage; determining whether or not to execute the partial task; when determined to execute the partial task: determining execution steps and a schedule; identifying a portion of the data for execution of one or more steps of the execution steps; retrieving the portion of the data from the disk drive; executing the one or more steps of the execution steps in accordance with the schedule on the portion of the data to produce a partial result; and dispersed storage error encoding the partial result to produce a plurality of sets of slices stored in a dispersed storage and task network (DSTN) in accordance with dispersal parameters associated with one or more of the group of slices and the partial task.

2. The method of claim 1 , wherein the threshold number corresponds to a maximum number of bytes limited by an ingestion cache memory.

3. The method of claim 1 , wherein determining whether or not to execute the partial task is based on one or more of: comparing an amount of data in the received slices to a data threshold, a partial task type corresponding to the partial task, a task execution resource availability or a task schedule.

4. The method of claim 1 , wherein determining whether or not to execute the partial includes determining to execute the partial task when data of the received slices can be processed in accordance with the partial task.

5. The method of claim 1 , wherein retrieving the portion of the data from the disk drive includes receiving a data stream from the disk drive that contains the portion of the data.

6. The method of claim 1 , further comprising:

when the determined not to execute the partial task:

determining whether or not more slices of the group of slices are expected;

when more slices are expected, receiving the more slices of the group of slices to produce more received slices.

7. The method of claim 6 , wherein determining whether or not more slices of the group of slices are expected is based on one or more of: a data size indicator, a query, a lookup, or a number of bytes in the received slices.

8. The method of claim 1 , wherein determining the execution steps and the schedule is based on one or more of: the partial task, the data, a previous task schedule, a schedule template, a task execution resource availability level or a task execution requirement.

9. The method of claim 1 , wherein identifying the portion of the data includes matching the portion of the data to the one or more steps of execution steps based on one or more of: a data type indicator associated with the portion, a data type associated with one or more steps or a data available indicator.

10. The method of claim 1 , wherein retrieving the portion of the data from the disk drive includes accessing the disk drive for multiple data bytes of the portion of the data.

11. The method of claim 1 , wherein facilitating the storing of the plurality of sets of slices includes storing of the plurality of sets of slices with a common pillar number.

12. The method of claim 1 , wherein facilitating the storing of the plurality of sets of slices includes storing of the plurality of sets of slices with two or more pillar numbers.

13. 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 perform operations including: receiving a partial task with regards to a group of slices of data; receiving slices of the group of slices to produce received slices; determining when a threshold number of the received slices has been received; when the threshold number of the received slices has been received, sending the received slices to a disk drive for storage; determining whether or not to execute the partial task; when determined to execute the partial task: determining execution steps and a schedule; identifying a portion of the data for execution of one or more steps of the execution steps; retrieving the portion of the data from the disk drive; executing the one or more steps of the execution steps in accordance with the schedule on the portion of the data to produce a partial result; and dispersed storage error encoding the partial result to produce a plurality of sets of slices stored in a dispersed storage and task network (DSTN) in accordance with dispersal parameters associated with one or more of the group of slices and the partial task.

14. The processing system of claim 13 , wherein the threshold number corresponds to a maximum number of bytes limited by an ingestion cache memory.

15. The processing system of claim 13 , wherein determining whether or not to execute the partial task is based on one or more of: comparing an amount of data in the received slices to a data threshold, a partial task type corresponding to the partial task, a task execution resource availability or a task schedule.

16. The processing system of claim 13 , wherein determining whether or not to execute the partial includes determining to execute the partial task when data of the received slices can be processed in accordance with the partial task.

17. The processing system of claim 13 , wherein retrieving the portion of the data from the disk drive includes receiving a data stream from the disk drive that contains the portion of the data.

18. The processing system of claim 13 , further comprising:

when the determined not to execute the partial task:

determining whether or not more slices of the group of slices are expected;

when more slices are expected, receiving the more slices of the group of slices to produce more received slices.

19. The processing system of claim 13 , wherein determining the execution steps and the schedule is based on one or more of: the partial task, the data, a previous task schedule, a schedule template, a task execution resource availability level or a task execution requirement.

20. A computer readable storage medium comprises: at least one memory section including hardware 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 perform operations including: receiving a partial task with regards to a group of slices of data; receiving slices of the group of slices to produce received slices; determining when a threshold number of the received slices has been received; when the threshold number of the received slices has been received, sending the received slices to a disk drive for storage; determining whether or not to execute the partial task; when determined to execute the partial task: determining execution steps and a schedule; identifying a portion of the data for execution of one or more steps of the execution steps; retrieving the portion of the data from the disk drive; executing the one or more steps of the execution steps in accordance with the schedule on the portion of the data to produce a partial result; and dispersed storage error encoding the partial result to produce a plurality of sets of slices stored in a dispersed storage and task network (DSTN) in accordance with dispersal parameters associated with one or more of the group of slices and the partial task.

Assignments (6)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE FOURTH ASSIGNOR'S EXECUTION DATE PREVIOUSLY RECORDED ON REEL 048828 FRAME 0302. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 23, 2019
From: BAPTIST, ANDREW D.; DHUSE, GREG R.; GLADWIN, S. CHRISTOPHER; GRUBE, GARY W.; LEGGETTE, WESLEY B.; MOTWANI, MANISH; RESCH, JASON K.; SHIRLEY, THOMAS F., JR.; VOLVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049284/0658 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2019
From: BAPTIST, ANDREW D.; DHUSE, GREG R.; GLADWIN, S. CHRISTOPHER; GRUBE, GARY W.; LEGGETTE, WESLEY B.; MOTWANI, MANISH; RESCH, JASON K.; SHIRLEY, THOMAS F., JR.; VOLVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048828/0302 →
Continuity (5)
Continuation 15445152 · Feb 28, 2017
Continuation In Part 13865641 · Apr 18, 2013
Continuation In Part 13707490 · Dec 6, 2012
Provisional Application 61569387 · Dec 12, 2011
Related Publication 20190238481A1 · Aug 1, 2019