IP Library Granted Patent US 9,584,359
Granted Patent B2
US 9,584,359 · App. 13/917,058 · Granted Feb 28, 2017

Distributed storage and computing of interim data

Inventors: Andrew Baptist (Mt. Pleasant, WI); Greg Dhuse (Chicago, IL); Wesley Leggette (Chicago, IL); Jason K. Resch (Chicago, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L29/08549H04L67/10H04L67/1097G06F11/1076G06F2211/1028H04L67/327
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 9,584,359
App. No.
13/917,058
Granted
Feb 28, 2017
Kind
B2
Abstract

A method begins by a set of distributed storage and task (DST) execution units receiving a set of partial tasks and data, where a partial task of the set of partial tasks includes a common task and a unique partial sub-task. The method continues with the set of DST execution units executing the common task on the data to produce a set of preliminary partial results. The method continues with a first DST execution unit of the set of DST execution units generating first interim data based on the at least some of the set of preliminary partial results. The method continues with the first DST execution unit executing a first unique partial sub-task on at least one of a first portion of the data and the first interim data to produce a first partial result.

Claims (66)

1. A method comprises:

receiving, from a distributed storage and task (DST) client module via a network and by a set of DST execution units, a set of partial tasks and data, wherein a partial task of the set of partial tasks includes a common task and a unique partial sub-task, wherein the set of DST execution units includes processing circuitry configured to perform at least one of the set of partial tasks on the data;

executing, by the set of DST execution units, the common task on the data to produce a set of preliminary partial results;

generating, by a first DST execution unit of the set of DST execution units, first interim data based on the at least some of the set of preliminary partial results;

executing, by the first DST execution unit, a first unique partial sub-task on at least one of: a first portion of the data or the first interim data to produce a first partial result; and

transmitting, by the set of DST execution units, a plurality of partial results that includes the first partial result from the first DST execution unit and a second partial result from a second DST execution unit to the DST client module to be processed by the DST client module to produce a result corresponding to the at least one of the set of partial tasks performed on the data.

2. The method of claim 1 further comprises:

receiving, by the first DST execution unit, a first partial task of the set of partial tasks and the first portion of the data, wherein the first partial task includes the common task and the first unique partial sub-task;

receiving, by the second DST execution unit, a second partial task of the set of partial tasks and a second portion of the data, wherein the second partial task includes the common task and a second unique partial sub-task; and

receiving, by a third DST execution unit, a third partial task of the set of partial tasks and a third portion of the data, wherein the third partial task includes the common task and a third unique partial sub-task.

3. The method of claim 2 further comprises at least one of:

allocating the data into the first, second, and third portions of the data based on a time parameter;

allocating the data into the first, second, and third portions of the data based on a geographic parameter; or

allocating the data into the first, second, and third portions of the data based on a source parameter.

4. The method of claim 2 , wherein the executing the common task on the data to produce the set of preliminary partial results comprises:

executing, by the first DST execution unit, the common task on the first portion of the data to produce a first preliminary partial result of the set of preliminary partial results;

executing, by the second DST execution unit, the common task on the second portion of the data to produce a second preliminary partial result of the set of preliminary partial results; and

executing, by the third DST execution unit, the common task on the third portion of the data to produce a third preliminary partial result of the set of preliminary partial results.

5. The method of claim 4 , wherein the generating the first interim data comprises:

processing at least one of the first, second, or third preliminary partial results to produce the first interim data.

6. The method of claim 1 further comprises:

the common task corresponding to a function to identify a common characteristic of portions of the data; and

the unique partial sub-task corresponding to a function to uniquely categorize the common characteristic of the portions of the data based on a unique parameter.

7. The method of claim 1 further comprises:

generating, by the second DST execution unit of the set of DST execution units, second interim data based on the at least some of the set of preliminary partial results; and

generating, by a third DST execution unit of the set of DST execution units, third interim data based on the at least some of the set of preliminary partial results.

8. The method of claim 7 further comprises:

generating, by the first DST execution unit, first partial redundancy data based on the first interim data;

generating, by the second DST execution unit, second partial redundancy data based on the second interim data;

generating, by the third DST execution unit, third partial redundancy data based on the third interim data; and

generating, by a fourth DST execution unit of the set of DST execution units, redundancy data for the first, second, and third interim data based on the first, second, and third partial redundancy data.

9. A distributed computing system comprises:

a set of modules associated with a set of distributed storage and task (DST) execution units, wherein the set of modules includes processing circuitry configured to perform at least one of a set of partial tasks on data, and wherein the set of modules is configured to:

receive, from a distributed storage and task (DST) client module via a network the set of partial tasks and the data, wherein a partial task of the set of partial tasks includes a common task and a unique partial sub-task; and

execute the common task on the data to produce a set of preliminary partial results, wherein a first module of the set of modules is configured to:

generate first interim data based on the at least some of the set of preliminary partial results;

facilitate storage of the first interim data in memory associated with a first DST execution unit;

execute a first unique partial sub-task on at least one of: a first portion of the data or the first interim data to produce a first partial result;

output, via an interface associated with the first DST execution unit, the first partial result; and

transmit a plurality of partial results that includes the first partial result from the first DST execution unit and a second partial result from a second DST execution unit to the DST client module to be processed by the DST client module to produce a result corresponding to the at least one of the set of partial tasks performed on the data.

10. The distributed computing system of claim 9 further comprises:

the first module further functions to receive, via the interface associated with the first DST execution unit, a first partial task of the set of partial tasks and the first portion of the data, wherein the first partial task includes the common task and the first unique partial sub-task;

a second module of the set of modules functions to receive, via an interface associated with ft the second DST execution unit, a second partial task of the set of partial tasks and a second portion of the data, wherein the second partial task includes the common task and a second unique partial sub-task; and

a third module of the set of modules functions to receive, via an interface associated with a third DST execution unit, a third partial task of the set of partial tasks and a third portion of the data, wherein the third partial task includes the common task and a third unique partial sub-task.

11. The distributed computing system of claim 10 further comprises:

the set of modules is further configured to:

allocate the data into the first, second, and third portions of the data based on a time parameter;

allocate the data into the first, second, and third portions of the data based on a geographic parameter; and

allocate the data into the first, second, and third portions of the data based on a source parameter.

12. The distributed computing system of claim 10 , wherein the set of modules functions to execute the common task on the data to produce the set of preliminary partial results by:

executing, by the first module, the common task on the first portion of the data to produce a first preliminary partial result of the set of preliminary partial results;

executing, by the second module, the common task on the second portion of the data to produce a second preliminary partial result of the set of preliminary partial results; and

executing, by the third module, the common task on the third portion of the data to produce a third preliminary partial result of the set of preliminary partial results.

13. The distributed computing system of claim 12 , wherein the first module generates the first interim data by:

processing at least one of the first, second, or third preliminary partial results to produce the first interim data.

14. The distributed computing system of claim 9 further comprises:

the common task corresponding to a function to identify a common characteristic of portions of the data; and

the unique partial sub-task corresponding to a function to uniquely categorize the common characteristic of the portions of the data based on a unique parameter.

15. The distributed computing system of claim 9 further comprises:

a second module of the set of modules functions to generate second interim data based on the at least some of the set of preliminary partial results; and

a third module of the set of modules functions to generate third interim data based on the at least some of the set of preliminary partial results.

16. The distributed computing system of claim 15 further comprises:

the first module further functions to generate first partial redundancy data based on the first interim data;

the second module further functions to generate second partial redundancy data based on the second interim data;

the third module further functions to generate third partial redundancy data based on the third interim data; and

a fourth module of the set of modules functions to generate redundancy data for the first, second, and third interim data based on the first, second, and third partial redundancy data.

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 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2013
From: BAPTIST, ANDREW; DHUSE, GREG; LEGGETTE, WESLEY; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 030617/0491 →
Continuity (4)
Continuation In Part 13707428 · Dec 6, 2012
Provisional Application 61679007 · Aug 2, 2012
Provisional Application 61569387 · Dec 12, 2011
Related Publication 20130275545A1 · Oct 17, 2013