IP Library Granted Patent US 10,489,070
Granted Patent B2
US 10,489,070 · App. 16/175,643 · Granted Nov 26, 2019

Proxying read requests when performance or availability failure is anticipated

Inventors: Andrew D. Baptist (Mt. Pleasant, WI); Greg R. Dhuse (Chicago, IL); Ravi V. Khadiwala (Bartlett, IL); Ethan S. Wozniak (Park Ridge, IL)
Assignee: International Business Machines Corporation
G06F3/0619G06F3/061G06F3/0604G06F3/064G06F3/067G06F3/0611G06F3/0631G06F3/0635G06F3/0644G06F3/0647G06F3/0659G06F8/65G06F9/485G06F9/4881G06F11/1076G06F11/1092G06F21/31H03M13/05H04L61/10H04L61/20H04L63/08H04L63/104H04L63/108H04L67/1097H04L67/28G06F2221/2133H03M13/1515H03M13/373H03M13/616
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,489,070
App. No.
16/175,643
Granted
Nov 26, 2019
Kind
B2
Abstract

A method includes receiving, by a read threshold number of storage units of a dispersed storage network (DSN), the read threshold number of read requests regarding the read threshold number of encoded data slices of a set of encoded data slices. The method further includes determining, by each storage unit of the read threshold number of storage units, whether the storage unit is capable of processing a respective read request. When a particular storage unit is not capable of processing the respective read request, the method further includes sending, by the particular storage unit, a proxy read request to another storage unit that is not in the read threshold number of storage units. The method further includes determining, by the other storage unit, whether the other storage unit is capable of processing the proxy read request and, when it is, processing the proxy read request.

Claims (69)

1. A method comprises:

identifying, by a computing device of a dispersed storage network (DSN), a read threshold number of storage units of a set of storage units, wherein other storage units in the set of storage units are available as proxy storage units;

sending, by the computing device, a read threshold number of read requests regarding a read threshold number of encoded data slices of a set of encoded data slices to the read threshold number of storage units, wherein a data segment of a data object is dispersed storage error encoded into the set of encoded data slices, wherein the set of encoded data slices is stored in the set of storage units, and wherein the read threshold number is less than a total number of encoded data slices in the set of encoded data slices and is equal to or greater than a decode threshold number;

determining, by a storage unit of the read threshold number of storage units, whether the storage unit is capable of processing a respective read request of the read threshold number of read requests;

when the storage unit of the read threshold number of storage units is not capable of processing the respective read request:

sending, by the storage unit, a proxy read request to one of the proxy storage units;

determining, by the one of the proxy storage units, whether the one of the proxy storage units is capable of processing the proxy read request; and

when the one of the proxy storage units is capable of processing the proxy read request, processing, by the one of the proxy storage units, the proxy read request.

2. The method of claim 1 , wherein the determining whether the storage unit is capable of processing the respective read request comprises one or more of:

determining that the storage unit does not currently store an encoded data slice identified in the respective read request;

determining that the encoded data slice identified in the respective read request is stored in a memory device of the particular storage unit that is currently unavailable; and

determining that processing of the respective read request would exceed a response time threshold.

3. The method of claim 1 further comprises:

identifying, by the storage unit, the one of the proxy storage units based on one or more of:

an indication within the respective read request;

the read threshold number of read requests including slice names that identified the read threshold number of encoded data slices;

by executing a distributed agreement protocol function; and

by a look up table.

4. The method of claim 1 , wherein the processing of the proxy read request comprises:

retrieving, by the one of proxy storage units, from a local memory another encoded data slice of the set of encoded data slices that was not included in the read threshold number of encoded data slices; and

sending, by the one of the proxy storage units, the other encoded data slice to a requesting computing device.

5. The method of claim 1 , wherein the processing of the proxy read request comprises:

retrieving, by the one of the proxy storage units, from a local memory another encoded data slice of the set of encoded data slices that was not included in the read threshold number of encoded data slices;

sending, by the one of the proxy storage units, the other encoded data slice to the particular storage unit; and

forwarding, by the storage unit, the other encoded data slice to a requesting computing device.

6. The method of claim 1 further comprises:

notifying, by the storage unit or the one of the proxy storage units, a requesting computing device of the proxy read request.

7. The method of claim 1 further comprises:

when the one of the proxy storage units is not capable of processing the proxy read request:

sending, by the one of the proxy storage units, the proxy read request to another proxy storage unit of the proxy storage storage units;

determining, by the other proxy storage unit, whether the other proxy storage unit is capable of processing the proxy read request; and

when the other proxy storage unit is capable of processing the proxy read request, processing, by the other proxy storage unit, the proxy read request.

8. The method of claim 7 further comprises:

notifying, by the storage unit, the one of the proxy storage units, or the other proxy storage unit, a requesting computing device of the proxy read request being processed by the other proxy storage unit.

9. A computer readable memory device comprises:

a first memory section that stores operational instructions that, when executed by a computing of a dispersed storage network (DSN), causes the computing device to:

identify a read threshold number of storage units of a set of storage units, wherein other storage units in the set of storage units are available as proxy storage units;

send a read threshold number of read requests regarding a read threshold number of encoded data slices of a set of encoded data slices to the read threshold number of storage units, wherein a data segment of a data object is dispersed storage error encoded into the set of encoded data slices, wherein the set of encoded data slices is stored in the set of storage units, and wherein the read threshold number is less than a total number of encoded data slices in the set of encoded data slices and is equal to or greater than a decode threshold number;

a second memory section that stores operational instructions that, when executed by a storage unit of the read threshold number of storage units, causes the storage unit to:

determine whether the storage unit is capable of processing a respective read request of the read threshold number of read requests;

when the storage unit of the read threshold number of storage units is not capable of processing the respective read request:

send a proxy read request to a proxy unit of the proxy storage units;

a third memory section that stores operational instructions that, when executed by the proxy storage, causes the proxy storage unit to:

determine whether the proxy storage unit is capable of processing the proxy read request; and

when the proxy storage unit is capable of processing the proxy read request, processing the proxy read request;

send a proxy read request to another storage unit of the set of storage units that is not in the read threshold number of storage units when the particular storage unit is not capable of processing the respective read request;

determine whether the other storage unit is capable of processing the proxy read request; and

when the other storage unit is capable of processing the proxy read request, process the proxy read request.

10. The computer readable memory device of claim 9 , wherein the second memory section further stores operational instructions that, when executed by the storage unit, causes the storage unit to determine whether the storage unit is capable of processing the respective read request by one or more of:

determining that the storage unit does not currently store an encoded data slice identified in the respective read request;

determining that the encoded data slice identified in the respective read request is stored in a memory device of the particular storage unit that is currently unavailable; and

determining that processing of the respective read request would exceed a response time threshold.

11. The computer readable memory device of claim 9 , wherein the second memory section further stores operational instructions that, when executed by the storage unit, causes the storage unit to:

identify the proxy storage unit based on one or more of:

an indication within the respective read request;

the read threshold number of read requests including slice names that identified the read threshold number of encoded data slices;

by executing a distributed agreement protocol function; and

by a look up table.

12. The computer readable memory device of claim 9 , wherein the third memory section that stores operational instructions that, when executed by the proxy storage, causes the proxy storage unit to process the proxy read request by:

retrieving from a local memory another encoded data slice of the set of encoded data slices that was not included in the read threshold number of encoded data slices; and

sending the other encoded data slice to a requesting computing device.

13. The computer readable memory device of claim 9 , wherein the third memory section that stores operational instructions that, when executed by the proxy storage, causes the proxy storage unit to process the proxy read request by:

retrieving from a local memory another encoded data slice of the set of encoded data slices that was not included in the read threshold number of encoded data slices;

sending the other encoded data slice to the storage unit, which forwards the other encoded data slice to a requesting computing device.

14. The computer readable memory device of claim 9 , wherein the third memory section that stores operational instructions that, when executed by the proxy storage, causes the proxy storage unit to:

when the proxy storage unit is not capable of processing the proxy read request:

send the proxy read request to another proxy storage unit of the proxy storage storage units;

determine, by the other proxy storage unit, whether the other proxy storage unit is capable of processing the proxy read request; and

when the other proxy storage unit is capable of processing the proxy read request, process, by the other proxy storage unit, the proxy read request.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2024
From: GREEN MARKET SQUARE LIMITED
To: WORKDAY, INC.
Reel/Frame 067801/0892 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: GREEN MARKET SQUARE LIMITED
To: WORKDAY, INC.
Reel/Frame 067556/0783 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2022
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GREEN MARKET SQUARE LIMITED
Reel/Frame 058888/0675 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2018
From: BAPTIST, ANDREW D.; DHUSE, GREG R.; KHADIWALA, RAVI V.; WOZNIAK, ETHAN S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047361/0829 →