IP Library Granted Patent US 8,621,268
Granted Patent B2
US 8,621,268 · App. 12/862,871 · Granted Dec 31, 2013

Write threshold utilization in a dispersed storage system

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 8,621,268
App. No.
12/862,871
Granted
Dec 31, 2013
Kind
B2
Abstract

A method begins with a processing module sending a plurality of dispersed storage write commands to plurality of dispersed storage (DS) units for storing a plurality of encoded data slices. The method continues with the processing module receiving, within a time period, acknowledgements from at least some of the plurality of DS units to produce received acknowledgements. The method continues with the processing module determining whether a number of received acknowledgements compares favorably to a write threshold. The method continues with the processing module changing at least one of the write threshold and at least one of the plurality of DS units when the number of received acknowledgements does not compare favorably to the write threshold.

Claims (84)

1. A method for execution by a dispersed storage processing module, the method comprises:

determining a write threshold based on at least one of:

selecting a slicing pillar width as the write threshold when storage requirements indicate retrieval reliability preference over write availability;

selecting a read threshold as the write threshold when the storage requirements indicate the write availability preference over the retrieval reliability; and

selecting the write threshold to be between the slicing pillar width and the read threshold when the storage requirements indicate that the write availability preference is comparable to the retrieval reliability;

sending a plurality of dispersed storage (DS) write commands to plurality of dispersed storage (DS) units for storing a plurality of encoded data slices;

receiving, within a time period, acknowledgements from at least some of the plurality of DS units to produce received acknowledgements;

determining whether a number of received acknowledgements compares favorably to the write threshold; and

when the number of received acknowledgements does not compare favorably to the write threshold, changing at least one of the write threshold and at least one of the plurality of DS units.

2. The method of claim 1 further comprises:

when the write threshold is to be changed:

determining second storage requirements;

determining a second retrieval reliability preference and a second write availability; and

determining a changed write threshold based on the second storage requirements, the second retrieval reliability preference and the second write availability.

3. The method of claim 2 further comprises:

determining the storage requirements or the second storage requirements based on one or more of: a vault lookup, a user identity, a data type, a priority indicator, an availability indicator, a security indicator, a performance indicator, and an estimated frequency of retrieval indicator, wherein each of the storage requirements and the second storage requirements includes one or more of an availability requirement, a reliability requirement, a requirements preference indicator, and a write threshold enforcement indicator.

4. The method of claim 2 further comprises:

determining at least one of the retrieval reliability preference, the write availability, the second retrieval reliability preference, and the second write availability based on one or more of: a history of receiving the acknowledgments, a history of availability, a history of reliability, a history of access latency, a history of access bandwidth, a vault lookup, and a real-time measurement.

5. The method of claim 1 further comprises:

when the number of received acknowledgments compares favorably to the write threshold:

updating a history of receiving the acknowledgments;

sending a commit command to the plurality of DS units;

receiving a second number of commit acknowledgment messages; and

sending a finalize command to the plurality of DS units.

6. The method of claim 1 further comprises:

when the number of received acknowledgments compares unfavorably to the write threshold, determining whether a write threshold enforcement indicator is active;

when the threshold enforcement indicator is active:

sending an error message;

identifying DS units of the plurality of DS units that did not provide an acknowledgment to produce uncommitted DS units; and

re-sending some of the plurality of DS write commands to the uncommitted DS units until the number of received acknowledgements compares favorably to the write threshold.

7. A method comprises:

selecting a write threshold to a first range of values between a read threshold and a slicing pillar width for a first storage preference, wherein the write threshold indicates a level of dispersed storage (DS) units required to acknowledge a DS write request;

selecting the write threshold to a second range of values between the read threshold and the slicing pillar width for a second storage preference

selecting the write threshold to a third range of values between the read threshold and the slicing pillar width for a third storage preference, wherein:

the first storage preference corresponding to a retrieval reliability preference over write availability;

the second storage preference corresponding to the write availability preference over the retrieval reliability; and

the third storage preference corresponding to the write availability preference is comparable to the retrieval reliability.

8. The method of claim 7 further comprises:

determining the first storage preference, the second storage preference, or the third storage preference based on one or more of: a history of receiving acknowledgments, a history of availability, a history of reliability, a history of access latency, a history of access bandwidth, a vault lookup, estimated performance, and a real-time measurement, wherein the estimated performance includes at least one of estimated probability of receiving the acknowledgments, estimated availability, estimated reliability, estimated access latency, and estimated access bandwidth; and

selecting a plurality of DS units based on the first storage preference, the second storage preference, or the third storage preference.

9. A computer comprises:

an interface; and

a processing module operable to:

determine a write threshold based on at least one of:

selecting a slicing pillar width as the write threshold when storage requirements indicate retrieval reliability preference over write availability;

selecting a read threshold as the write threshold when the storage requirements indicate the write availability preference over the retrieval reliability; and

selecting the write threshold to be between the slicing pillar width and the read threshold when the storage requirements indicate that the write availability preference is comparable to the retrieval reliability;

send, via the interface, a plurality of dispersed storage (DS) write commands to plurality of dispersed storage (DS) units for storing a plurality of encoded data slices;

receive, via the interface, within a time period, acknowledgements from at least some of the plurality of DS units to produce received acknowledgements;

determine whether a number of received acknowledgements compares favorably to a write threshold; and

change at least one of the write threshold and at least one of the plurality of DS units when the number of received acknowledgements does not compare favorably to the write threshold.

10. The computer of claim 9 , wherein the processing module further functions to:

when the write threshold is to be changed:

determine second storage requirements;

determine a second retrieval reliability preference and a second write availability; and

determine a changed write threshold based on the second storage requirements, the second retrieval reliability preference and the second write availability.

11. The computer of claim 10 , wherein the processing module further functions to:

determine the storage requirements or the second storage requirements based on one or more of: a vault lookup, a user identity, a data type, a priority indicator, an availability indicator, a security indicator, a performance indicator, and an estimated frequency of retrieval indicator, wherein each of the storage requirements and the second storage requirements includes one or more of an availability requirement, a reliability requirement, a requirements preference indicator, and a write threshold enforcement indicator.

12. The computer of claim 10 , wherein the processing module further functions to:

determine at least one of the retrieval reliability preference, the write availability, the second retrieval reliability preference, and the second write availability based on one or more of: a history of receiving the acknowledgments, a history of availability, a history of reliability, a history of access latency, a history of access bandwidth, a vault lookup, and a real-time measurement.

13. The computer of claim 9 , wherein the processing module further functions to:

when the number of received acknowledgments compares favorably to the write threshold:

update a history of receiving the acknowledgments;

send, via the interface, a commit command to the plurality of DS units;

receive, via the interface, a second number of commit acknowledgment messages; and

send, via the interface, a finalize command to the plurality of DS units.

14. The computer of claim 9 , wherein the processing module further functions to:

when the number of received acknowledgments compares unfavorably to the write threshold, determine whether a write threshold enforcement indicator is active;

when the threshold enforcement indicator is active:

send, via the interface, an error message;

identify DS units of the plurality of DS units that did not provide an acknowledgment to produce uncommitted DS units; and

re-send, via the interface, some of the plurality of DS write commands to the uncommitted DS units until the number of received acknowledgements compares favorably to the write threshold.

15. A computer comprises:

an interface; and

a processing module operable to:

select a write threshold to a first range of values between a read threshold and a slicing pillar width for a first storage preference, wherein the write threshold indicates a level of dispersed storage (DS) units required to acknowledge a DS write request; and

select the write threshold to a second range of values between the read threshold and the slicing pillar width for a second storage preference

select the write threshold to a third range of values between the read threshold and the slicing pillar width for a third storage preference, wherein:

the first storage preference corresponding to a retrieval reliability preference over write availability;

the second storage preference corresponding to the write availability preference over the retrieval reliability; and

the third storage preference corresponding to the write availability preference is comparable to the retrieval reliability.

16. The computer of claim 15 , wherein the processing module further functions to:

determine the first storage preference, the second storage preference, or the third storage preference based on one or more of: a history of receiving acknowledgments via the interface, a history of availability, a history of reliability, a history of access latency, a history of access bandwidth, a vault lookup, estimated performance, and a real-time measurement, wherein the estimated performance includes at least one of estimated probability of receiving the acknowledgments via the interface, estimated availability, estimated reliability, estimated access latency, and estimated access bandwidth; and

selecting a plurality of DS units based on the first storage preference, the second storage preference, or the third storage preference.

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 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2010
From: DHUSE, GREG
To: CLEVERSAFE, INC.
Reel/Frame 024884/0495 →