IP Library Granted Patent US 10,853,174
Granted Patent B2
US 10,853,174 · App. 16/378,652 · Granted Dec 1, 2020

Utilizing storage unit latency data in a dispersed storage network

Inventor: Ravi V. Khadiwala (Bartlett, IL)
Assignee: PURE STORAGE, INC.
G06F11/1092G06F3/061G06F3/064G06F3/0604G06F3/067G06F3/0611G06F3/0619G06F3/0635G06F3/0659G06F3/0665G06F3/0689G06F11/2094H03M13/1515H03M13/3761H04L43/0864H04L43/0876H04L43/16H04L67/1008H04L67/1097G06F2201/805
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,853,174
App. No.
16/378,652
Granted
Dec 1, 2020
Kind
B2
Abstract

A method for execution by a dispersed storage and task (DST) processing unit includes generating a first access request for transmission via a network to a first one of a plurality of storage units in a dispersed storage network (DSN). A first access response is received via the network from the first one of the plurality of storage units that includes a first access time duration. Access duration data is updated to include the first access time duration received from the first one of the plurality of storage units. A subset of storage units is selected from the plurality of storage units based on comparing a plurality of access time durations corresponding to the plurality of storage units included in the access duration data to perform a second data access. At least one second access request is generated for transmission via the network to the subset of storage units.

Claims (48)

1. A method for execution by a dispersed storage and task (DST) processing unit that includes a processor, the method comprises:

generating a first access request for transmission via a network to a first one of a plurality of storage units in a dispersed storage network (DSN);

receiving a first access response via the network from the first one of the plurality of storage units that includes a first access time duration;

updating access duration data to include the first access time duration received from the first one of the plurality of storage units;

generating latency data that includes a network latency significance score by comparing a network latency to at least one of a plurality of access time durations included in the access duration data and corresponding to the plurality of storage units;

selecting a subset of storage units from the plurality of storage units based on comparing the plurality of access time durations to perform a second data access when the network latency significance score indicates the network latency is less significant than the at least one of the plurality of access time durations;

selecting the subset of storage units independently of the plurality of access time durations when the network latency significance score indicates the network latency is more significant than the at least one of the plurality of access time durations; and

generating at least one second access request for transmission via the network to the subset of storage units.

2. The method of claim 1 , wherein the first access time duration is based on a difference between a first time that the first access request was received by the first one of the plurality of storage units and a second time that the first access response was generated by the first one of the plurality of storage units.

3. The method of claim 1 , wherein the subset of storage units is selected based on ranking the access time durations and including storage units with fastest ranked corresponding access time durations.

4. The method of claim 1 , wherein the size of the subset of storage units is based on an information dispersal algorithm (IDA) parameter.

5. The method of claim 1 , wherein the access duration data further includes a plurality of access types corresponding to the plurality of access time durations, further comprising:

selecting a subset of access time durations from the plurality of access time durations by including access time durations that each correspond to a one of the plurality of access types that matches a data access type corresponding to the second data access;

wherein the subset of storage units is selected based on comparing only access time durations included in the subset of access time durations.

6. The method of claim 1 , wherein the access duration data includes a plurality of timestamps corresponding to the access time durations, and wherein selecting the subset of storage units is further based on comparing the plurality of timestamps.

7. The method of claim 6 , wherein at least one of the plurality of storage units has a plurality of corresponding access time durations included in the access duration data, further comprising:

selecting a subset of access time durations from the plurality of access time durations by including a most recent of the plurality of corresponding access time durations for each of the at least one of the plurality of storage units;

wherein the subset of storage units is selected based on comparing only access time durations included in the subset of access time durations.

8. The method of claim 1 , wherein the network latency significance score indicates that the network latency is more significant than the at least one of the plurality of access time durations when the network latency is greater than the at least one of the plurality of access time durations by at least a fixed significance factor.

9. The method of claim 8 , wherein the network latency significance score indicates that the network latency is less significant than the at least one of the plurality of access time durations when the network latency is not greater than the at least one of the plurality of access time durations by at least the fixed significance factor.

10. The method of claim 1 , further comprising:

calculating the network latency by subtracting one of the plurality of access time durations that corresponds to one of a plurality of past accesses from a total time;

wherein the total time is determined by a difference between a first time that a past access request corresponding to the one of the plurality of past accesses was transmitted by the DST processing unit and a second time that a past access response corresponding to the one of the plurality of past accesses was received by the DST processing unit.

11. The method of claim 10 , wherein the one of the plurality of access time durations is selected further based on an average access time duration associated with the plurality of access time durations.

12. The method of claim 1 , further comprising:

selecting a slow storage unit subset of the plurality of storage units by ranking the plurality of access time durations and including storage units with slowest ranked corresponding access time durations; and

generating a notification for transmission via the network indicating the slow storage unit subset.

13. The method of claim 12 , wherein selecting the slow storage unit subset includes selecting storage units with corresponding access times that are slower than a fixed access duration threshold.

14. The method of claim 1 , wherein the second data access corresponds to a read request, and wherein the subset of storage units is further selected based on a unique combination reads (UCR) protocol.

15. A processing system of a dispersed storage and task (DST) processing unit 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:

generate a first access request for transmission via a network to a first one of a plurality of storage units in a dispersed storage network (DSN);

receive a first access response via the network from the first one of the plurality of storage units that includes a first access time duration;

update access duration data to include the first access time duration received from the first one of the plurality of storage units;

generate latency data that includes a network latency significance score by comparing a network latency to at least one of a plurality of access time durations included in the access duration data and corresponding to the plurality of storage units;

select a subset of storage units from the plurality of storage units based on comparing the plurality of access time durations to perform a second data access when the network latency significance score indicates the network latency is less significant than the at least one of the plurality of access time durations;

select the subset of storage units independently of the plurality of access time durations when the network latency significance score indicates the network latency is more significant than the at least one of the plurality of access time durations; and

generate at least one second access request for transmission via the network to the subset of storage units.

16. The processing system of claim 15 , wherein the first access time duration is based on a difference between a first time that the first access request was received by the first one of the plurality of storage units and a second time that the first access response was generated by the first one of the plurality of storage units.

17. The processing system of claim 15 , wherein the access duration data further includes a plurality of access types corresponding to the plurality of access time durations, and wherein the operation instructions, when executed by the at least one processor, further cause the processing system to:

select a subset of access time durations from the plurality of access time durations by including access time durations that each correspond to a one of the plurality of access types that matches a data access type corresponding to the second data access;

wherein the subset of storage units is selected based on comparing only access time durations included in the subset of access time durations.

18. The processing system of claim 15 , wherein the operation instructions, when executed by the at least one processor, further cause the processing system to:

select a slow storage unit subset of the plurality of storage units by ranking the plurality of access time durations and including storage units with slowest ranked corresponding access time durations.

19. The processing system of claim 18 , wherein the operation instructions, when executed by the at least one processor, further cause the processing system to:

generate a notification for transmission via the network indicating the slow storage unit subset.

20. A non-transitory computer readable storage medium comprises: at least one memory section that includes hardware 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: generate a first access request for transmission via a network to a first one of a plurality of storage units in the DSN; receive a first access response via the network from the first one of the plurality of storage units that includes a first access time duration; update access duration data to include the first access time duration received from the first one of the plurality of storage units; generate latency data that includes a network latency significance score by comparing a network latency to at least one of a plurality of access time durations included in the access duration data and corresponding to the plurality of storage units; select a subset of storage units from the plurality of storage units based on comparing the plurality of access time durations to perform a second data access when the network latency significance score indicates the network latency is less significant than the at least one of the plurality of access time durations; select the subset of storage units independently of the plurality of access time durations when the network latency significance score indicates the network latency is more significant than the at least one of the plurality of access time durations; and generate at least one second access request for transmission via the network to the subset of storage units.

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 Apr 9, 2019
From: KHADIWALA, RAVI V.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048827/0309 →