IP Library Granted Patent US 9,841,925
Granted Patent B2
US 9,841,925 · App. 14/721,838 · Granted Dec 12, 2017

Adjusting timing of storing data in a dispersed 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,841,925
App. No.
14/721,838
Granted
Dec 12, 2017
Kind
B2
Abstract

A method begins by a processing module of a dispersed storage network (DSN) unit of a plurality of DSN units sending a write request to DSN memory, where the write request includes a range of DSN addresses. The method continues with the DSN unit receiving an error message indicating that another DSN unit of the plurality of DSN units has current write permission to the DSN memory to the range of DSN addresses. The method continues with the DSN unit performing a scoring function using one or more properties of the range of DSN addresses and one or more properties of each of at least some of the plurality of DSN units to produce a scoring resultant, interpreting the scoring resultant to determine a re-write requesting protocol for resending the write request to the DSN memory, and resending the write request in accordance with the re-write requesting protocol.

Claims (104)

1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

sending, by a DSN unit of a plurality of DSN units, a write request to DSN memory, wherein the write request includes a range of DSN addresses;

in response to the write request, receiving an error message indicating that another DSN unit of the plurality of DSN units has current write permission to the DSN memory to the range of DSN addresses;

performing, by the DSN unit, a scoring function using one or more properties of the range of DSN addresses and one or more properties of each of at least some of the plurality of DSN units to produce a scoring resultant;

interpreting, by the DSN unit, the scoring resultant to determine a re-write requesting protocol for resending the write request to the DSN memory; and

resending, by the DSN unit, the write request in accordance with the re-write requesting protocol.

2. The method of claim 1 , wherein the one or more properties of the range of DSN addresses comprises one of:

an individual DSN address;

at least some DSN addresses in the range of DSN addresses;

a source name corresponding to a data object;

a set of source names corresponding to a set of data objects;

an individual slice name; and

a range of slice names.

3. The method of claim 1 , wherein the performing the scoring function further comprises:

accessing a centralized system registry to retrieve the one or more properties of the each of the at least some of the plurality of DSN units, wherein the one or more properties of the each of the at least some of the plurality of DSN units includes at least one of a DSN unit identifier and a DSN unit weighting factor.

4. The method of claim 1 , wherein the performing the scoring function further comprises:

extracting the one or more properties of the each of the at least some of the plurality of DSN units from the error message, wherein the one or more properties of the each of the at least some of the plurality of DSN units includes at least one of a DSN unit identifier and a DSN unit weighting factor.

5. The method of claim 1 , wherein the performing the scoring function comprises:

for the each of the at least some of the plurality of DSN units:

performing a first function based on an identifier of one of the at least some of the plurality of DSN units and the one or more properties of the range of DSN addresses to produce an interim result;

normalizing the interim result to produce a normalized result; and

performing a second function based on the normalized result and a weighting factor for the one of the at least some of the plurality of DSN units to produce a score; and

ranking the scores for each of the at least some of the plurality of DSN units to produce the scoring resultant.

6. The method of claim 1 , wherein the performing the scoring function further comprises:

determining an expected number of concurrent write requests for a block of DSN addresses that includes the range of DSN addresses; and

selecting an expected number of DSN units from the plurality of DSN units based on the expected number of concurrent write requests to produce the at least some of the plurality of DSN units.

7. The method of claim 6 , wherein the determining the expected number of concurrent write requests comprises one of:

accessing a centralized system registry to determine the expected number of concurrent write requests;

randomly selecting the expected number of concurrent write requests using a random number generation function;

determining the expected number of concurrent write requests based on historical concurrent write data for the range of DSN addresses; and

determining the expected number of concurrent write requests based on information contained in the error message.

8. The method of claim 6 , wherein the selecting the expected number of DSN units comprises one of:

accessing a centralized system registry to identify the selected expected number of DSN units, wherein the selected expected number of DSN units includes the DSN unit;

using a random selection function to identify the selected expected number of DSN units;

determining the selected expected number of DSN units based on historical concurrent write data for the range of DSN addresses; and

determining the selected expected number of DSN units based on information contained in the error message.

9. The method of claim 1 , wherein the interpreting the scoring resultant to determine the re-write requesting protocol comprises:

determining a re-write ranking of the DSN unit from the scoring resultant; and

further includes one of:

determining, based on the re-write ranking, a time slot of a plurality of times slots for resending the write request;

determining, based on the re-write ranking, a wait period before resending the write request;

when the re-write ranking is of highest ranking, substantially continually resending the write request until a write success response is received by the DSN unit; and

determining, based on the re-write ranking, a resending interval for resending the write request until the write success response is received by the DSN unit.

10. The method of claim 1 further comprises:

utilizing a first number of DSN units as the at least some of the plurality of DSN units when performing the scoring function to produce a first scoring resultant as the scoring resultant;

interpreting the first scoring resultant to determine a first re-write requesting protocol for resending the write request to the DSN memory;

resending the write request in accordance with the first re-write requesting protocol;

when a second error message is received in response to the resending the write request in accordance with the first re-write requesting protocol:

utilizing a second number of DSN units as the at least some of the plurality of DSN units when performing the scoring function to produce a second scoring resultant as the scoring resultant;

interpreting the second scoring resultant to determine a second re-write requesting protocol for resending the write request to the DSN memory; and

resending the write request in accordance with the second re-write requesting protocol.

11. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), causes the one or more computing devices to:

send, by a DSN unit of a plurality of DSN units, a write request to DSN memory, wherein the write request includes a range of DSN addresses;

in response to the write request, receive an error message indicating that another DSN unit of the plurality of DSN units has current write permission to the DSN memory to the range of DSN addresses;

perform, by the DSN unit, a scoring function using one or more properties of the range of DSN addresses and one or more properties of each of at least some of the plurality of DSN units to produce a scoring resultant;

interpret, by the DSN unit, the scoring resultant to determine a re-write requesting protocol for resending the write request to the DSN memory; and

resend, by the DSN unit, the write request in accordance with the re-write requesting protocol.

12. The non-transitory computer readable storage medium of claim 11 , wherein the one or more properties of the range of DSN addresses comprises one of:

an individual DSN address;

at least some DSN addresses in the range of DSN addresses;

a source name corresponding to a data object;

a set of source names corresponding to a set of data objects;

an individual slice name; and

a range of slice names.

13. The non-transitory computer readable storage medium of claim 11 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to further perform the scoring function by:

accessing a centralized system registry to retrieve the one or more properties of the each of the at least some of the plurality of DSN units, wherein the one or more properties of the each of the at least some of the plurality of DSN units includes at least one of a DSN unit identifier and a DSN unit weighting factor.

14. The non-transitory computer readable storage medium of claim 11 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to further perform the scoring function by:

extracting the one or more properties of the each of the at least some of the plurality of DSN units from the error message, wherein the one or more properties of the each of the at least some of the plurality of DSN units includes at least one of a DSN unit identifier and a DSN unit weighting factor.

15. The non-transitory computer readable storage medium of claim 11 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to perform the scoring function by:

for the each of the at least some of the plurality of DSN units:

performing a first function based on an identifier of one of the at least some of the plurality of DSN units and the one or more properties of the range of DSN addresses to produce an interim result;

normalizing the interim result to produce a normalized result; and

performing a second function based on the normalized result and a weighting factor for the one of the at least some of the plurality of DSN units to produce a score; and

ranking the scores for each of the at least some of the plurality of DSN units to produce the scoring resultant.

16. The non-transitory computer readable storage medium of claim 11 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to further perform the scoring function by:

determining an expected number of concurrent write requests for a block of DSN addresses that includes the range of DSN addresses; and

selecting an expected number of DSN units from the plurality of DSN units based on the expected number of concurrent write requests to produce the at least some of the plurality of DSN units.

17. The non-transitory computer readable storage medium of claim 16 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to determine the expected number of concurrent write requests by:

accessing a centralized system registry to determine the expected number of concurrent write requests;

randomly selecting the expected number of concurrent write requests using a random number generation function;

determining the expected number of concurrent write requests based on historical concurrent write data for the range of DSN addresses; and

determining the expected number of concurrent write requests based on information contained in the error message.

18. The non-transitory computer readable storage medium of claim 16 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to select the expected number of DSN units by:

accessing a centralized system registry to identify the selected expected number of DSN units, wherein the selected expected number of DSN units includes the DSN unit;

using a random selection function to identify the selected expected number of DSN units;

determining the selected expected number of DSN units based on historical concurrent write data for the range of DSN addresses; and

determining the selected expected number of DSN units based on information contained in the error message.

19. The non-transitory computer readable storage medium of claim 11 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to interpret the scoring resultant to determine the re-write requesting protocol by:

determining a re-write ranking of the DSN unit from the scoring resultant; and

further includes one of:

determining, based on the re-write ranking, a time slot of a plurality of times slots for resending the write request;

determining, based on the re-write ranking, a wait period before resending the write request;

when the re-write ranking is of highest ranking, substantially continually resending the write request until a write success response is received by the DSN unit; and

determining, based on the re-write ranking, a resending interval for resending the write request until the write success response is received by the DSN unit.

20. The non-transitory computer readable storage medium of claim 11 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

utilize a first number of DSN units as the at least some of the plurality of DSN units when performing the scoring function to produce a first scoring resultant as the scoring resultant;

interpret the first scoring resultant to determine a first re-write requesting protocol for resending the write request to the DSN memory;

resend the write request in accordance with the first re-write requesting protocol;

when a second error message is received in response to the resending the write request in accordance with the first re-write requesting protocol:

utilize a second number of DSN units as the at least some of the plurality of DSN units when performing the scoring function to produce a second scoring resultant as the scoring resultant;

interpret the second scoring resultant to determine a second re-write requesting protocol for resending the write request to the DSN memory; and

resend the write request in accordance with the second re-write requesting protocol.

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 Sep 2, 2015
From: KHADIWALA, RAVI; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 036479/0039 →