IP Library Granted Patent US 11,615,340
Granted Patent B2
US 11,615,340 · App. 16/420,493 · Granted Mar 28, 2023

Methods and apparatus for application prediction through machine learning based analysis of IO patterns

Inventors: Sanjib Mallick (Bangalore, IN); Vinay G. Rao (Bangalore, IN); Gopinath Marappan (Coimbatore, IN); Arieh Don (Newton, MA)
Assignee: EMC IP Holding Company LLC
G06N20/00G06F13/1668G06F13/4022H04L67/1097
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 11,615,340
App. No.
16/420,493
Granted
Mar 28, 2023
Kind
B2
Abstract

An apparatus comprises a host device configured to communicate over a network with a storage system. The host device comprises a multi-path input-output driver configured to control delivery of input-output operations from the host device to the storage system over selected ones of a plurality of paths through the network. The multi-path input-output driver is further configured to collect information characterizing input-output patterns for each of a plurality of different applications executing on the host device, and to provide the collected information to a machine learning system. The machine learning system utilizes the collected information to generate one or more application predictions based at least in part on analysis of observed input-output patterns. The collected information in some embodiments comprises statistical distributions of numbers of input-output operations having payload sizes falling into specified ranges over a given time period.

Claims (50)

1. An apparatus comprising:

a host device configured to communicate over a network with a storage system comprising a plurality of storage devices;

the host device comprising a multi-path input-output driver configured to control delivery of input-output operations from the host device to the storage system over selected ones of a plurality of paths through the network;

wherein the multi-path input-output driver is further configured:

to collect information characterizing input-output patterns for each of a plurality of different applications executing on the host device; and

to provide the collected information to a machine learning system;

wherein the machine learning system utilizes the collected information to generate one or more application predictions based at least in part on analysis of observed input-output patterns;

wherein the machine learning system generates a first application prediction indicating a first application type responsive to detection of a first input-output pattern, and generates a second application prediction indicating a second application type different than the first application type responsive to detection of a second input-output pattern different than the first input-output pattern;

wherein collecting information characterizing input-output patterns for each of a plurality of different applications executing on the host device comprises determining, based at least in part on one or more counts of read requests, write requests or other types of input-output operations, statistical distributions of numbers of input-output operations having payload sizes falling within specified ranges over a given time period; and

wherein the one or more application predictions generated by the machine learning system are utilized to modify a path selection algorithm implemented by the multi-path input-output driver for selecting paths for delivery of input-output operations from the host device to the storage system through the network.

2. The apparatus of claim 1 wherein the machine learning system is implemented at least in part in the host device.

3. The apparatus of claim 2 wherein the machine learning system is implemented at least in part in the multi-path input-output driver of the host device.

4. The apparatus of claim 1 wherein the machine learning system is implemented at least in part in the storage system.

5. The apparatus of claim 1 wherein collecting information characterizing input-output patterns for each of a plurality of different applications executing on the host device comprises collecting information for use in development of a machine learning model for deployment in the machine learning system.

6. The apparatus of claim 5 wherein the collected information for use in development of the machine learning model comprises one or more of:

a training set for training the machine learning model to recognize particular types of applications from their respective input-output patterns; and

a testing set for evaluating performance of the machine learning model in recognizing particular types of applications from their respective input-output patterns.

7. The apparatus of claim 1 wherein collecting information characterizing input-output patterns for each of a plurality of different applications executing on the host device comprises collecting information for use by a deployed machine learning model of the machine learning system in generating the one or more application predictions.

8. The apparatus of claim 1 wherein the multi-path input-output driver is further configured:

to receive the one or more application predictions generated by the machine learning system.

9. The apparatus of claim 1 wherein a given application prediction generated by the machine learning system comprises information identifying a particular one of a plurality of possible application types.

10. The apparatus of claim 1 wherein at least one of the host device and the storage system is configured to utilize the one or more application predictions generated by the machine learning system to adjust one or more parameters related to its processing of input-output operations for the corresponding applications.

11. The apparatus of claim 10 wherein at least one of the host device and the storage system is further configured:

to allocate a relatively high level of processing resources to input-output operations associated with a first application prediction; and

to allocate a relatively low level of processing resources to input-output operations associated with a second application prediction different than the first application prediction.

12. The apparatus of claim 1 further comprising one or more additional host devices each configured to communicate over the network with the storage system and wherein each additional host device comprises a multi-path input-output driver configured to control delivery of input-output operations from that host device to the storage system over selected ones of a plurality of paths through the network.

13. The apparatus of claim 1 wherein the paths are associated with respective initiator-target pairs wherein each of the initiators comprises a corresponding one of a plurality of host bus adaptors of the host device and each of the targets comprises a corresponding one of a plurality of ports of the storage system.

14. A method comprising:

controlling, in a multi-path input-output driver of a host device, delivery of input-output operations from the host device to a storage system over selected ones of a plurality of paths through a network;

collecting, in the multi-path input-output driver, information characterizing input-output patterns for each of a plurality of different applications executing on the host device; and

providing the collected information from the multi-path input-output driver to a machine learning system;

wherein the machine learning system utilizes the collected information to generate one or more application predictions based at least in part on analysis of observed input-output patterns;

wherein the machine learning system generates a first application prediction indicating a first application type responsive to detection of a first input-output pattern, and generates a second application prediction indicating a second application type different than the first application type responsive to detection of a second input-output pattern different than the first input-output pattern;

wherein collecting information characterizing input-output patterns for each of a plurality of different applications executing on the host device comprises determining, based at least in part on one or more counts of read requests, write requests or other types of input-output operations, statistical distributions of numbers of input-output operations having payload sizes falling within specified ranges over a given time period; and

wherein the one or more application predictions generated by the machine learning system are utilized to modify a path selection algorithm implemented by the multi-path input-output driver for selecting paths for delivery of input-output operations from the host device to the storage system through the network.

15. The method of claim 14 wherein the multi-path input-output driver is further configured:

to receive the one or more application predictions generated by the machine learning system.

16. The method of claim 14 wherein at least one of the host device and the storage system utilizes the one or more application predictions generated by the machine learning system to adjust one or more parameters related to its processing of input-output operations for the corresponding applications.

17. 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 a host device comprising a multi-path input-output driver, the host device being configured to communicate over a network with a storage system, causes the host device:

to control, in the multi-path input-output driver of the host device, delivery of input-output operations from the host device to the storage system over selected ones of a plurality of paths through the network;

to collect, in the multi-path input-output driver, information characterizing input-output patterns for each of a plurality of different applications executing on the host device; and

to provide the collected information from the multi-path input-output driver to a machine learning system;

wherein the machine learning system utilizes the collected information to generate one or more application predictions based at least in part on analysis of observed input-output patterns;

wherein the machine learning system generates a first application prediction indicating a first application type responsive to detection of a first input-output pattern, and generates a second application prediction indicating a second application type different than the first application type responsive to detection of a second input-output pattern different than the first input-output pattern;

wherein collecting information characterizing input-output patterns for each of a plurality of different applications executing on the host device comprises determining, based at least in part on one or more counts of read requests, write requests or other types of input-output operations, statistical distributions of numbers of input-output operations having payload sizes falling within specified ranges over a given time period; and

wherein the one or more application predictions generated by the machine learning system are utilized to modify a path selection algorithm implemented by the multi-path input-output driver for selecting paths for delivery of input-output operations from the host device to the storage system through the network.

18. The computer program product of claim 17 wherein the multi-path input-output driver is further configured:

to receive the one or more application predictions generated by the machine learning system.

19. The computer program product of claim 17 wherein at least one of the host device and the storage system utilizes the one or more application predictions generated by the machine learning system to adjust one or more parameters related to its processing of input-output operations for the corresponding applications.

20. The computer program product of claim 17 wherein a given application prediction generated by the machine learning system comprises information identifying a particular one of a plurality of possible application types.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2019
From: MALLICK, SANJIB; RAO, VINAY G.; MARAPPAN, GOPINATH; DON, ARIEH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049267/0057 →
Continuity (1)
Related Publication 20200372401A1 · Nov 26, 2020
Cited By (7)
US 12,216,526 US 12,222,863 US 12,299,300 US 12,493,409 US 12,568,040 US 12,591,506 US 12,717,701