IP Library Granted Patent US 10,621,021
Granted Patent B2
US 10,621,021 · App. 15/824,783 · Granted Apr 14, 2020

Using dispersed data structures to point to slice or date source replicas

Inventors: Wesley B. Leggette (Chicago, IL); Andrew D. Baptist (Mt. Pleasant, WI); Greg R. Dhuse (Chicago, IL); Jason K. Resch (Chicago, IL); Gary W. Grube (Barrington Hills, IL); S. Christopher Gladwin (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/0727G06F3/064G06F3/067G06F11/1076G06F16/23G06F16/278G06Q10/101G06Q50/01H04L67/1097
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,621,021
App. No.
15/824,783
Granted
Apr 14, 2020
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 computing device obtains a data identifier associated with a data object and determines DSN address(es) associated with storage of one or more encoded data slice(s) (EDS(s)). The computing device selects slice names based on the DSN address(es) and issues at least a read threshold number of read slice requests using slice names to at least some storage units (SUs). When an insufficient number of EDSs is received, the computing device issues an alternate read slice request to an alternate SU. When a sufficient number of EDSs is received from the alternate SU and the computing device has received at least the read threshold number of EDSs, the computing device reconstructs the data segment.

Claims (60)

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:

obtain a data identifier associated with a data object, wherein the data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a plurality of encoded data slices (EDSs) that is distributedly stored among a plurality of storage units (SUs) within the DSN, wherein a read threshold number of EDSs provides for reconstruction of the data segment;

determine one or more DSN addresses associated with storage of one or more of the plurality of EDSs;

select a plurality of slice names based on the one or more DSN addresses;

issue at least a read threshold number of read slice requests using the plurality of slice names to at least some of the plurality of SUs;

when fewer than the read threshold number of EDSs is received from the at least some of the plurality of SUs in response to issuance of the at least the read threshold number of read slice requests, issue an alternate read slice request to an alternate SU to retrieve an alternate EDS among the read threshold number of EDSs; and

when the alternate EDS among the read threshold number of EDSs is received from the alternate SU and the computing device has received at least the read threshold number of EDSs, reconstruct the data segment.

2. The computing device of claim 1 , wherein:

a DSN address of the one or more DSN addresses includes at least one of a slice name of the plurality of slice names, an alternate slice name, a source name, or an alternate source name; and

the slice name and the source name are aliased to a common slice listed in an index that associates the data identifier to the one or more DSN addresses.

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

when the at least the read threshold number of EDSs is received from the at least some of the plurality of SUs in response to the issuance of the at least the read threshold number of read slice requests, reconstruct the data segment.

4. The computing device of claim 1 , wherein:

a SU of the at least some of the plurality of SUs is configured to determine to provide one or more alternate EDSs including the alternate EDS to the alternate SU to be stored temporarily in the alternate SU when the SU of the at least some of the plurality of SUs is overloaded based on servicing requests for at least one EDS stored within the SU of the at least some of the plurality of SUs; and

the alternate EDS to be stored temporarily in the alternate SU is substantially same as an EDS stored within the SU of the at least some of the plurality of SUs.

5. The computing device of claim 4 , wherein the SU of the at least some of the plurality of SUs is further configured to issue a write replicated slice request to the alternate SU, wherein the write replicated slice request includes at least one of an alternate slice name, a replicated EDS, a storage time frame, or a performance threshold.

6. 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.

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:

obtain a data identifier associated with a data object, wherein the data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a plurality of encoded data slices (EDSs) that is distributedly stored among a plurality of storage units (SUs) within the DSN, wherein a read threshold number of EDSs provides for reconstruction of the data segment;

determine one or more DSN addresses associated with storage of one or more of the plurality of EDSs, wherein a DSN address of the one or more DSN addresses includes at least one of a slice name of a plurality of slice names, an alternate slice name, a source name, or an alternate source name, and wherein the slice name and the source name are aliased to a common slice listed in an index that associates the data identifier to the one or more DSN addresses;

select the plurality of slice names based on the one or more DSN addresses;

issue at least a read threshold number of read slice requests using the plurality of slice names to at least some of the plurality of SUs;

when the at least the read threshold number of EDSs is received from the at least some of the plurality of SUs in response to issuance of the at least the read threshold number of read slice requests, reconstruct the data segment;

when fewer than the read threshold number of EDSs is received from the at least some of the plurality of SUs in response to the issuance of the at least the read threshold number of read slice requests, issue an alternate read slice request to an alternate SU to retrieve an alternate EDS among the read threshold number of EDSs; and

when the alternate EDS among the read threshold number of EDSs is received from the alternate SU and the computing device has received at least the read threshold number of EDSs, reconstruct the data segment.

10. The computing device of claim 9 , wherein:

a SU of the at least some of the plurality of SUs is configured to determine to provide one or more alternate EDSs including the alternate EDS to the alternate SU to be stored temporarily in the alternate SU when the SU of the at least some of the plurality of SUs is overloaded based on servicing requests for at least one EDS stored within the SU of the at least some of the plurality of SUs; and

the alternate EDS to be stored temporarily in the alternate SU is substantially same as an EDS stored within the SU of the at least some of the plurality of SUs.

11. The computing device of claim 10 , wherein the SU of the at least some of the plurality of SUs is further configured to issue a write replicated slice request to the alternate SU, wherein the write replicated slice request includes at least one of an alternate slice name, a replicated EDS, a storage time frame, or a performance threshold.

12. The computing device of claim 9 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.

13. The computing device of claim 9 , 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).

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

obtaining a data identifier associated with a data object, wherein the data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a plurality of encoded data slices (EDSs) that is distributedly stored among a plurality of storage units (SUs) within a dispersed or distributed storage network (DSN), wherein a read threshold number of EDSs provides for reconstruction of the data segment;

determining one or more DSN addresses associated with storage of one or more of the plurality of EDSs;

selecting a plurality of slice names based on the one or more DSN addresses;

issuing, via an interface of the computing device that is configured to interface and communicate with a dispersed or distributed storage network (DSN), at least a read threshold number of read slice requests using the plurality of slice names to at least some of the plurality of SUs;

when fewer than the read threshold number of EDSs is received via the interface from the at least some of the plurality of SUs in response to issuance of the at least the read threshold number of read slice requests, issuing an alternate read slice request to an alternate SU to retrieve an alternate EDS among the read threshold number of EDSs; and

when the alternate EDS among the read threshold number of EDSs is received via the interface from the alternate SU and the computing device has received at least the read threshold number of EDSs, reconstructing the data segment.

15. The method of claim 14 , wherein:

a DSN address of the one or more DSN addresses includes at least one of a slice name of the plurality of slice names, an alternate slice name, a source name, or an alternate source name; and

the slice name and the source name are aliased to a common slice listed in an index that associates the data identifier to the one or more DSN addresses.

16. The method of claim 14 further comprising:

when the at least the read threshold number of EDSs is received from the at least some of the plurality of SUs in response to the issuance of the at least the read threshold number of read slice requests, reconstructing the data segment.

17. The method of claim 14 further comprising:

operating a SU of the at least some of the plurality of SUs to determine to provide one or more alternate EDSs including the alternate EDS to the alternate SU to be stored temporarily in the alternate SU when the SU of the at least some of the plurality of SUs is overloaded based on servicing requests for at least one EDS stored within the SU of the at least some of the plurality of SUs; and

storing the alternate EDS temporarily in the alternate SU, wherein the alternate EDS is substantially same as an EDS stored within the SU of the at least some of the plurality of SUs.

18. The method of claim 17 further comprising:

operating the SU of the at least some of the plurality of SUs to issue a write replicated slice request to the alternate SU, wherein the write replicated slice request includes at least one of an alternate slice name, a replicated EDS, a storage time frame, or a performance threshold.

19. The method of claim 14 , wherein 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.

20. The method of claim 14 , 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).

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 DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2017
From: LEGGETTE, WESLEY B.; BAPTIST, ANDREW D.; DHUSE, GREG R.; RESCH, JASON K.; GRUBE, GARY W.; GLADWIN, S. CHRISTOPHER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044240/0544 →
Cited By (1)
US 12,282,686