IP Library Granted Patent US 10,389,845
Granted Patent B2
US 10,389,845 · App. 15/688,162 · Granted Aug 20, 2019

Determining how to service requests based on several indicators

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,389,845
App. No.
15/688,162
Granted
Aug 20, 2019
Kind
B2
Abstract

A method for execution by a dispersed storage (DST) processing module includes receiving a data request. An estimated performance level is determined for each of a set of data access approaches, and one data access approach is selected. A data response that includes direction information is issued to the requesting entity when the selected approach includes directing the requesting entity to access an alternate DS processing module. The data object is recovered and a data response is issued to the requesting entity when the selected approach includes accessing the set of DS units directly. A redirect request is issued to the alternate DS processing module when the selected approach includes redirecting the data request, and the alternate DS processing module obtains and issues the data object. A data response is issued to the requesting entity when the alternate DS processing module issues the data object via a redirect response.

Claims (42)

1. A method for execution by a dispersed storage (DS) processing module that includes a processor, the method comprises:

receiving a data request for a data object from a requesting entity;

determining an estimated performance level for each of a set of data access approaches;

selecting one data access approach from the set of data access approaches based on the estimated performance levels, wherein the selected one data access approach includes one of: directing the requesting entity to access an alternate DS processing module directly, accessing a set of DS units directly, or redirecting the data request to the alternate DS processing module;

issuing a first data response to the requesting entity that includes direction information when the selected one data access approach includes the directing the requesting entity to access the alternate DS processing module directly, wherein the requesting entity issues an alternate data access request to the alternate DS processing module based on the direction information, and wherein the alternate DS processing module issues a first alternate data response to the requesting entity that includes the data object in response to receiving the alternate data access request;

recovering the data object from the set of DS units and issuing a second data response to the requesting entity that includes the data object when the selected one data access approach includes the accessing the set of DS units directly, wherein recovering the data object from the set of DS units includes issuing a set of slice access requests to the set of DS units, receiving slice access responses, and decoding a plurality of slices included in the slice access responses;

issuing a redirect request to the alternate DS processing module when the selected one data access approach includes the redirecting the data request to the alternate DS processing module, wherein, in response to receiving the redirect request, the data object is obtained by the alternate DS processing module from one of: a local memory of the alternate DS processing module or the set of DS units, and wherein the alternate DS processing module issues the data object via one of: a redirect response to the DS processing module or a second alternate data response to the requesting entity; and

issuing a third data response to the requesting entity that includes the data object when the selected one data access approach is the redirecting the data request to the alternate DS processing module and when the alternate DS processing module issues the data object via the redirect response.

2. The method of claim 1 , wherein the data request includes one or more of a read request indicator, a data object identifier, or a requesting entity identifier.

3. The method of claim 1 , wherein determining an estimated performance level is based on at least one of: of initiating a query, performing a test, calculating estimated performance levels, or receiving an error message.

4. The method of claim 1 , wherein the selected one data access approach corresponds to an estimated performance level associated with a lowest latency.

5. The method of claim 1 , wherein the direction information includes an identifier corresponding to the alternate DS processing module.

6. The method of claim 1 , wherein, in response to the alternate data access request, the alternate DS processing module obtains the data object from a local memory of the alternate DS processing module.

7. The method of claim 1 , wherein the redirect request includes the data request.

8. The method of claim 1 , wherein the alternate DS processing module obtains the data object from the set of DS units set in response to determining that the data object is not stored in the local memory of the alternate DS processing module.

9. The method of claim 1 , wherein the alternate DS processing module selects to issue the data object via the one of: the redirect response to the DS processing module or the second alternate data response based on the estimated performance levels.

10. A processing system of a dispersed storage (DS) processing module comprises:

at least one processor;

a memory that stores operational instructions, that when executed by the at least one processor cause the processing system to:

receive a data request for a data object from a requesting entity;

determine an estimated performance level for each of a set of data access approaches;

select one data access approach from the set of data access approaches based on the estimated performance levels, wherein the selected one data access approach includes one of: directing the requesting entity to access an alternate DS processing module directly, accessing a set of DS units directly, or redirecting the data request to the alternate DS processing module;

issue a first data response to the requesting entity that includes direction information when the selected one data access approach includes the directing the requesting entity to access the alternate DS processing module directly, wherein the requesting entity issues an alternate data access request to the alternate DS processing module based on the direction information, and wherein the alternate DS processing module issues a first alternate data response to the requesting entity that includes the data object in response to receiving the alternate data access request;

recover the data object from the set of DS units and issue a second data response to the requesting entity that includes the data object when the selected one data access approach includes the accessing the set of DS units directly, wherein recovering the data object from the set of DS units includes issuing a set of slice access requests to the set of DS units, receiving slice access responses, and decoding a plurality of slices included in the slice access responses;

issue a redirect request to the alternate DS processing module when the selected one data access approach includes the redirecting the data request to the alternate DS processing module, wherein, in response to receiving the redirect request, the data object is obtained by the alternate DS processing module from one of: a local memory of the alternate DS processing module or the set of DS units, and wherein the alternate DS processing module issues the data object via one of: a redirect response to the DS processing module or a second alternate data response to the requesting entity; and

issue a third data response to the requesting entity that includes the data object when the selected one data access approach is the redirecting the data request to the alternate DS processing module and when the alternate DS processing module issues the data object via the redirect response.

11. The processing system of claim 10 , wherein determining an estimated performance level is based on at least one of: of initiating a query, performing a test, calculating estimated performance levels, or receiving an error message.

12. The processing system of claim 10 , wherein the selected one data access approach corresponds to an estimated performance level associated with a lowest latency.

13. The processing system of claim 10 , wherein the direction information includes an identifier corresponding to the alternate DS processing module.

14. The processing system of claim 10 , wherein, in response to the alternate data access request, the alternate DS processing module obtains the data object from a local memory of the alternate DS processing module.

15. The processing system of claim 10 , wherein the redirect request includes the data request.

16. The processing system of claim 10 , wherein the alternate DS processing module obtains the data object from the set of DS units in response to determining that the data object is not stored in the local memory of the alternate DS processing module.

17. The processing system of claim 10 , wherein the alternate DS processing module selects to issue the data object via the one of: the redirect response to the DS processing module or the second alternate data response based on the estimated performance levels.

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

at least one memory section that stores operational instructions that, when executed by a processing system of a dispersed storage network (DSN) that includes a processor and a memory, causes the processing system to:

receive a data request for a data object from a requesting entity;

determine an estimated performance level for each of a set of data access approaches;

select one data access approach from the set of data access approaches based on the estimated performance levels, wherein the selected one data access approach includes one of: directing the requesting entity to access an alternate DS processing module directly, accessing a set of DS units directly, or redirecting the data request to the alternate DS processing module;

issue a first data response to the requesting entity that includes direction information when the selected one data access approach includes the directing the requesting entity to access the alternate DS processing module directly, wherein the requesting entity issues an alternate data access request to the alternate DS processing module based on the direction information, and wherein the alternate DS processing module issues a first alternate data response to the requesting entity that includes the data object in response to receiving the alternate data access request;

recover the data object from the set of DS units and issue a second data response to the requesting entity that includes the data object when the selected one data access approach includes the accessing the set of DS units directly, wherein recovering the data object from the set of DS units includes issuing a set of slice access requests to the set of DS units, receiving slice access responses, and decoding a plurality of slices included in the slice access responses;

issue a redirect request to the alternate DS processing module when the selected one data access approach includes the redirecting the data request to the alternate DS processing module, wherein, in response to receiving the redirect request, the data object is obtained by the alternate DS processing module from one of: a local memory of the alternate DS processing module or the set of DS units, and wherein the alternate DS processing module issues the data object via one of: a redirect response or a second alternate data response to the requesting entity; and

issue a third data response to the requesting entity that includes the data object when the selected one data access approach is the redirecting the data request to the alternate DS processing module and when the alternate DS processing module issues the data object via the redirect response.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0288 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2017
From: RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 043423/0812 →