IP Library Granted Patent US 9,430,286
Granted Patent B2
US 9,430,286 · App. 13/865,659 · Granted Aug 30, 2016

Authorizing distributed task processing in a distributed storage network

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,430,286
App. No.
13/865,659
Granted
Aug 30, 2016
Kind
B2
Abstract

A method begins by a distributed storage (DS) processing module transmitting a set of requests to a set of DS units regarding a set of data elements and receiving a set of respective requests from the set of DS units. When the set of respective requests is in accordance with a current distributed task/data responsibility allocation period, the method continues with the DS processing module issuing a set of responses to the set of DS units. The method continues with the DS processing module receiving a set of respective responses from the set of DS units. When the set of received respective responses is in accordance with the current distributed task/data responsibility allocation period, the method continues with the DS processing module processing the set of received respective responses in accordance with the current distributed task/data responsibility allocation period to produce one of a set of results.

Claims (61)

1. A method for execution by a set of distributed storage (DS) units, the method comprises:

transmitting, by each DS unit of the set of DS units, a set of requests to other DS units of the set of DS units, wherein a request of the set of requests includes requesting a response regarding a respective data element of a set of data elements from a respective one of the other DS units, and wherein the set of requests are generated in accordance with a current distributed task/data responsibility allocation period, wherein, collectively, the set of DS units contains a plurality of sets of data elements;

receiving, by the each DS unit, a respective request from each of the other DS units such that the each DS unit receives a set of respective requests from the other DS units;

when each of the set of respective requests is in accordance with the current distributed task/data responsibility allocation period:

generating, by the each DS unit, a response to each respective request of the set of respective requests to produce a set of responses; and

sending, by the each DS unit, the set of responses to the other DS units;

receiving, by the each DS unit, a respective response from each of the sets of responses from the other DS units such that the each DS unit receives a set of respective responses from the other DS units; and

when the set of respective responses is in accordance with the current distributed task/data responsibility allocation period, processing, by the each DS unit, the set of respective responses in accordance with the current distributed task/data responsibility allocation period to produce one of a set of results such that the set of DS units produces the set of results regarding the plurality of sets of data elements.

2. The method of claim 1 , wherein the processing the set of respective responses comprises at least one of:

performing, by the each DS unit, an integrity check on data elements associated with the set of respective responses to produce the one of the set of results, wherein the set of results provides an integrity indication for the plurality of sets of data elements;

verifying, by the each DS unit, a read request based on the data elements associated with the set of respective responses to produce the one of the set of results, wherein the set of results provides a validity indication for a read operation regarding the plurality of sets of data elements; and

verifying, by the each DS unit, a write request based on the data elements associated with the set of respective responses to produce the one of the set of results, wherein the set of results provides a validity indication for a write operation regarding the plurality of sets of data elements.

3. The method of claim 1 further comprises:

when one of the set of respective requests is not in accordance with the current distributed task/data responsibility allocation period, indicating, by the each DS unit, as potentially compromised, the respective one of the other DS units corresponding to the one of the set of respective requests not in accordance with the current distributed task/data responsibility allocation period.

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

determining, by the each DS unit, that the one of the set of respective requests is not in accordance with the current distributed task/data responsibility allocation period when the respective one of the other DS units corresponding to the one of the set of respective requests is not an anticipated requesting DS unit in accordance with the current distributed task/data responsibility allocation period;

determining, by the each DS unit, that the one of the set of respective requests is not in accordance with the current distributed task/data responsibility allocation period when the one of the set of respective requests is not an anticipated request in accordance with the current distributed task/data responsibility allocation period; and

determining, by the each DS unit, that the one of the set of respective requests is not in accordance with the current distributed task/data responsibility allocation period when the one of the set of respective requests is a second request by the respective one of the other DS units.

5. The method of claim 1 further comprises:

when one of the set of respective responses is not in accordance with the current distributed task/data responsibility allocation period, indicating, by the each DS unit, as potentially compromised, the respective one of the other DS units corresponding to the one of the set of respective responses not in accordance with the current distributed task/data responsibility allocation period.

6. The method of claim 5 further comprises at least one of:

determining, by the each DS unit, that the one of the set of respective responses is not in accordance with the current distributed task/data responsibility allocation period when the respective one of the other DS units corresponding to the one of the set of respective responses is not an anticipated responding DS unit in accordance with the current distributed task/data responsibility allocation period;

determining, by the each DS unit, that the one of the set of respective responses is not in accordance with the current distributed task/data responsibility allocation period when the one of the set of respective responses is not an anticipated response in accordance with the current distributed task/data responsibility allocation period; and

determining, by the each DS unit, that the one of the set of respective responses is not in accordance with the current distributed task/data responsibility allocation period when the one of the set of respective responses is a second response by the respective one of the other DS units.

7. The method of claim 1 , wherein the current distributed task/data responsibility allocation period comprises at least one of:

a time varying allocation of tasks among the set of DS units;

a time varying allocation of data elements to process;

a time varying allocation of permissible requests; and

a time varying allocation of permissible responses.

8. A distributed storage (DS) module of each DS unit of a set of DS units, the DS module comprises:

a first module, when operable within a computing device, causes the computing device to:

transmit a set of requests to other DS units of the set of DS units, wherein a request of the set of requests includes requesting a response regarding a respective data element of a set of data elements from a respective one of the other DS units, and wherein the set of requests are generated in accordance with a current distributed task/data responsibility allocation period, wherein, collectively, the set of DS units contains a plurality of sets of data elements;

a second module, when operable within the computing device, causes the computing device to:

receive a respective request from each of the other DS units to produce a set of respective requests; and

when each of the set of respective requests is in accordance with the current distributed task/data responsibility allocation period:

generate a response to each respective request of the set of respective requests to produce a set of responses; and

send the set of responses to the other DS units; and

a third module, when operable within the computing device, causes the computing device to:

receive a respective response from each of the sets of responses from the other DS units such that the each DS unit receives a set of respective responses from the other DS units; and

when the set of respective responses is in accordance with the current distributed task/data responsibility allocation period, process the set of respective responses in accordance with the current distributed task/data responsibility allocation period to produce one of a set of results such that the set of DS units produces the set of results regarding the plurality of sets of data elements.

9. The DS module of claim 8 , wherein the third module functions to process the set of respective responses by at least one of:

performing an integrity check on data elements associated with the set of respective responses to produce the one of the set of results, wherein the set of results provides an integrity indication for the plurality of sets of data elements;

verifying a read request based on the data elements associated with the set of respective responses to produce the one of the set of results, wherein the set of results provides a validity indication for a read operation regarding the plurality of sets of data elements; and

verifying a write request based on the data elements associated with the set of respective responses to produce the one of the set of results, wherein the set of results provides a validity indication for a write operation regarding the plurality of sets of data elements.

10. The DS module of claim 8 further comprises:

when one of the set of respective requests is not in accordance with the current distributed task/data responsibility allocation period, the second module further functions to indicate as potentially compromised, the respective one of the other DS units corresponding to the one of the set of respective requests not in accordance with the current distributed task/data responsibility allocation period.

11. The DS module of claim 10 further comprises at least one of:

the second module further functions to determine that the one of the set of respective requests is not in accordance with the current distributed task/data responsibility allocation period when the respective one of the other DS units corresponding to the one of the set of respective requests is not an anticipated requesting DS unit in accordance with the current distributed task/data responsibility allocation period;

the second module further functions to determine that the one of the set of respective requests is not in accordance with the current distributed task/data responsibility allocation period when the one of the set of respective requests is not an anticipated request in accordance with the current distributed task/data responsibility allocation period; and

the second module further functions to determine that the one of the set of respective requests is not in accordance with the current distributed task/data responsibility allocation period when the respective one of the set of respective requests is a second request by the one of the other DS units.

12. The DS module of claim 8 further comprises:

when one of the set of respective responses is not in accordance with the current distributed task/data responsibility allocation period, the third module further functions to indicate as potentially compromised, the respective one of the other DS units corresponding to the one of the set of respective responses not in accordance with the current distributed task/data responsibility allocation period.

13. The DS module of claim 12 further comprises at least one of:

the third module further functions to determine that the one of the set of respective responses is not in accordance with the current distributed task/data responsibility allocation period when the respective one of the other DS units corresponding to the one of the set of respective responses is not an anticipated responding DS unit in accordance with the current distributed task/data responsibility allocation period;

the third module further functions to determine that the one of the set of respective responses is not in accordance with the current distributed task/data responsibility allocation period when the one of the set of respective responses is not an anticipated response in accordance with the current distributed task/data responsibility allocation period; and

the third module further functions to determine that the one of the set of respective responses is not in accordance with the current distributed task/data responsibility allocation period when the one of the set of respective responses is a second response by the respective one of the other DS units.

14. The DS module of claim 8 , wherein the current distributed task/data responsibility allocation period comprises at least one of:

a time varying allocation of tasks among the set of DS units;

a time varying allocation of data elements to process;

a time varying allocation of permissible requests; and

a time varying allocation of permissible responses.

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 Apr 25, 2013
From: VOLVOVSKI, ILYA; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 030286/0600 →