IP Library Granted Patent US 10,498,822
Granted Patent B2
US 10,498,822 · App. 15/831,965 · Granted Dec 3, 2019

Adaptive scanning rates

Inventors: Ravi V. Khadiwala (Bartlett, IL); Ethan S. Wozniak (Park Ridge, IL); Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
H04L67/1097G06F11/1076H04L67/10H03M13/09H03M13/1515H03M13/3761
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,498,822
App. No.
15/831,965
Granted
Dec 3, 2019
Kind
B2
Abstract

A distributed storage network (DSN) stores encoded data slices in dispersed storage (DS) memories using a DSN namespace divided into a plurality of DSN address ranges. Multiple scanning modules, each including a processor and associated memory, identify DSN address ranges for detection of storage errors within the DSN namespace, and initiate scanning for storage errors within the identified DSN address ranges. The scanning is performed in accordance with a scanning rate associated with each individual scanning module. Each scanning module obtains a target scanning performance level, which specifies a scanning performance level for the detection of storage errors across multiple DSN address ranges associated with more than one scanning module, and determines an actual scanning performance level for storage error detection across the same range of DSN addresses. The scanning modules cooperatively determine an updated scanning rate for each scanning module based on the target scanning performance level and the actual scanning performance level. The scanning rate of at least one of the plurality of scanning modules is altered to match the updated scanning rate.

Claims (70)

1. A method for use in a distributed storage network (DSN) storing encoded data slices in dispersed storage (DS) memories using a DSN namespace divided into a plurality of DSN address ranges, the method comprising:

identifying, using a processor and associated memory included in each scanning module of a plurality of scanning modules, identified DSN address ranges for detection of storage errors within the DSN namespace;

initiating, using the processor and associated memory included in each scanning module of a plurality of scanning modules, scanning for the storage errors within the identified DSN address ranges, wherein each individual scanning module scans for errors in accordance with a scanning rate associated with the individual scanning module;

obtaining, using the processor and associated memory included in each scanning module, a target scanning performance level, the target scanning performance level specifying a scanning performance level for the detection of storage errors across DSN address ranges associated with more than one scanning module;

determining, using the processor and associated memory included in each scanning module, an actual scanning performance level for storage error detection across the plurality of DSN address ranges;

cooperatively determining, by the plurality of scanning modules, an updated scanning rate for each scanning module, the cooperatively determining based on the target scanning performance level and the actual scanning performance level; and

altering a scanning rate of at least one of the plurality of scanning modules to match the updated scanning rate.

2. The method of claim 1 , further comprising:

throttling the scanning rate of the at least one of the plurality of scanning modules to less than maximum capacity in response to the updated scanning rate for the at least one of the plurality of scanning modules decreasing.

3. The method of claim 1 , the cooperatively determining including:

determining, by each of scanning module, a scanning rate required among the plurality of scanning modules for the plurality of scanning modules to complete a scan of the DSN namespace within a given period of time.

4. The method of claim 1 , further comprising:

in response to a determination, by an individual scanning module, that the individual scanning module is unable to scan at a rate sufficient to meet the updated scanning rate, transmitting a warning indicator from the individual scanning module to other scanning modules of a plurality of scanning modules.

5. The method of claim 1 , further comprising:

in response to detecting a failure of an individual scanning module, transferring responsibility for scanning a DSN address range associated with the individual scanning module to one or more other storage modules.

6. The method of claim 1 , wherein scanning for storage errors by an individual scanning module includes:

issuing a list slice request from the individual scanning module to a storage unit within a DSN address range associated with the individual scanning module; and

interpreting a response to the list slice request to identify a storage error.

7. The method of claim 1 , wherein:

at least one scanning module is implemented by a storage unit including a processing core and a plurality of DS memories.

8. A scanning module for use in a distributed storage network (DSN) storing encoded data slices in dispersed storage (DS) memories using a DSN namespace divided into a plurality of DSN address ranges, the scanning module comprising:

a processor and associated memory;

a network interface coupled to the processor and associated memory, the network interface configured to couple the scanning module to a plurality of other scanning modules associated with different DSN address ranges for detection of storage errors within the DSN namespace;

the processor and associated memory configured to:

determine an identified DSN address range for detection of storage errors within the DSN namespace;

initiate scanning for the storage errors within the identified DSN address range, wherein scanning for the storage errors is performed in accordance with a scanning rate associated with the scanning module;

obtain a target scanning performance level, the target scanning performance level specifying a scanning performance level for the detection of storage errors across the DSN namespace;

determine an actual scanning performance level for storage error detection across the DSN namespace;

determine, in cooperation with the plurality of other scanning modules, an updated scanning rate for both the scanning module and the plurality of other scanning modules, based on the target scanning performance level and the actual scanning performance level; and

alter a scanning rate of the scanning module to match the updated scanning rate.

9. The scanning module of claim 8 , the processor and associated memory further configured to:

throttle the scanning rate of the scanning module to less than maximum capacity in response to the updated scanning rate decreasing.

10. The scanning module of claim 8 , the processor and associated memory further configured to:

determine a scanning rate required, among both the scanning module and the plurality of other scanning modules, to complete a scan of the DSN namespace within a given period of time.

11. The scanning module of claim 8 , the processor and associated memory further configured to:

determine that the scanning module is unable to scan at a rate sufficient to meet the updated scanning rate; and

in response to determining that the scanning module is unable to scan at a rate sufficient to meet the updated scanning rate, transmit a warning indicator to the plurality of other scanning modules.

12. The scanning module of claim 8 , the processor and associated memory further configured to:

detect a failure of at least one of the other scanning modules; and

in response to detecting the failure, transfer responsibility for scanning at least a portion of the identified DSN address range to one or more of the other storage modules.

13. The scanning module of claim 8 , wherein scanning for storage errors by an individual scanning module includes:

issuing a list slice request from the individual scanning module to a storage unit within a DSN address range associated with the individual scanning module; and

interpreting a response to the list slice request to identify a storage error.

14. The scanning module of claim 8 , wherein:

the scanning module is implemented by a storage unit including a processing core and a plurality of DS memories.

15. A distributed storage network (DSN), comprising:

a plurality of storage units, each of the plurality of storage units including a plurality of dispersed storage (DS) memories used to store encoded data slices in accordance with a DSN namespace divided into a plurality of DSN address ranges;

a plurality of scanning modules, each scanning module including:

a processor and associated memory;

a network interface coupled to the processor and associated memory, the network interface configured to couple the scanning module to a plurality of other scanning modules associated with different DSN address ranges for detection of storage errors within the DSN namespace;

the processor and associated memory configured to:

determine an identified DSN address range for detection of storage errors within the DSN namespace;

initiate scanning for the storage errors within the identified DSN address range, wherein scanning for the storage errors is performed in accordance with a scanning rate associated with the scanning module;

obtain a target scanning performance level, the target scanning performance level specifying a scanning performance level for the detection of storage errors across the DSN namespace;

determine an actual scanning performance level for storage error detection across the DSN namespace;

determine, in cooperation with the plurality of other scanning modules, an updated scanning rate for both the scanning module and the plurality of other scanning modules, based on the target scanning performance level and the actual scanning performance level; and

alter a current scanning rate of the scanning module to match an updated scanning rate.

16. The distributed storage network (DSN) of claim 15 , the processor and associated memory further configured to:

throttle the scanning rate to less than maximum capacity in response to the updated scanning rate for the at least one of the plurality of scanning modules decreasing.

17. The distributed storage network (DSN) of claim 15 , the processor and associated memory further configured to:

determine a scanning rate required, among both the scanning module and the plurality of other scanning modules, to complete a scan of the DSN namespace within a given period of time.

18. The distributed storage network (DSN) of claim 15 , the processor and associated memory further configured to:

determine that the scanning module is unable to scan at a rate sufficient to meet the updated scanning rate; and

in response to determining that the scanning module is unable to scan at a rate sufficient to meet the updated scanning rate, transmit a warning indicator to the plurality of other scanning modules.

19. The distributed storage network (DSN) of claim 15 , the processor and associated memory further configured to:

detect a failure of at least one of the other scanning modules; and

in response to detecting the failure, transfer responsibility for scanning at least a portion of the identified DSN address range to one or more of the other storage modules.

20. The distributed storage network (DSN) of claim 15 , wherein scanning for storage errors by an individual scanning module includes:

issuing a list slice request from the individual scanning module to a storage unit within a DSN address range associated with the individual scanning module; and

interpreting a response to the list slice request to identify a storage error.

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 Dec 5, 2017
From: KHADIWALA, RAVI V.; WOZNIAK, ETHAN S.; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044301/0672 →
Continuity (4)
Continuation In Part 15812706 · Nov 14, 2017
Continuation 14956818 · Dec 2, 2015
Provisional Application 62109712 · Jan 30, 2015
Related Publication 20180109614A1 · Apr 19, 2018