IP Library Granted Patent US 10,282,135
Granted Patent B2
US 10,282,135 · App. 15/840,230 · Granted May 7, 2019

Strong consistency write threshold

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,282,135
App. No.
15/840,230
Granted
May 7, 2019
Kind
B2
Abstract

A computing device includes an interface configured to interface and communicate with a dispersed storage network (DSN), a memory that stores operational instructions, and processing circuitry operably coupled to the interface and to the memory. The processing circuitry is configured to execute the operational instructions to perform various operations and functions. The computing device operates based on a store data request from a requesting entity to dispersed error encode a data segment associated with a data object to generate a set of encoded data slices (EDSs). The computing device selects a write threshold number of EDSs based on a desired consistency level indicator and issues a write request to storage unit(s) (SU(s)). The computing device receives write response(s) from the SU(s) and, based on write response(s) received from the at least some of the SU(s), provides a store data response to the requesting entity.

Claims (87)

1. A computing device comprising:

an interface configured to interface and communicate with a dispersed or distributed storage network (DSN);

memory that stores operational instructions; and

processing circuitry operably coupled to the interface and to the memory, wherein the processing circuitry is configured to execute the operational instructions to:

receive a store data request from a requesting entity;

dispersed error encode a data segment associated with a data object to generate a set of encoded data slices (EDSs), wherein the data object is segmented into a plurality of data segments, wherein the data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce the set of EDSs to be distributedly stored among a plurality of storage units (SUs) that includes a first site including a first SU set and a second site including a second SU set;

select a write threshold number of EDSs based on a desired consistency level indicator corresponding to a sum of a read threshold number of EDSs and the write threshold number of EDSs, wherein the write threshold number of EDSs provides for a successful transfer of the set of EDSs from a first at least one location in the DSN to a second at least one location in the DSN, wherein the read threshold number of EDSs provides for reconstruction of the data segment, wherein the set of EDSs is of pillar width and includes a pillar number of EDSs that is at least twice a decode threshold number of EDSs that are needed to recover the data segment, wherein the desired consistency level indicator corresponds to a strong consistency level when the sum is greater than or equal to the pillar number of EDSs, and wherein the desired consistency level indicator corresponds to a weak consistency level when the sum is less than the pillar number of EDSs;

issue a write request to the plurality of SUs;

receive at least some write responses from at least some of the plurality of SUs;

determine whether a favorable number of write responses has been received from the at least some of the plurality of SUs; and

when fewer than the favorable number of write responses has been received from the at least some of the plurality of SUs:

issue at least one rollback request to at least one of the plurality of SUs; and

issue a store data response that indicates status of writing an EDS of the set of EDSs to a SU of the plurality of SUs to the requesting entity, wherein the status includes another consistency level indicator that indicates a level of consistency that has been met in accordance with the write request to the plurality of SUs based on the desired consistency level indicator.

2. The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to:

when at least the favorable number of write responses has been received from the at least some of the plurality of SUs, issue another store data response that indicates status of successfully stored of at least one EDS of the set of EDSs to at least one SU of the plurality of SUs to the requesting entity.

3. The computing device of claim 1 , wherein the computing device is located at a first premises that is remotely located from a second premises of at least one SU of the plurality of SUs within the DSN.

4. The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to:

select the write threshold number of EDSs based on at least one of the desired consistency level indicator, a system registry value, or storage unit (SU) performance levels associated with at least some of the plurality of SUs.

5. The computing device of claim 1 , wherein at least one of:

the store data request includes at least one of the data object and the desired consistency level indicator;

the write request includes the set of EDSs; or

a write response of the at least some write responses includes the status of writing an EDS of the set of EDSs to a SU of the plurality of SUs, wherein the status includes successfully stored or error.

6. The computing device of claim 1 , wherein:

the decode threshold number of EDSs are needed to recover the data segment;

the read threshold number of EDSs provides for reconstruction of the data segment;

the set of EDSs is of pillar width and includes the pillar number of EDSs;

each of the decode threshold number, the read threshold number, and the write threshold number is less than the pillar number; and

the write threshold number is greater than or equal to the read threshold number that is greater than or equal to the decode threshold number.

7. The computing device of claim 1 further comprising:

a SU of the plurality of SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device.

8. The computing device of claim 1 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

9. A computing device comprising:

an interface configured to interface and communicate with a dispersed or distributed storage network (DSN);

memory that stores operational instructions; and

processing circuitry operably coupled to the interface and to the memory, wherein the processing circuitry is configured to execute the operational instructions to:

receive a store data request from a requesting entity;

dispersed error encode a data segment associated with a data object to generate a set of encoded data slices (EDSs), wherein the data object is segmented into a plurality of data segments, wherein the data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce the set of EDSs to be distributedly stored among a plurality of storage units (SUs) that includes a first site including a first SU set and a second site including a second SU set;

select a write threshold number of EDSs based on at least one of a desired consistency level indicator corresponding to a sum of a read threshold number of EDSs and the write threshold number of EDSs, a system registry value, or storage unit (SU) performance levels associated with at least some of the plurality of SUs, wherein the write threshold number of EDSs provides for a successful transfer of the set of EDSs from a first at least one location in the DSN to a second at least one location in the DSN, wherein the read threshold number of EDSs provides for reconstruction of the data segment, wherein the set of EDSs is of pillar width and includes a pillar number of EDSs that is at least twice a decode threshold number of EDSs that are needed to recover the data segment, wherein the desired consistency level indicator corresponds to a strong consistency level when the sum is greater than or equal to the pillar number of EDSs, and wherein the desired consistency level indicator corresponds to a weak consistency level when the sum is less than the pillar number of EDSs;

issue a write request to the plurality of SUs;

receive at least some write responses from at least some of the plurality of SUs;

determine whether a favorable number of write responses has been received from the at least some of the plurality of SUs; and

when fewer than the favorable number of write responses has been received from the at least some of the plurality of SUs:

issue at least one rollback request to at least one of the plurality of SUs; and

issue a store data response that indicates status of writing an EDS of the set of EDSs to a SU of the plurality of SUs to the requesting entity; and

when at least the favorable number of write responses has been received from the at least some of the plurality of SUs, issue another store data response that indicates status of successfully stored of at least one EDS of the set of EDSs to at least one SU of the plurality of SUs to the requesting entity, wherein the status includes another consistency level indicator that indicates a level of consistency that has been met in accordance with the write request to the plurality of SUs based on the desired consistency level indicator.

10. The computing device of claim 9 , wherein the computing device is located at a first premises that is remotely located from a second premises of at least one SU of the plurality of SUs within the DSN.

11. The computing device of claim 9 , wherein at least one of:

the store data request includes at least one of the data object and the desired consistency level indicator;

the write request includes the set of EDSs; or

a write response of the at least some write responses includes the status of writing an EDS of the set of EDSs to a SU of the plurality of SUs, wherein the status includes successfully stored or error.

12. The computing device of claim 9 , wherein:

the decode threshold number of EDSs are needed to recover the data segment;

the read threshold number of EDSs provides for reconstruction of the data segment;

the set of EDSs is of pillar width and includes the pillar number of EDSs;

each of the decode threshold number, the read threshold number, and the write threshold number is less than the pillar number; and

the write threshold number is greater than or equal to the read threshold number that is greater than or equal to the decode threshold number.

13. The computing device of claim 9 , wherein at least one of:

the computing device includes a SU of the plurality of SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device; or

the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

14. A method for execution by a computing device, the method comprising:

receiving, via an interface of the computing device that is configured to interface and communicate with a dispersed or distributed storage network (DSN), a store data request from a requesting entity;

dispersed error encoding a data segment associated with a data object to generate a set of encoded data slices (EDSs), wherein the data object is segmented into a plurality of data segments, wherein the data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce the set of EDSs to be distributedly stored among a plurality of storage units (SUs) that includes a first site including a first SU set and a second site including a second SU set;

selecting a write threshold number of EDSs based on a desired consistency level indicator corresponding to a sum of a read threshold number of EDSs and the write threshold number of EDSs, wherein the write threshold number of EDSs provides for a successful transfer of the set of EDSs from a first at least one location in the DSN to a second at least one location in the DSN, wherein the read threshold number of EDSs provides for reconstruction of the data segment, wherein the set of EDSs is of pillar width and includes a pillar number of EDSs that is at least twice a decode threshold number of EDSs that are needed to recover the data segment, wherein the desired consistency level indicator corresponds to a strong consistency level when the sum is greater than or equal to the pillar number of EDSs, and wherein the desired consistency level indicator corresponds to a weak consistency level when the sum is less than the pillar number of EDSs;

issuing, via the interface, a write request to the plurality of SUs;

receiving, via the interface, at least some write responses from at least some of the plurality of SUs;

determining whether a favorable number of write responses has been received from the at least some of the plurality of SUs; and

when fewer than the favorable number of write responses has been received from the at least some of the plurality of SUs:

issuing, via the interface, at least one rollback request to at least one of the plurality of SUs; and

issuing, via the interface, a store data response that indicates status of writing an EDS of the set of EDSs to a SU of the plurality of SUs to the requesting entity, wherein the status includes another consistency level indicator that indicates a level of consistency that has been met in accordance with the write request to the plurality of SUs based on the desired consistency level indicator.

15. The method of claim 14 further comprising:

when at least the favorable number of write responses has been received from the at least some of the plurality of SUs, issuing, via the interface, another store data response that indicates status of successfully stored of at least one EDS of the set of EDSs to at least one SU of the plurality of SUs to the requesting entity.

16. The method of claim 14 , wherein the computing device is located at a first premises that is remotely located from a second premises of at least one SU of the plurality of SUs within the DSN.

17. The method of claim 14 further comprising:

selecting the write threshold number of EDSs based on at least one of the desired consistency level indicator, a system registry value, or storage unit (SU) performance levels associated with at least some of the plurality of SUs.

18. The method of claim 14 , wherein at least one of:

the store data request includes at least one of the data object and the desired consistency level indicator;

the write request includes the set of EDSs; or

a write response of the at least some write responses includes the status of writing an EDS of the set of EDSs to a SU of the plurality of SUs, wherein the status includes successfully stored or error.

19. The method of claim 14 , wherein:

the decode threshold number of EDSs are needed to recover the data segment;

the read threshold number of EDSs provides for reconstruction of the data segment;

the set of EDSs is of pillar width and includes the pillar number of EDSs;

each of the decode threshold number, the read threshold number, and the write threshold number is less than the pillar number; and

the write threshold number is greater than or equal to the read threshold number that is greater than or equal to the decode threshold number.

20. The method of claim 14 , wherein at least one of:

the computing device includes a SU of the plurality of SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device; or

the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

Assignments (5)
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 Dec 13, 2017
From: GLADWIN, S. CHRISTOPHER; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044386/0157 →