IP Library Granted Patent US 10,678,451
Granted Patent B2
US 10,678,451 · App. 16/175,535 · Granted Jun 9, 2020

Cycling out dispersed storage processing units from access pools to perform expensive operations

Inventors: Andrew D. Baptist (Mt. Pleasant, WI); Ravi V. Khadiwala (Bartlett, 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,678,451
App. No.
16/175,535
Granted
Jun 9, 2020
Kind
B2
Abstract

A method includes receiving, by a process balancing module, a suspension request from a DS processing module of the DSN where the suspension request is for temporarily suspending processing of DSN access requests. The method further includes determining, by the process balancing module, whether sufficient processing resources of active DS processing units of the plurality of DS processing units are available for processing DSN access requests on behalf of the DS processing unit. When determined that sufficient processing resources are available, the method further includes granting the suspension request, and allocating DSN access requests of the DS processing unit to one or more of the active DS processing units.

Claims (71)

1. A method comprises:

receiving, by a process balance module of a dispersed storage network (DSN), a suspension request from a dispersed storage (DS) processing unit of a plurality of DS processing units of the DSN, wherein the DS processing unit has determined that it has a DSN operation to perform that will adversely interfere with processing of DSN access requests;

determining, by the process balancing module, whether sufficient processing resources of active DS processing units of the plurality of DS processing units are available for processing DSN access requests on behalf of the DS processing unit; and

when determined that sufficient processing resources are available:

granting, by the process balancing module, the suspension request; and

allocating, by the process balancing module, DSN access requests of the DS processing unit to one or more of the active DS processing units.

2. The method of claim 1 further comprises:

receiving, by the process balancing module, a return notification from the DS processing unit indicating that the DS processing unit has executed the DSN operation; and

in response to the return notification, resuming, by the process balancing module, allocation of the DSN access requests of the DS processing unit to the DS processing unit.

3. The method of claim 1 further comprises:

the DSN operation including one or more of garbage collection, software update, a system administration operation, and a diagnostic operation; and

the DSN access requests including two or more of a read request, a write request, a rebuild request, a list request, a delete request, and a modify request.

4. The method of claim 1 further comprises:

when determined that sufficient processing resources are not available, temporarily denying, by the process balancing module, the suspension request until sufficient processing resources become available.

5. The method of claim 1 , wherein the determining that sufficient processing resources are available comprises:

determining, by the process balancing module, a duration for which the DS processing unit will be unavailable for processing the DSN access requests of the DS processing unit;

estimating, by the process balancing module, processing requirements for processing the DSN access requests of the DS processing unit;

determining, by the process balancing module, a number of other DS processing units of the plurality of DS processing units that are currently in a temporary suspension mode;

estimating, by the process balancing module, processing requirements for processing other DSN access requests by the active DS processing units during the duration; and

determining, by the process balancing module, processing capabilities of the active DS processing units.

6. The method of claim 1 , wherein the allocating the DSN access requests of the DS processing unit further comprises:

allocating, by the process balancing module, the DSN access requests of the DS processing unit to the active DS processing units in accordance with a load balancing function.

7. The method of claim 1 , wherein the allocating the DSN access requests of the DS processing unit further comprises:

allocating, by the process balancing module, read requests to a first active DS processing unit of the one or more active DS processing units;

allocating, by the process balancing module, write requests to a second active DS processing unit of the one or more active DS processing units;

allocating, by the process balancing module, list requests to a third active DS processing unit of the one or more active DS processing units; and

allocating, by the process balancing module, rebuild support requests to a fourth active DS processing unit of the one or more active DS processing units.

8. The method of claim 1 , wherein the allocating the DSN access requests of the DS processing unit further comprises:

for a write request of the DSN access requests:

allocating, by the process balancing module, a unity matrix multiplication to a first active DS processing unit of the one or more active DS processing units, wherein the first active DS processing unit generates a first subset of encoded data slices of a set of encoded data slices by matrix multiplying a unity matrix of an encoding matrix with a data matrix, wherein a data segment of a data object is divided into data blocks that are arranged into the data matrix;

allocating, by the process balancing module, first redundancy matrix multiplication to a second active DS processing unit of the one or more active DS processing units, wherein the second active DS processing unit generates a first redundancy encoded data slice of the set of encoded data slices by matrix multiplying a first redundancy row of the encoding matrix with the data matrix; and

allocating, by the process balancing module, second redundancy matrix multiplication to a third active DS processing unit of the one or more active DS processing units, wherein the third active DS processing unit generates a second redundancy encoded data slice of the set of encoded data slices by matrix multiplying a second redundancy row of the encoding matrix with the data matrix.

9. The method of claim 1 , wherein the allocating the DSN access requests of the DS processing unit further comprises:

allocating, by the process balancing module, the DSN access requests of the DS processing unit to one of the active DS processing units when the one of the active DS processing units is part of a common local area network with the DS processing unit.

10. A computing device of a dispersed storage network (DSN) comprises:

memory to store operational instructions for implementing a process balancing module;

an interface; and

a processing module operably coupled to the memory and the interface, wherein, when the processing module executes the operational instructions, the operational instructions cause the processing module to:

receive, via the interface, a suspension request from a dispersed storage (DS) processing unit of a plurality of DS processing units of the DSN, wherein the DS processing unit has determined that it has a DSN operation to perform that will adversely interfere with processing of DSN access requests;

determine whether sufficient processing resources of active DS processing units of the plurality of DS processing units are available for processing DSN access requests on behalf of the DS processing unit; and

when determined that sufficient processing resources are available:

grant the suspension request; and

allocate DSN access requests of the DS processing unit to one of more of the active DS processing units.

11. The computing device of claim 10 , wherein the processing module is further operable to:

receive, via the interface, a return notification from the DS processing unit indicating that the DS processing unit has executed the DSN operation; and

in response to the return notification, resume allocation of the DSN access requests of the DS processing unit to the DS processing unit.

12. The computing device of claim 10 , wherein the processing module is further operable to:

the DSN operation including one or more of garbage collection, software update, a system administration operation, and a diagnostic operation; and

the DSN access requests including two or more of a read request, a write request, a rebuild request, a list request, a delete request, and a modify request.

13. The computing device of claim 10 , wherein the processing module is further operable to:

when determined that sufficient processing resources are not available, temporarily deny the suspension request until sufficient processing resources become available.

14. The computing device of claim 10 , wherein the processing module is further operable to determine that sufficient processing resources are available by:

determining a duration for which the DS processing unit will be unavailable for processing the DSN access requests of the DS processing unit;

estimating processing requirements for processing the DSN access requests of the DS processing unit;

determining a number of other DS processing units of the plurality of DS processing units that are currently in a temporary suspension mode;

estimating processing requirements for processing other DSN access requests by the active DS processing units during the duration; and

determining processing capabilities of the active DS processing units.

15. The computing device of claim 10 , wherein the processing module is further operable to allocate the DSN access requests of the DS processing unit further by:

allocating the DSN access requests of the DS processing unit to the active DS processing units in accordance with a load balancing function.

16. The computing device of claim 10 , wherein the processing module is further operable to allocate the DSN access requests of the DS processing unit further by:

allocating read requests to a first active DS processing unit of the one or more active DS processing units;

allocating write requests to a second active DS processing unit of the one or more active DS processing units;

allocating list requests to a third active DS processing unit of the one or more active DS processing units; and

allocating rebuild support requests to a fourth active DS processing unit of the one or more active DS processing units.

17. The computing device of claim 10 , wherein the process module is further operable to allocate the DSN access requests of the DS processing unit further by:

for a write request of the DSN access requests:

allocating a unity matrix multiplication to a first active DS processing unit of the one or more active DS processing units, wherein the first active DS processing unit generates a first subset of encoded data slices of a set of encoded data slices by matrix multiplying a unity matrix of an encoding matrix with a data matrix, wherein a data segment of a data object is divided into data blocks that are arranged into the data matrix;

allocating first redundancy matrix multiplication to a second active DS processing unit of the one or more active DS processing units, wherein the second active DS processing unit generates a first redundancy encoded data slice of the set of encoded data slices by matrix multiplying a first redundancy row of the encoding matrix with the data matrix; and

allocating second redundancy matrix multiplication to a third active DS processing unit of the one or more active DS processing units, wherein the third active DS processing unit generates a second redundancy encoded data slice of the set of encoded data slices by matrix multiplying a second redundancy row of the encoding matrix with the data matrix.

18. The computing device of claim 10 , wherein the processing module is further operable to allocate the DSN access requests of the DS processing unit further by:

allocating the DSN access requests of the DS processing unit to one of the active DS processing units when the one of the active DS processing units is part of a common local area network with the DS processing unit.

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.; KHADIWALA, RAVI V.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047361/0149 →