# US 12,112,213 B2 · Scheduling workloads based on predicted magnitude of storage capacity savings achieved through deduplication

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,112,213 B2
- Document ID: US12112213B2
- Status: Granted
- Kind: B2
- Application number: 17/216,929
- Filed: 2021-03-30
- Published: 2022-10-06
- Granted: 2024-10-08
- Earliest claimed: 2021-03-30
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Jayanth Kumar Reddy Perneti; Vinay Sawal
- Web page: https://patentgrep.com/patent/US12112213B2

## CPC

- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 16/215: Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
- G06F 2209/5019: Workload prediction
- G06F 2209/5021: Priority
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An apparatus comprises a processing device configured to identify a plurality of workloads to be scheduled for execution on a storage system and to analyze the plurality of workloads to predict a magnitude of storage capacity savings achieved by applying one or more deduplication algorithms to data of the plurality of workloads. The processing device is further configured to determine a prioritization of the plurality of workloads based at least in part on the predicted magnitude of the storage capacity savings achieved by applying the one or more deduplication algorithms to the data of the plurality of workloads, and to schedule the plurality of workloads for execution on the storage system based at least in part on the determined prioritization of the plurality of workloads.

## Claims

### Claim 1

An apparatus comprising:
at least one processing device comprising a processor coupled to a memory;
the at least one processing device being configured to perform steps of:
identifying a plurality of workloads to be scheduled for execution on a storage system, the plurality of workloads being associated with a first order, the first order being determined based at least in part on times at which the plurality of workloads are received;
analyzing the plurality of workloads to predict a magnitude of storage capacity savings achieved by applying one or more deduplication algorithms to data of the plurality of workloads;
determining a prioritization of the plurality of workloads based at least in part on the predicted magnitude of the storage capacity savings achieved by applying the one or more deduplication algorithms to the data of the plurality of workloads;
determining a scheduling of the plurality of workloads, based at least in part on the determined prioritization of the plurality of workloads, to reduce a rate at which an available storage capacity of the storage system is consumed by re-ordering the plurality of workloads to a second order, the second order having a first one of the plurality of workloads having a first predicted magnitude of storage capacity savings prior to a second one of the plurality of workloads having a second predicted magnitude of storage capacity savings, the first predicted magnitude of storage capacity savings being greater than the second predicted magnitude of storage capacity savings, the first one of the plurality of workloads being received later than the second one of the plurality of workloads; and
executing the plurality of workloads on the storage system in accordance with the determined scheduling to reduce the rate at which the available storage capacity of the storage system is consumed.

### Claim 2 (depends on 1)

The apparatus of claim 1 wherein determining the scheduling of the plurality of workloads and executing the plurality of workloads in accordance with the determined scheduling are performed responsive to determining that the storage system has reached a designated threshold capacity usage.

### Claim 3 (depends on 1)

The apparatus of claim 1 wherein analyzing the plurality of workloads to predict the magnitude of the storage capacity savings achieved by applying the one or more deduplication algorithms to the data of the plurality of workloads comprises identifying one or more types of data that are part of respective ones of the plurality of workloads.

### Claim 4 (depends on 1)

The apparatus of claim 1 wherein predicting the magnitude of the storage capacity savings achieved by applying the one or more deduplication algorithms to the data of a given one of the plurality of workloads comprises:
detecting an amount of the data of the given workload predicted to achieve storage capacity savings by applying the one or more deduplication algorithms; and
determining membership of the given workload in respective ones of a plurality of membership functions based at least in part on the detected amount of data of the given workload predicted to achieve storage capacity savings by applying the one or more deduplication algorithms.

### Claim 5 (depends on 4)

The apparatus of claim 4 wherein determining the prioritization of the given workload comprises assigning a priority value to the given workload based at least in part on its membership values for at least one of the plurality of membership functions.

### Claim 6 (depends on 4)

The apparatus of claim 4 wherein determining the prioritization of the given workload comprises assigning a priority value to the given workload based at least in part on a combination of its membership values for each of the plurality of membership functions.

### Claim 7 (depends on 4)

The apparatus of claim 4 wherein the plurality of membership functions comprises:
a first membership function for workloads with a first range of detected amounts of data predicted to achieve storage capacity savings by applying the one or more deduplication algorithms;
a second membership function for workloads with a second range of detected amounts of data predicted to achieve storage capacity savings by applying the one or more deduplication algorithms; and
a third membership function for workloads with a third range of detected amounts of data predicted to achieve storage capacity savings by applying the one or more deduplication algorithms.

### Claim 8 (depends on 7)

The apparatus of claim 7 wherein the first range at least partially overlaps the second range, and wherein the second range at least partial overlaps the third range.

### Claim 9 (depends on 7)

The apparatus of claim 7 wherein the first membership function and the third membership function comprise trapezoidal membership functions, and wherein the second membership function comprises a triangular membership function.

### Claim 10 (depends on 4)

The apparatus of claim 4 wherein the plurality of membership functions comprises fuzzy membership sets, and wherein determining the prioritization of the given workload comprises assigning a priority value to the given workload based at least in part on applying one or more defuzzification algorithms to membership values of the given workload in each of the fuzzy membership sets.

### Claim 11 (depends on 10)

The apparatus of claim 10 wherein applying the one or more defuzzification algorithms comprises applying one of a first of maxima defuzzification algorithm and a last of maxima defuzzification algorithm responsive to the given workload having a non-zero membership value for a single one of the fuzzy membership sets.

### Claim 12 (depends on 11)

The apparatus of claim 11 wherein the first of maxima defuzzification algorithm is utilized when the given workload has a non-zero membership value for a single one of the fuzzy membership sets having a highest priority level.

### Claim 13 (depends on 11)

The apparatus of claim 11 wherein the last of maxima defuzzification algorithm is utilized when the given workload has a non-zero membership value for a single one of the fuzzy membership sets having a priority level below a highest priority level.

### Claim 14 (depends on 10)

The apparatus of claim 10 wherein applying the one or more defuzzification algorithms comprises applying a center of sum defuzzification algorithm responsive to the given workload having a non-zero membership value for at least two of the fuzzy membership sets.

### Claim 15

A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform steps of:
identifying a plurality of workloads to be scheduled for execution on a storage system, the plurality of workloads being associated with a first order, the first order being determined based at least in part on times at which the plurality of workloads are received;
analyzing the plurality of workloads to predict a magnitude of storage capacity savings achieved by applying one or more deduplication algorithms to data of the plurality of workloads;
determining a prioritization of the plurality of workloads based at least in part on the predicted magnitude of the storage capacity savings achieved by applying the one or more deduplication algorithms to the data of the plurality of workloads;
determining a scheduling of the plurality of workloads, based at least in part on the determined prioritization of the plurality of workloads, to reduce a rate at which an available storage capacity of the storage system is consumed by re-ordering the plurality of workloads to a second order, the second order having a first one of the plurality of workloads having a first predicted magnitude of storage capacity savings prior to a second one of the plurality of workloads having a second predicted magnitude of storage capacity savings, the first predicted magnitude of storage capacity savings being greater than the second predicted magnitude of storage capacity savings, the first one of the plurality of workloads being received later than the second one of the plurality of workloads; and
executing the plurality of workloads on the storage system in accordance with the determined scheduling to reduce the rate at which the available storage capacity of the storage system is consumed.

### Claim 16 (depends on 15)

The computer program product of claim 15 wherein predicting the magnitude of the storage capacity savings achieved by applying the one or more deduplication algorithms to the data of a given one of the plurality of workloads comprises:
detecting an amount of the data of the given workload predicted to achieve storage capacity savings by applying the one or more deduplication algorithms; and
determining membership of the given workload in respective ones of a plurality of membership functions based at least in part on the detected amount of data of the given workload predicted to achieve storage capacity savings by applying the one or more deduplication algorithms.

### Claim 17 (depends on 16)

The computer program product of claim 16 wherein the plurality of membership functions comprises fuzzy membership sets, and wherein determining the prioritization of the given workload comprises assigning a priority value to the given workload based at least in part on applying one or more defuzzification algorithms to membership values of the given workload in each of the fuzzy membership sets.

### Claim 18

A method comprising:
identifying a plurality of workloads to be scheduled for execution on a storage system, the plurality of workloads being associated with a first order, the first order being determined based at least in part on times at which the plurality of workloads are received;
analyzing the plurality of workloads to predict a magnitude of storage capacity savings achieved by applying one or more deduplication algorithms to data of the plurality of workloads;
determining a prioritization of the plurality of workloads based at least in part on the predicted magnitude of the storage capacity savings achieved by applying the one or more deduplication algorithms to the data of the plurality of workloads;
determining a scheduling of the plurality of workloads, based at least in part on the determined prioritization of the plurality of workloads, to reduce a rate at which an available storage capacity of the storage system is consumed by re-ordering the plurality of workloads to a second order, the second order having a first one of the plurality of workloads having a first predicted magnitude of storage capacity savings prior to a second one of the plurality of workloads having a second predicted magnitude of storage capacity savings, the first predicted magnitude of storage capacity savings being greater than the second predicted magnitude of storage capacity savings, the first one of the plurality of workloads being received later than the second one of the plurality of workloads; and
executing the plurality of workloads on the storage system in accordance with the determined scheduling to reduce the rate at which the available storage capacity of the storage system is consumed;
wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

### Claim 19 (depends on 18)

The method of claim 18 wherein predicting the magnitude of the storage capacity savings achieved by applying the one or more deduplication algorithms to the data of a given one of the plurality of workloads comprises:
detecting an amount of the data of the given workload predicted to achieve storage capacity savings by applying the one or more deduplication algorithms; and
determining membership of the given workload in respective ones of a plurality of membership functions based at least in part on the detected amount of data of the given workload predicted to achieve storage capacity savings by applying the one or more deduplication algorithms.

### Claim 20 (depends on 19)

The method of claim 19 wherein the plurality of membership functions comprises fuzzy membership sets, and wherein determining the prioritization of the given workload comprises assigning a priority value to the given workload based at least in part on applying one or more defuzzification algorithms to membership values of the given workload in each of the fuzzy membership sets.
